Ansible-Ad_Hoc臨時命令的使用

Ad_Hoc臨時命令的使用linux

  • 一、使用場景:
    • 全部的臨時獲取信息的均可以使用,好比節前健康檢查、臨時更新配置文件。
  • 二、用法:
    • ansible -i 主機 -m 模塊 選項
  • 三、經常使用的命令選項:
    • -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,列出符合條件的主機列表
  • 四、經常使用模塊的使用
    • (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

 

小結web

  • 一、ansible使用某種功能,好比指定開啓的線程數、指定執行命令的用戶等等,能夠使用命令行選項指定,也能夠將相關的信息寫入配置文件,最終的都能實現該功能。
  • 二、處理複雜的命令,能夠配合腳本一塊兒使用,特別是腳本三劍客,要學會靈活配合使用。
  • 三、實際執行過程當中,能夠在Inventory文件裏寫明認證密碼信息。好比ansible_ssh_user、ansible_ssh_pass、ansible_su_pass、ansible_become_pass等等。
相關文章
相關標籤/搜索