ansible的模块使用

查看ansible都有哪些模块:

image.png

查看模块的用法:
fetch模块:将受管主机中的文件拉取到ansible主机上。

image.png

执行完之后,会自动创建192.168.116.152/etc/这个目录,并将拉取来的文件放到这个目录下。

当返回信息为绿色,change为false,表示ansible没有进行任何操作,没有改变什么。

当返回信息为×××,change为true,表示ansible执行了操作,当前状态已经被anisble改变了目标状态。



copy模块:
copy模块的作用就是拷贝文件,将ansible主机上的问文件拷贝到远程主机上。有很多参数是可以用的,不细说。

参数:force如果远程主机有已经存在同名文件,是否强制覆盖。

           backup当远程主机存在同名文件,是否备份

            owner:指定拷贝到晕车主机后的属主,但是必须要有相应的用户,否则报错,group,mode类似。

image.png



file模块:可以帮助我们完成一些对文件的基本操作,比如:创建文件或目录,删除文件或目录,修改文件权限等。

参数:
path:指定要操作的是文件或目录。

state:指定在远程主机创建的文件类型,目录,文件,链接文件,当值设定为absent,表示删除目标。

src:当state指定创建的是软硬链接文件时,需要指定源文件。

force:创建软硬链接文件时使用,场景一:当源文件不存在时强制创建,场景二:当创建链接文件的目录已经存在与链接文件同名的文件时,相当于删除同名文件创建链接文件,场景三:当创建链接文件的目录已经存在与链接文件同名的文件时,并且源文件并不存在,这是会强制奇幻同名文件为链接文件。

owner,group指定被操作文件的属主,属组。

mode:执行被操作文件的权限。

rescurse:递归创建目录。


image.png


blockinfile模块:可以帮助我们在指定的文件中插入一段文本,这段文本是被标记过的,我们在这段文件上做了几号,以便在以后的操作中可以通过”标记“找到这段文件,然后修改或者删除它。

image.png

例子:

image.png



lineinfile模块

借助lineinfile模块,确保“某一行文本”存在指定的文件中,或者确保从文件中删除指定的“文本”(即确保指定的文本不存在于文件中),还可以根据正则表达式,替换“某一行文本”。

image.png

1.如果指定的文本本来就存在于文件中,则不做任何操作,如果指定的文本不存在文件中,就会将文本插入文件的最后一行中。

image.png


find模块

find模块可以帮助我们在远程主机中查找符号条件的文件,就像find命令一样。



replace模块

replace模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被正则匹配到的字符串都会被替换

image.png

image.png

command模块

command模块可以帮助我们在远程主机上执行命令。

注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含有重定向,管道符等操作时,这些符号也会失效,比如”<“,">","|",";"和”&“这些符号,如果你需要这些功能,可以参考后面介绍的shell模块,还有一点需要注意,如果远程节点是windows操作系统,则需要使用win_command模块。

image.png


shell模块

shell模块可以帮助我们在远程主机上执行命令,与command模块不同的是,shell模块在远程主机中执行命令时,会经过远程主机上的/bin/sh程序处理。

image.png

使用shell模块可以在远程服务器上执行命令,它支持管道与重定向等符号。如下:使用>符号进行文件覆盖

image.png



script模块

script模块可以帮助我们在远程主机上执行ansible主机上的脚本,也就是说,脚本一直存在于ansible主机本地,不需要手动拷贝到远程主机后再执行。


cron模块

可以帮助我们管理远程主机中的计划任务,功能相当于crontab命令。

了解cron模块的参数之前,先写出一些计划任务的事例,如下:

1.表示每3天执行一次计划文件,于当天1点1分执行,具体任务 输出test

1 1 */3 * * echo test

2.表示每次系统启动后需要执行一次计划任务,具体任务输出test

@reboot echo test

3.表示没小时执行一次计划任务,具体任务输出test字符串

@hourly echo test

image.png


例子:

  1. 在pro远程主机上创建计划任务,任务名称为"test crontab",任务于每天1点5分执行。如下在ansible主机上执行之后会在远程主机生成定时任务,可以使用 crontab -l 查看。

image.png

2.之前已经创建crontab day test这个任务,如要要想注释掉这个任务,可以使用如下命令,使用的时候需要注意,在注释任务时,所有设定需要跟原设定保持一致,包括(name,job,时间段)。否则计划任务的设置将会发生变化。如下:

image.png



service模块:

service模块可以帮助我们管理远程主机上的服务,比如,启动或者停止远程主机中的nginx服务

image.png


image.png


user模块

user模块可以帮助我们管理远程主机上的用户,比如创建用户,修改用户,删除用户,为用户创建密钥等操作。

image.png


image.png

原文地址:https://blog.51cto.com/11726212/2378182

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


----name:setpublickeyonremotehosts&setreomtehostssudoersfilehosts:all#此脚本要求所有的主机root用户密码相同become:noremote_user:rootvars:-remoteuser:user1:rhcetasks:-name:setsecondarygroupforrhce
环境准备#cat/etcedhat-releaseCentOSLinuxrelease7.9.2009(Core)#pythonPython3.7.11(default,Jul312022,16:12:35)[GCC4.8.520150623(RedHat4.8.5-44)]onlinuxType"help","copyright","credits"or"li
准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项文档地址:https://docs.okd.io/latest/install/configuring_inventory_file.html1、配置/etc/ansible/hosts 
Ansible:运维工作:系统安装(物理机、虚拟机)-->程序包安装、配置、服务启动-->批量操作-->程序发布-->监控OSProvisioning:物理机:PXE、Cobbler虚拟机:ImageTemplatesConfigration:puppet(ruby)saltstack(python)chefcfengineCommandand
ansible与salt对比相同都是为了同时在多台机器上执行相同的命令都是python开发不同agent(saltstack需要安装、ansible不需要)配置(salt配置麻烦,ansible基本不用配置)学习路线(salt比较陡峭,ansible比较平缓)第三方工具(salt比较少)开源社区的对接(salt比较少)现有用户(salt还是an
[root@node1playbook]#catnginx.yml-hosts:test\\主机组,要和nginx.yml在同一个目录下remote_user:root\\远端执行任务的用户tasks:\\任务-name:installhttpd\\任务描述command:yum-yinstallhttpd\\调用ansible的command模块安装httpd-na
一直不知道这个模块到底在哪,并且也挺想搞清楚官方那些模块到底在哪个目录下。1.使用grep-rl"copy.py"/usr/lib/python2.7/site-packages/ansible(这个目录是专门放ansible源码目录的)然后找到是/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py这个文件,这里需要
ansile作为去除安装agent的自动化工具,通过ssh协议的简单功能强大的自动化工作。在ansile使用的过程中,有三种用途1、ansible自行一次性任务,即执行命令如:ansible10.59.87.11-mping*ansible"dev-hdp"-mcopy-a"src=oot/HfHadoopHiveUdf.jardest=/data1/opt/cloudera/par
ansible-playbook(1) Ansible组成部分InventoryModulesAdHocCommandsplaybooksplaybooks:Tasks:任务,即调用的模块完成的某操作variables:变量Templates:模版Roles:角色 基本结构:-host:webserverremote_user:tasks:
报错:[root@jenkins~]#ansiblego_activity-mcron-a"name='log_clear'minute=0hour=2job=find/home/golanger/log/-typef-name'log$(date+\%d-d-1day)'-delete"ERROR!thistask'cron'hasextraparams,wh
一、测试环境说明1、系统:rhel6.92、ip地址:20.20.20.24/2420.20.20.41/2420.20.20.42/243、以下操作使用root身份进行,也可以使用具有sudo权限的用户进行相关操作二、环境准备1、关闭iptables防火墙、selinux#/etc/init.d/iptablesstop#
ansible常用模块安装:依赖于epel源yuminstallansible-y配置文件:/etc/ansible/ansible.cfgInvertoory:/etc/ansible/hosts 如何查看模块帮助:ansible-doc-lansible-doc-sMODULE_NAME` ansible命令应用基础:语法:ansible<host-pattern>[options]-fforks
copycopy模块是将ansible管理主机上的文件拷贝上远程主机中,与fetch相反,如果目标路径不存在,则自动创建,如果src的目录带“/”则复制该目录下的所有东西,如果src的目录不带“/”则连同该目录一起复制到目标路径;常用模块src参数:用于指定需要copy的文件或目录
9.YAML9.1简介(1)YAML是一个可读性高的用来表达资料序列的格式。(2)YAML参考了其它多种语言。包括:XML、C语言、python、perl以及电子邮件格式的RFC2822等。ClarkEvans在2001年首次发表了这种语言。(3)YAML不是XML,在开发这种语言时,YAML的意思其实是:yetanothermarkuplanguage,9.2特性(1)YA
了解ansibleansible批量在远程主机上执行命令ansible主要是为了进行操作多个主机而进行的#!/bin/envpython文件中直接指向python文件#!/bin/base 指行脚本一.ansible第一步.下载epel源wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.comepo/epel-7.repo
背景:在私有云环境下,遇到要开通某个项目,则需要快速的响应创建虚拟机,并且做一些基础的配置。为了提高效率以及减少手工犯错的概率,一般会采取ansible批量部署,但是使用ansible的前提是预先配置好免密。在密码一致的场景中,可以使用expect优化做免密的过程解决方案:1.
简单例子1:vars定义变量-hosts:allremote_user:rootvars:-package:nginx-service:nginx tasks:-name:installnginxpackage yum:name={{package}}state=latest-name:installconfigurationfileforhttpd copy:src=/etcginxginx
 ansible自动化运维工具的介绍      ansible结构特性:            模块化,调用特定的模块,完成特定的任务;        基于Python语言实现,由Paramiko、PyYAML和Jinja2三个关键模块;        部署简单,agentless        主从模
---恢复内容开始---Templates:模版 cat/etc/ansible/hosts  cattemplatesginx.conf.j2 -hosts:testremote_user:rootvars:-package:httpd-service:httpdtasks:-name:installnginxpackage yum:name={{package}}state=la
1、配置资源清单inventory文件[root@test1~]#cat>/etc/ansible/hosts<<EOF[k8s]192.168.0.92ansible_ssh_port=22ansible_ssh_user=k8sansible_ssh_pass='123'ansible_become_pass='123456'EOF解释:ansible_ssh_pass='123'