2021年3月1日 星期一

Ansible筆記(三)-AD-HOC command及模組的查詢方式

AD-HOC 

AD-HOC簡單點說就是在指令行執行Ansible模組的方式

最常用的就是ping這個模組,並且配合ansible.cfg及inventory的內容達到使用目的,為什麼要使用ping模組呢?因為除了交換金鑰外,必需要測試ansible.cfg及inventory的設定是否正常(這是我的習慣啦…),接續前面的筆記一及二的ansible.cfg及inventory參數設定,使用方式如下:

    #ansible -m ping all  --將所有inventory中的主機列出來然後樣子會像是下圖的方式






使用格式如下

    #ansible -i  INVENTORY -m MODULE_NAME -a MODULE_ARGS ... 

EX:假設要在serverb新增一個User名稱為"user1",判斷遠端主機"如果"沒有user1就建立!

    #ansible -m user -a 'name=kilin state=persent' serverb.linux.rhce.taipei












*特別注意的部分就是"changed: true"的狀態,這個意思就是說,在執行Ansible的過程如果遠端主沒有被變更狀態,就會顯示為false的狀態,而Ansible會以一些顏色來區分,依照模組的功能判斷,黃色是狀態改變(changed: true),綠色是沒有被改變(change: false),紅色是有錯誤訊息或是失敗,藍色是略過(Skip),以"user"這個模組來說如果遠端主機沒有"user1"的話就會在該主機新增user,當然同樣的ad-hoc指令再執行一次就會顯示為change: false的狀態,意思是有了不再新增。
*Ansible的好處是,如果在執行的過程中發生錯誤,已經改變的就會保留,會中斷在錯誤的地方,後面的模組就不再執行,在Playbook的Debug的上相當方便!


模組的查詢方式

        根據上面的範例,user這個模組,我為什麼會知道有name, state的參數可以使用呢?當然不是憑空生出來的啊查詢方式如下

    查詢ansible在該版本下支援的的模組(筆記是在2.9.17版(底層是Python2.7.5))

            #ansible --version
    
    查詢ansbile支援的模組(ansible-doc)
        
            #ansible-doc -l

    查詢"user"這個模組可以如何使用(裡面有說明,不一一解釋)

            #ansible-doc user


        回到AD-HOC的用途就是可以讓你在指令行執行Ansible佈署,但一次只能用一個模組,如果要執行很多個模組,則需要用到Playbook,Playbook就是一大堆模組組成的AD-HOC,這是一個YAML的檔案格式(請看下方YAML參考網址),而Yaml格式有個很重要的編寫方式
   
                注意空格!注意空格!注意空格!

因為太重要了要要說三次!!!就用下一篇來充數吧XD



參考網址 >
      YAML:https://zh.wikipedia.org/wiki/YAML
                     https://reurl.cc/L04kKx
      又還是以前的筆記…

沒有留言:

張貼留言