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
    • Ansible-Ad_Hoc临时命令的使用_第1张图片

       

       

    • (5)copy 模块(复制模块到远程主机):ansible  all -m copy -a 'src=/root/resolv.conf  dest=/resolv.conf' -s -k
    • Ansible-Ad_Hoc临时命令的使用_第2张图片

       

       

    • (6)lineinfile | replace 模块(修改配置文件):
    • ansible web -m lineinfile -a 'path=/etc/sysconfig/network-scripts/ifcfg-eth0 regexp="^ONBOOT" line="ONBOOT=\"no\""' -s -k
    • Ansible-Ad_Hoc临时命令的使用_第3张图片
    • ansible web -m replace -a 'path=/etc/sysconfig/network-scripts/ifcfg-eth0 regexp="^(ONBOOT=).*" replace="\1\"yes\""' -s -k 
    • Ansible-Ad_Hoc临时命令的使用_第4张图片
    • (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临时命令的使用)