1. 程式人生 > >Ansible:命令應用基礎

Ansible:命令應用基礎

狀態 stop 線程數 tope 符號鏈接 生成 true 文件路徑 shel

ansible:命令應用基礎
ansible-doc -l; #:模塊查看命令
ansible-doc -s: #指明模塊名稱顯示模塊用法
ansible-doc -h: #查看命令幫助

語法ansible <host-pattern> [-f forks] [-m module_name] [-a args]  
    -f forks:啟動的並發線程數;
    -m module_name:要使用的模塊;
    -a args:模塊特有的參數;
    示例:ansible  172.16.100.9 -m command -a ‘date‘

    args:
        key=value

        註意:command模塊要執行命令無須為key=value格式,而是直接給出要執行的命令即可;

    常用模塊:
        command :  命令模塊,默認模塊,用於在遠程執行命令;
            -a ‘COMMAND‘    
            ansible -a ‘date‘

        user:實現用戶賬戶管理
            name=:指明創建的用戶的名字
            -a ‘name= state={present|absent} system= uid=‘
            ansible 172.16.100.9 -m user -a ‘name="user1" state=absent‘

        group:創建組
            -a ‘name= gid= state= system=‘
            ansible 172.16.100.9 -m group -a ‘name=mysql gid=306 system=yes‘

        cron :
            state:
                present:安裝
                absent:移除
            -a ‘name= minute= hour= day= month= weekday= job= user= state=‘
            */10 * * * * /bin/echo "Hello zhanx"
            ansible 172.16.100.9 -m cron -a ‘minute="*/10" job="/bin/echo hello" name="test cron job" state="present"‘

        copy:文件復制
            src=:定義本地源文件路徑
            dest=:定義遠程目標文件路徑
            content=:取代src=,表示直接用此處指定的信息生成為目標文件內容;
            -a ‘dest= src= mode= owner= group=‘
            #ansible all -m copy -a ‘src=/etc/fstab dest=/tmp/fstab.ansible owner=root mode=640‘
            #ansible all -m copy -a ‘content="Hello Ansible\nHi zhanx" dest=/tmp/test.ansible‘

        file:設定文件屬性
            path=:指明文件路徑,可以使用name或dest來替換;

            創建文件的符號鏈接:
                src=:指明源文件;
                path=:指明符號鏈接文件路徑
            -a ‘path= mode= owner= group= state={directory|link|present|absent} src=‘
            #ansible all -m file -a ‘path=/tmp/fstab.link src=/tmp/fstab.ansible    state=link‘

        ping:測試指定主機是否能連通
            沒有參數
            # absible all -m ping 

        yum:安裝程序包
            name=:指明要安裝的程序包,可以帶上版本號;
            state=:present,lastest表示安裝,absent表示卸載;              
            -a ‘name= state={present|latest|absent}‘
            #ansible all -m yum -a "name=telnet   state=absent"

        service:指定服務的運行狀態
            enabled=: 是否開機自動啟動,取值為true或者false;
            name=:服務名稱
            state=:狀態,取值有started,stoped,restarted;              
            -a ‘name= state={started|stopped|restarted} enabled=‘
            # ansible 172.16.100.9 -m service -a ‘enabled=true name=httpd state=started‘

        shell:在遠程主機上運行命令
            尤其是用到管道等功能的復雜命令使用
            -a ‘COMMAND‘
            #ansible all -m shell -a ‘echo zhanx | passwd  --stdin user‘

        script:將本地腳本復制到遠程主機並運行;
            註意:基於相對路徑
            -a ‘/path/to/script‘
            #ansible all -m script -a "test.sh"

        setup:收集每個遠程主機可用的facts
            每個被管理節點在接收並運行管理命令之前,會將自己主機相關信息:
            如操作系統版本、IP地址等報告給遠程的ansible主機;
            #ansible all -m setup

Ansible:命令應用基礎