ansible常用的一些方法总结

1.把ansible这台机器上的/etc/hosts远程scp到webserver组下面的所有机器上/root/hosts
ansible webserver -m copy -a “src=/etc/hosts dest=/root/hosts”
2.修改webserver组下面所有的机器上的文件/root/hosts的属主:test,权限755
ansible webserver -m file -a “dest=/root/hosts mode=755 owner=test group=test”

3.在webserver组下面所有的机器上创建kk目录,属主:test,权限755
ansible webserver -m file -a “dest=/root/kk mode=755 owner=test group=test state=directory”

4.删除目录kk(递归的删除)和删除文件
ansible webserver -m file -a “dest=/root/kk state=absent”

5.采用shell的模块在root下创建kk文件,-f 10(一般在配置文件里面写好)是以并行的方式去执行,会fork出10个子进程,速度变快
ansible webserver -m shell -a ‘touch /root/kk’ -f 10

6.指定以test用户,该test用户是指webserver下所有机器的test用户,以普通用户test执行命令
ansible webserver -a “/usr/bin/foo” -u test –ask-sudo-pass

7.确认软件包wget已经安装,确认wget软件包还没有安装
ansible webserver -m yum -a “name=wget state=present”
ansible webserver -m yum -a “name=wget state=absent”

8.确认某个服务在所有的webservers上都已经启动,重启,确认服务已经停止
ansible webserver -m service -a “name=httpd state=started”
ansible webserver -m service -a “name=httpd state=restarted”
ansible webserver -m service -a “name=httpd state=stopped”

9.如果运行命令后,不想获取返回的信息
ansible all -B 3600 -P 0 -a “/usr/bin/long_running_operation –do-stuff”
如果你确定要在命令运行后检查运行的状态,可以使用 async_status 模块.前面执行后台命令后会返回一个 job id, 将这个 id 传给 async_status 模块
ansible web1.example.com -m async_status -a “jid=488359678239.2844”
获取状态的命令,其中 -B 1800 表示最多运行30分钟, -P 60 表示每隔60秒获取一次状态信息
ansible all -B 1800 -P 60 -a “/usr/bin/long_running_operation –do-stuff”

10.在执行一个 playbook 之前,想看看这个 playbook 的执行会影响到哪些 hosts
ansible-playbook playbook.yml –list-hosts

11.ansible-playbook执行相应的rabbitmq_pp_restart.yml脚本
sshpass -p $PP_Pass ansible-playbook rabbitmq_pp_restart.yml –ask-pass -i /root/ansible-playbook/ycq/ycq.host

12.ansible的script模块的执行方式,主要把本地的脚本推送到远端,在远端执行该脚本
sshpass -p $Prd_Pass ansible check-port-8080 -m script -a “/home/appuser/zabbix_ycq/scripts/check_tomcat_port.sh” -i /home/appuser/zabbix_ycq/ansible-playbook/ycq.host –ask-pass

发表评论

电子邮件地址不会被公开。 必填项已用*标注