1.主机清单配置
2.软件模块信息
3.基于密钥连接主机
4.主机需要关闭Selinux
5.软件剧本功能
五、ansible的模块
1.命令类型模块
1.1 command模块
默认模块,即使不写也默认生效。在一个远程主机上执行一个命令;
参数解析:
- free_form:默认参数,即使不写也默认生效;使用command模块的时候,-a参数后面写上一个合法的linux命令。
- chdir:在执行命令之前,对目录进行切换。
- creates:条件判断参数,若当指定的文件存在时,就不执行对应命令,比如,如果/testdir/test文件存在,就不执行我们指定的命令。
- removes:条件判断参数,刚好与creates效果相反,若文件存在了,则执行。
注意:
使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含有重定向、管道符等操作时,这些符号也会失效,比如”<”, “>”, “|”, “;” 和 “&” 这些符号,如果你需要这些功能,可以参考后面介绍的shell模块。
还有一点需要注意,如果远程节点是 windows 操作系统,则需要使用 win_command模块。
执行ansible时,不加-m默认使用command,可以在/etc/ansible/ansible.cfg中修改。
提升练习:
- 批量远程控制所有主机,在远端主机的/tmp目录下创建a.txt
ansible all -m command -a “chdir=/tmp touch a.txt”
- 批量远程控制所有主机,若远端主机的/tmp目录下不存在b.txt,则创建c.txt文件。
ansible all -m command -a “creates=/tmp/b.txt chdir=/tmp touch c.txt”
必须结合chdir,否则默认创建在远端主机的家目录下;