ansible常用模塊

ansible-doc -l 查看支持的模塊


1.ping 模塊

探測主機是否在線
    ansible zabbix -m ping

2.command 模塊  

在遠程主機執行命令,不支持管道,重定向等shell特性
    ansible zabbix -m command -a "date"    
    ansible zabbix -m command -a "chdir=/tmp ls"  切換目錄
    ansible zabbix -m command -a "systemctl start httpd" 啓動服務

3.shell 模塊     

在遠程主機執行命令,相當於調用遠程主機的shell進程,然後在該shell下打開一個子shell運行命令
支持shell特性,如管道,重定向等
    常見參數:
        chdir= 表示指明命令在遠程主機上哪一個目錄下運行
        creates= 在命令運行時創建一個文件,如果文件已存在,則不會執行創建任務
        removes= 在命令運行時移除一個文件,如果文件不存在,則不會執行移除任務
        executeble= 指明運行命令的shell程序
    ansible zabbix -m shell -a 'echo "hello" >> /tmp/aa.txt'

4.copy 模塊 

拷貝ansible管理端的文件到遠程主機的指定位置
    常見參數:
        dest= 指明拷貝文件的目標目錄位置,使用絕對路徑,如果源是目錄,則目標也要是目錄,如果目標文件已存在,會覆蓋原有內容
        src= 指明本地路徑下的某個文件,可以使用絕對路徑和相對路徑,支持直接指定目錄,如果源是目錄,則目標也要是目錄
        mode= 指明覆制時,目標文件的權限
        owner= 指明覆制時,目標文件的屬主
        group= 指明覆制時,目標文件的屬組
        content= 指明覆制到目標主機的內容,不能和src一起使用,相當於複製content指明的數據,到目標文件中
    ansible zabbix -m copy -a 'src=/home/work/grafana-5.4.2-1.x86_64.rpm dest=/home/work/ mode=644 owner=work group=work'

5.cron 模塊 

管理計劃任務的模塊
    常見參數:
        minute= 指明計劃任務的分鐘,支持格式:0-59,*,*/2等,與正常cron任務定義的一樣的語法,省略時默認爲*,也就是每分鐘都執行
        hour= 指明計劃任務的小時,支持格式:0-23,*,*/2等,省略時默認*,也就是每小時都執行
        day= 指明計劃任務的天,支持的語法:1-31,*,*/2等,省略時默認爲*,也就是每天都執行
        month= 指明計劃任務的月,支持的語法:1-12,*,*/2等,省略時默認爲*,也就是每個月都執行
        weekday= 指明計劃任務的星期幾,支持的語法爲:0-6,*等,省略時默認爲*,也就是每星期幾都執行
        reboot= 指明計劃任務執行的時間爲每次重啓之後
        name= 給該計劃任務取個名字,必須要給明,每個任務的名稱不能一樣。刪除任務時,只需要給明任務的名稱即可
        job= 執行的任務時什麼,當state=present時纔有意義
        state=present|absent  表示這個任務是創建還是刪除,默認時present

    ansible zabbix -m cron -a 'minute=10 hour=10 day=10-15 month=1,5 weekday=0 name="test cron" job="date >> /tmp/date.txt" state=present'
    ansible zabbix -m command -a 'crontab -l'
    192.168.254.244 | CHANGED | rc=0 >>
    #Ansible: test cron
    10 10 10-15 1,5 0 date >> /tmp/date.txt
    刪除:ansible zabbix -m cron -a 'name="test cron" state=absent'

6.fetch模塊 

從遠程主機拉取文件到本地/ 一般情況下,只會從一個遠程節點拉取數據
    常見參數:
        dest= 從遠程主機上拉取的文件存放在本地的位置,一般只能是目錄
        src= 指明遠程主機上要拉取的文件,只能是文件,不能是目錄

    ansible zabbix -m fetch -a "dest=/tmp/ src=/tmp/date.txt"

7.file模塊 

用於設定遠程主機上的文件屬性
    常見參數:
        path= 指明對哪個文件修改其屬性
        src= 指明path=指明的文件是軟連接文件,其對應的源文件是誰,必須要在state=link時纔有用
        state=directory|link|absent 表示創建的文件是目錄還是軟鏈接
        owner= 指明文件的屬主
        group= 指明文件的屬組
        mode= 指明文件的權限

            創建軟鏈接的用法:
            src= path= state=link
            修改文件屬性的用法:
            path= owner= mode= group=
            創建目錄的用法:
            path= state=directory
            刪除文件:
            path= state=absent

    修改文件屬性ansible zabbix -m file -a 'path=/tmp/aa.txt owner=root group=root mode=666'
    創建軟鏈接ansible zabbix -m file -a 'src=/tmp/aa.txt path=/tmp/aa.link state=link'
    刪除文件ansible zabbix -m file -a 'path=/tmp/aa.link state=absent'

8.hostname模塊 

管理遠程主機上的主機名
    常用參數:
        name= 指明主機名
    ansible zabbix  -m hostname -a 'name=GXEFP_SAP_WEBSITEWCM_1'

9.yum模塊 

基於yum機制,對遠程主機管理程序包
    常用參數:
        name= 指明程序包的名稱,可以帶上版本號,不指名版本就是默認最新版本
        state=present|latest|absent 指明對程序包執行的操作,present表示安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包
        disablerepo= 在用yum安裝時,臨時禁用某個倉庫,倉庫的ID
        enablerepo= 在用yum安裝時,臨時啓用某個倉庫,倉庫的ID
        conf_file= 指明yum運行時採用哪個配置文件,而不是使用默認的配置文件
        disable_gpg_check=yes|no 是否啓用gpg_check

    ansible wyq -m yum -a "name=wget state=present" 安裝程序包
    ansible wyq -m yum -a "name=wget state=absent"  卸載程序包

10.service模塊 

用來管理遠程主機上的服務的模塊
    常用參數:
        name= 被管理的服務名稱
        state=started|stopped|restarted 表示啓動或關閉或重啓
        enabled=yes|no 表示要不要設定該服務開機自啓動
        runlevel= 如果設定了enabled開機自動啓動,則要定義在哪些運行級別下自動啓動

        ansible wyq -m service -a "name=rsyslog state=started"

11.uri模塊 

如果遠端是web服務器,可以利用ansible直接請求某個網頁
    常用參數:
        url= 指明請求的url的路徑,如:http://192.168.0.1/test.jpg
        user= 如果請求的url需要認證,則認證的用戶名是什麼
        password= 如果請求的url需要認證,則認證的密碼是什麼
        method= 指明請求的方法,如GET,POST...
        body= 指明報文中實體部分的內容,一般是POST方法或PUT方法時用到
        HEADER 自定義請求報文中的添加的首部

    ansible wyq -m uri -a "url=http://10.10.0.1/test.html"

12.group模塊  

用來添加或刪除遠程主機的用戶組
    常用參數:
        name= 被管理的組名
        state=present|absent 是添加還是刪除,不指明默認爲添加
        gid= 指明GID
        system=yes|no 是否爲系統組

13.user模塊  

用來添加或刪除遠程主機的用戶的賬號
    常用參數:
        name= 被管理的賬號名
        state=present|absent 是添加還是刪除,不指明默認爲添加
        uid= 指明UID
        system=yes|no 是否爲系統賬號
        group= 指明用戶的基本組
        groups= 指明用戶的附加組
        shell= 指明默認的shell
        home= 指明用戶的家目錄
        move_home=yes|no 當home設定了家目錄,如果要創建的家目錄已存在,是否將已存在的家目錄進行移動
        password= 指明用戶的密碼,最好使用加密好的字符串
        comment= 指明用戶的註釋信息
        remove=yes|no 當state=absent時,也就是刪除用戶時,是否要刪除用戶的家目錄

14.script模塊  

將管理端的某個腳本,移動到遠端主機(不需要指明傳遞到遠端主機的哪個路徑下,系統會自然移動,然後執行),一般是自動移動到遠端主機的/root/.ansible/tmp目錄下,然後自動給予其權限,然後再開個子shell然後運行腳本,運行完成後刪除腳本
    ansible wyq -m script -a '/root/test.sh'

15.setup模塊 

可收集遠程主機的facts變量信息,相當於收集了目標主機的相關信息(如內核版本、操作系統信息、cpu等),保存在ansible的內置變量中,之後我們有需要用到時,直接調用變量即可
    ansible wyq -m setup

16.template模塊  

基於模板方式,生成一個模板文件,複製到遠程主機,讓遠程主機基於模板,生成符合遠程主機自身的文件
注意:此模塊不能再命令行使用,只能用在playbook中
    常用模塊:
        src= 指明管理端本地的模板文件的目錄
        dest= 指明將模板文件拷貝到遠程主機的哪個目錄下
        owner= 指明拷貝到遠程主機的文件屬主
        group= 指明拷貝到遠程主機的文件屬組
        mode= 指明拷貝到遠程主機的文件的權限
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章