Ansible-Ad_Hoc临时命令的使用
Posted hraa0101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible-Ad_Hoc临时命令的使用相关的知识,希望对你有一定的参考价值。
Ad_Hoc临时命令的使用
- 1、使用场景:
- 所有的临时获取信息的都可以使用,比如节前健康检查、临时更新配置文件。
- 2、用法:
- ansible -i 主机 -m 模块 选项
- 3、常用的命令选项:
- -v 输出更详细的执行过程信息,-vvv可得到执行过程的所有信息
- -i PATH,指定inventory信息
- -f 并发线程数,默认5个线程
- -m NAME,指定要执行的模块
- -a ‘ARGUMENTS’,参数模块
- -k 认证密码(执行用户的密码)(ansible执行如果不做ssh认证,可以直接使用-k选项,交互式输入密码后执行命令)
- -K 用户的密码(切换成指定用户的密码)
- -s 相当于linux系统下的sudo命令。
- -U 使用sudo,相当于linux系统下的sudo命令(该选项是切换成指定的用户去执行)
- --list-hosts,列出符合条件的主机列表
- 4、常用模块的使用
- (1) 列出所有的模块:ansible-doc -l
- (2)command 模块(不执行"<", ">", "|", "&"):ansible web -m command -a ‘ls‘ -s -k
-
-
- (3)shell raw 模块(raw没有chdir creates removes 参数):ansible all -m shell -a ‘chdir=/tmp touch f2‘ -s -k
-
- (4)script 模块(处理比较复杂的命令,原理是执行本地脚本进行操作):ansible web -m script -a ‘u.sh‘ -s -k
-
-
- (5)copy 模块(复制模块到远程主机):ansible all -m copy -a ‘src=/root/resolv.conf dest=/resolv.conf‘ -s -k
-
- (6)lineinfile | replace 模块(修改配置文件):
-
- ansible web -m lineinfile -a ‘path=/etc/sysconfig/network-scripts/ifcfg-eth0 regexp="^ONBOOT" line="ONBOOT="no""‘ -s -k
-
- ansible web -m replace -a ‘path=/etc/sysconfig/network-scripts/ifcfg-eth0 regexp="^(ONBOOT=).*" replace="1"yes""‘ -s -k
-
- (7)传递公玥(注意指定用户和公玥存放路径):ansible myDB -m authorized_key -a "user=hraa0101 exclusive=true manage_dir=true key=‘$(< /home/hraa0101/.ssh/id_rsa.pub)‘" -k -v
小结
- 1、ansible使用某种功能,比如指定开启的线程数、指定执行命令的用户等等,可以使用命令行选项指定,也可以将相关的信息写入配置文件,最终的都能实现该功能。
- 2、处理复杂的命令,可以配合脚本一起使用,特别是脚本三剑客,要学会灵活配合使用。
- 3、实际执行过程中,可以在Inventory文件里写明认证密码信息。比如ansible_ssh_user、ansible_ssh_pass、ansible_su_pass、ansible_become_pass等等。
以上是关于Ansible-Ad_Hoc临时命令的使用的主要内容,如果未能解决你的问题,请参考以下文章