码迷,mamicode.com
首页 > 其他好文 > 详细

ansible常用的模块(有疑问,纰漏的欢迎大家留言)

时间:2018-06-20 18:45:30      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:停止   任务   hosts   本地   module   脚本   疑问   /tmp   sbin   

1.查看模块的命令:
ansible-doc -l
2.查看模块的具体参数帮助:
ansible-doc -s command(s后接模块)
举例:
1.1 command模块 *****
功能说明:执行一个命令在远程节点上
操作实践:
ansible oldboy -m command -a "free -m"
ansible oldboy -m command -a "df -h"
ansible oldboy -m command -a "ls /root"
ansible oldboy -m command -a "cat redhat-release"
ansible oldboy -m command -a "cat /etc/redhat-release"
注:最通用的模块,也是默认的模块
常用参数的说明及实践:
参数:chdir=/tmp 相当于 cd /tmp
[root@m01 ~]# ansible oldboy -m command -a "pwd chdir=/etc"
ansible oldboy -m shell -a "cd /etc/;pwd"

参数:creates=/etc 相当于条件测试 [ -d /etc ]||pwd
[root@m01 ~]# ansible oldboy -m command -a "pwd creates=/etc"

参数:removes=/root 相当于条件测试 [ -d /root ]&&ls /root
ansible oldboy -m command -a "ls /root removes=/root"
ansible oldboy -m shell -a "[ -d /etc ]||pwd"

参数:warn=False 忽略警告
[root@m01 ~]# ansible oldboy -m command -a "chmod 000 /etc/hosts warn=False"

更多官方链接: http://docs.ansible.com/ansible/latest/command_module.html
或ansible-doc -s command
2.2
特殊:不支持的东西,例如 > < | &等 $HOME,替代方案用 shell模块
ansible oldboy -m shell -a "ps -ef|grep ssh"
ansible oldboy -m shell -a "echo oldboy >/tmp/a.log"

3.3 script模块功能说明:
功能说明:在远程节点上运行本地脚本
官方链接: http://docs.ansible.com/ansible/latest/script_module.html
远端可以没有脚本,本地有就行:
[root@m01 /server/scripts]# cat setup.sh
pwd
ls /root
for n in {1..100}
do
echo $n >>/tmp/oldboy.log
done
执行:
ansible oldboy -m script -a "/server/scripts/setup.sh"
3.4 copy模块功能说明:
copy模块功能说明:
功能说明:复制文件到远程主机
官方链接: http://docs.ansible.com/ansible/latest/copy_module.html
ansible oldboy -m copy -a "src=/server dest=/ mode=ugo+x group=root owner=root"
ansible oldboy -m copy -a "src=/server/scripts/setup dest=/server/scripts mode=ugo+x group=root owner=root backup=yes"
3.5 file模块功能说明:
功能说明:设置文件属性
官方链接:http://docs.ansible.com/ansible/latest/file_module.html

替代方案:
ansible oldboy -m command -a "chmod 777 /etc/hosts warn=false"
ansible oldboy -m command -a "chmod 644 /etc/hosts warn=false"
ansible oldboy -m command -a "chown oldboy /etc/hosts warn=false"
ansible oldboy -m command -a "chown root /etc/hosts warn=false"

创建目录:mkdir /tmp/oldboy_dir
ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory"
递归设置权限:
ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory mode=644 recurse=yes"

创建文件:touch /tmp/oldboy_file
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch"

删除文件:rm -f /tmp/oldboy_file
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=absent"

创建链接文件:ln -s /etc/hosts /tmp/link_file
ansible oldboy -m file -a "src=/etc/hosts dest=/tmp/link_file state=link"

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=000"
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=ugo=rwx"
3.6 yum模块功能说明:
功能说明:yum包管理模块
官方链接:http://docs.ansible.com/ansible/latest/yum_module.html

ansible oldboy -m yum -a "name=nginx state=installed"

[root@nfs01 oldboy_dir]# rpm -qa nginx
nginx-1.10.2-1.el6.x86_64

###不要用yum卸载,用rpm -e卸载。
rpm -e --nodeps 包名 卸载
3.7 service模块功能说明:
功能说明:启动停止服务
官方链接:http://docs.ansible.com/ansible/latest/service_module.html

#相当于
#service crond stop|/etc/init.d/crond stop
#chkconfig crond off
ansible oldboy -m service -a "name=crond state=stop enabled=no"

#相当于/etc/init.d/crond start
chkconfig crond on
ansible oldboy -m service -a "name=crond state=started enabled=yes"
3.8 cron模块功能说明:
功能说明:管理定时任务条目信息模块
官方链接:http://docs.ansible.com/ansible/latest/cron_module.html
定时任务格式:

          • CMD
            创建定时任务:
            ansible oldboy -m cron -a "name=‘sync time‘ minute=00 hour=00 job=‘/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘"
            结果:
            #Ansible: sync time
            00 00 /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
            添加如下定时任务:
            05 03
            /bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1
            命令如下:
            ansible oldboy -m cron -a "name=‘backup data‘ minute=05 hour=03 job=‘/bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1‘"
            结果:
            #Ansible: backup data
            05 03 * /bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1
            删除定时任务:
            ansible oldboy -m cron -a "name=‘backup data‘ state=absent"

ansible oldboy -m cron -a "name=‘sync time‘ minute=00 hour=00 job=‘/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘"

#Ansible: sync time
00 00 * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

    1. 3.9 ....

ansible常用的模块(有疑问,纰漏的欢迎大家留言)

标签:停止   任务   hosts   本地   module   脚本   疑问   /tmp   sbin   

原文地址:http://blog.51cto.com/13667268/2131001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!