ansible常用模块

ansible-doc -l 查看支持的模块


1.ping 模块

探测主机是否在线
    ansible zabbix -m ping

2.command 模块  

在远程主机执行命令,不支持管道,重定向等shell特性
    ansible zabbix -m command -a "date"    
    ansible zabbix -m command -a "chdir=/tmp ls"  切换目录
    ansible zabbix -m command -a "systemctl start httpd" 启动服务

3.shell 模块     

在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令
支持shell特性,如管道,重定向等
    常见参数:
        chdir= 表示指明命令在远程主机上哪一个目录下运行
        creates= 在命令运行时创建一个文件,如果文件已存在,则不会执行创建任务
        removes= 在命令运行时移除一个文件,如果文件不存在,则不会执行移除任务
        executeble= 指明运行命令的shell程序
    ansible zabbix -m shell -a 'echo "hello" >> /tmp/aa.txt'

4.copy 模块 

拷贝ansible管理端的文件到远程主机的指定位置
    常见参数:
        dest= 指明拷贝文件的目标目录位置,使用绝对路径,如果源是目录,则目标也要是目录,如果目标文件已存在,会覆盖原有内容
        src= 指明本地路径下的某个文件,可以使用绝对路径和相对路径,支持直接指定目录,如果源是目录,则目标也要是目录
        mode= 指明复制时,目标文件的权限
        owner= 指明复制时,目标文件的属主
        group= 指明复制时,目标文件的属组
        content= 指明复制到目标主机的内容,不能和src一起使用,相当于复制content指明的数据,到目标文件中
    ansible zabbix -m copy -a 'src=/home/work/grafana-5.4.2-1.x86_64.rpm dest=/home/work/ mode=644 owner=work group=work'

5.cron 模块 

管理计划任务的模块
    常见参数:
        minute= 指明计划任务的分钟,支持格式:0-59,*,*/2等,与正常cron任务定义的一样的语法,省略时默认为*,也就是每分钟都执行
        hour= 指明计划任务的小时,支持格式:0-23,*,*/2等,省略时默认*,也就是每小时都执行
        day= 指明计划任务的天,支持的语法:1-31,*,*/2等,省略时默认为*,也就是每天都执行
        month= 指明计划任务的月,支持的语法:1-12,*,*/2等,省略时默认为*,也就是每个月都执行
        weekday= 指明计划任务的星期几,支持的语法为:0-6,*等,省略时默认为*,也就是每星期几都执行
        reboot= 指明计划任务执行的时间为每次重启之后
        name= 给该计划任务取个名字,必须要给明,每个任务的名称不能一样。删除任务时,只需要给明任务的名称即可
        job= 执行的任务时什么,当state=present时才有意义
        state=present|absent  表示这个任务是创建还是删除,默认时present

    ansible zabbix -m cron -a 'minute=10 hour=10 day=10-15 month=1,5 weekday=0 name="test cron" job="date >> /tmp/date.txt" state=present'
    ansible zabbix -m command -a 'crontab -l'
    192.168.254.244 | CHANGED | rc=0 >>
    #Ansible: test cron
    10 10 10-15 1,5 0 date >> /tmp/date.txt
    删除:ansible zabbix -m cron -a 'name="test cron" state=absent'

6.fetch模块 

从远程主机拉取文件到本地/ 一般情况下,只会从一个远程节点拉取数据
    常见参数:
        dest= 从远程主机上拉取的文件存放在本地的位置,一般只能是目录
        src= 指明远程主机上要拉取的文件,只能是文件,不能是目录

    ansible zabbix -m fetch -a "dest=/tmp/ src=/tmp/date.txt"

7.file模块 

用于设定远程主机上的文件属性
    常见参数:
        path= 指明对哪个文件修改其属性
        src= 指明path=指明的文件是软连接文件,其对应的源文件是谁,必须要在state=link时才有用
        state=directory|link|absent 表示创建的文件是目录还是软链接
        owner= 指明文件的属主
        group= 指明文件的属组
        mode= 指明文件的权限

            创建软链接的用法:
            src= path= state=link
            修改文件属性的用法:
            path= owner= mode= group=
            创建目录的用法:
            path= state=directory
            删除文件:
            path= state=absent

    修改文件属性ansible zabbix -m file -a 'path=/tmp/aa.txt owner=root group=root mode=666'
    创建软链接ansible zabbix -m file -a 'src=/tmp/aa.txt path=/tmp/aa.link state=link'
    删除文件ansible zabbix -m file -a 'path=/tmp/aa.link state=absent'

8.hostname模块 

管理远程主机上的主机名
    常用参数:
        name= 指明主机名
    ansible zabbix  -m hostname -a 'name=GXEFP_SAP_WEBSITEWCM_1'

9.yum模块 

基于yum机制,对远程主机管理程序包
    常用参数:
        name= 指明程序包的名称,可以带上版本号,不指名版本就是默认最新版本
        state=present|latest|absent 指明对程序包执行的操作,present表示安装程序包,latest表示安装最新版本的程序包,absent表示卸载程序包
        disablerepo= 在用yum安装时,临时禁用某个仓库,仓库的ID
        enablerepo= 在用yum安装时,临时启用某个仓库,仓库的ID
        conf_file= 指明yum运行时采用哪个配置文件,而不是使用默认的配置文件
        disable_gpg_check=yes|no 是否启用gpg_check

    ansible wyq -m yum -a "name=wget state=present" 安装程序包
    ansible wyq -m yum -a "name=wget state=absent"  卸载程序包

10.service模块 

用来管理远程主机上的服务的模块
    常用参数:
        name= 被管理的服务名称
        state=started|stopped|restarted 表示启动或关闭或重启
        enabled=yes|no 表示要不要设定该服务开机自启动
        runlevel= 如果设定了enabled开机自动启动,则要定义在哪些运行级别下自动启动

        ansible wyq -m service -a "name=rsyslog state=started"

11.uri模块 

如果远端是web服务器,可以利用ansible直接请求某个网页
    常用参数:
        url= 指明请求的url的路径,如:http://192.168.0.1/test.jpg
        user= 如果请求的url需要认证,则认证的用户名是什么
        password= 如果请求的url需要认证,则认证的密码是什么
        method= 指明请求的方法,如GET,POST...
        body= 指明报文中实体部分的内容,一般是POST方法或PUT方法时用到
        HEADER 自定义请求报文中的添加的首部

    ansible wyq -m uri -a "url=http://10.10.0.1/test.html"

12.group模块  

用来添加或删除远程主机的用户组
    常用参数:
        name= 被管理的组名
        state=present|absent 是添加还是删除,不指明默认为添加
        gid= 指明GID
        system=yes|no 是否为系统组

13.user模块  

用来添加或删除远程主机的用户的账号
    常用参数:
        name= 被管理的账号名
        state=present|absent 是添加还是删除,不指明默认为添加
        uid= 指明UID
        system=yes|no 是否为系统账号
        group= 指明用户的基本组
        groups= 指明用户的附加组
        shell= 指明默认的shell
        home= 指明用户的家目录
        move_home=yes|no 当home设定了家目录,如果要创建的家目录已存在,是否将已存在的家目录进行移动
        password= 指明用户的密码,最好使用加密好的字符串
        comment= 指明用户的注释信息
        remove=yes|no 当state=absent时,也就是删除用户时,是否要删除用户的家目录

14.script模块  

将管理端的某个脚本,移动到远端主机(不需要指明传递到远端主机的哪个路径下,系统会自然移动,然后执行),一般是自动移动到远端主机的/root/.ansible/tmp目录下,然后自动给予其权限,然后再开个子shell然后运行脚本,运行完成后删除脚本
    ansible wyq -m script -a '/root/test.sh'

15.setup模块 

可收集远程主机的facts变量信息,相当于收集了目标主机的相关信息(如内核版本、操作系统信息、cpu等),保存在ansible的内置变量中,之后我们有需要用到时,直接调用变量即可
    ansible wyq -m setup

16.template模块  

基于模板方式,生成一个模板文件,复制到远程主机,让远程主机基于模板,生成符合远程主机自身的文件
注意:此模块不能再命令行使用,只能用在playbook中
    常用模块:
        src= 指明管理端本地的模板文件的目录
        dest= 指明将模板文件拷贝到远程主机的哪个目录下
        owner= 指明拷贝到远程主机的文件属主
        group= 指明拷贝到远程主机的文件属组
        mode= 指明拷贝到远程主机的文件的权限
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值