ansible常用模块实例

ansible常用模块


ping模块

例如:

测试主机是否在线
[root@CentOS7 ansible]# ansible > client -m ping
192.168.137.22 | SUCCESS => {
"changed": false, 
"ping": "pong"
}

shell模块

例如:

去/opt下创建test,再删除
[root@CentOS7 ansible]# ansible client -m shell -a 'cd /opt && mkdir test'
192.168.137.22 | SUCCESS | rc=0 >>

[root@CentOS7 ansible]#  ansible client -m shell -a 'ls /opt'
192.168.137.22 | SUCCESS | rc=0 >>
test
[root@CentOS7 ansible]# ansible client -m shell -a 'cd /opt && rm -rf test && ls'
192.168.137.22 | SUCCESS | rc=0 >>

cron模块

获取帮助:ansible-doc -s cron

模块参数详解:

 state:
    present:创建任务
    absent:删除任务
    backup:对远程主机上的原任务计划内容修改之前做备份
    job:要执行的任务
    name:该任务的描述(必须项)
    user:以哪个用户的身份运行
    minute:分钟(0-59,*,*/2,……),不写默认为*
    hour:小时(0-23,*,*/2,……),不写默认为*
    day:日(1-31,*,*/2,……),不写默认为*
    month:月(1-12,*,*/2,……),不写默认为*
    weekday:周(0-7,*,……),不写默认为*

例如:

每隔10分钟同步一次时间
[root@CentOS7 ansible]# ansible client -m cron -a 'name="sync time from ntpserver" minute=*/10 job="/usr/sbin/ntpdate 3.cn.pool.ntp.org"'
192.168.137.22 | SUCCESS => {
"changed": true, 
"envs": [], 
"jobs": [
    "sync time from ntpserver"
]
}

copy模块

获取帮助:ansible-doc -s copy

模块参数详解:

src:指定源文件路径,可以是相对路径,也可以是绝对路径,可以是目录(并非是必须的,可以使用content,直接生成文件内容)

dest=:指定目标文件路径,只能是绝对路径,如果src是目录,此项必须是目录

owner:指定属主

group:指定属组

mode:指定权限,可以以数字指定比如0644

content:代替src,直接往dest文件中写内容,可以引用变量,也可以直接使用inventory中的主机变量

backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no

force:

    yes:默认项,如果目标主机包含该文件,但内容不同,则强制覆盖

    no:则只有当目标主机的目标位置不存在该文件时,才复制

directory_mode:递归的设定目录的权限,默认为系统默认权限

例如:

复制本地文件到远程主机并对原文件进行备份
[root@CentOS7 ~]# ansible client -m copy -a 'src=/root/test dest=/root/ backup=yes'
192.168.137.22 | SUCCESS => {
"changed": true, 
"checksum": "a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0", 
"dest": "/root/test", 
"gid": 0, 
"group": "root", 
"md5sum": "ba1f2511fc30423bdbb183fe33f3dd0f", 
"mode": "0644", 
"owner": "root", 
"size": 4, 
"src": "/root/.ansible/tmp/ansible-tmp-1519728610.61-36219048765969/source", 
"state": "file", 
"uid": 0
}

你可能感兴趣的:(ansible)