ansible常用的模块(有疑问,纰漏的欢迎大家留言)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible常用的模块(有疑问,纰漏的欢迎大家留言)相关的知识,希望对你有一定的参考价值。
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
[[email protected] ~]# ansible oldboy -m command -a "pwd chdir=/etc"
ansible oldboy -m shell -a "cd /etc/;pwd"
参数:creates=/etc 相当于条件测试 [ -d /etc ]||pwd
[[email protected] ~]# 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 忽略警告
[[email protected] ~]# 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
远端可以没有脚本,本地有就行:
[[email protected] /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"
[[email protected] 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"
- 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
-
- 3.9 ....
以上是关于ansible常用的模块(有疑问,纰漏的欢迎大家留言)的主要内容,如果未能解决你的问题,请参考以下文章