Ansible經常使用模塊詳解

Ansible可使用命令行方式進行自動化管理,且ansible的命令行管理工具都是由一系列模塊、參數支持的,咱們能夠經過ansible-doc工具查看模塊幫助信息。本篇博文將詳細講述ansible模塊功能及操做。mysql

Ansible命令參數:

  • -v:輸出詳細信息(可使用多個v)
  • -i PATH:指定hosts文件位置
  • -f NUM :指定開啓的進程數(默認爲5)
  • -m MOULE :指定module的名稱(默認爲command)
  • -m DIRECTORY:指定module的目錄來加載module,默認是/usr/share/ansible
  • -a,MODULE_ARGS:指定module模塊的參數
  • -k:提示輸入ssh的密碼,而不是使用基於ssh的密鑰認證
  • -u USERNAME:指定移動端的執行用戶

    Ansible模塊:

    一、command模塊

    這個模塊能夠直接在遠程主機上執行命令,並將結果返回本主機。注意,該命令不支持 | 管道命令web

    命令:ansible [主機] [-m 模塊] [-a args]
    ansible-doc -l #列出全部安裝模塊(q退出)
    ansible-doc -s yum #列出yum模塊描述信息和操做動做
    ansible all -m command -a 'date' #查詢date
    ansible all -a 'ls /' #若是不加-m模塊,默認運行command模塊sql

Ansible經常使用模塊詳解
Ansible經常使用模塊詳解

二、cron模塊

該模塊適用於管理cron計劃任務的。shell

兩種狀態(state):present表示添加        absent 表示移除
ansible-doc -s cron                      #查看cron模塊信息
ansible all -m cron -a 'minute="*/1" job="/usr/bin/echo heihei >> /opt/test.txt" name="test cron"'          
#-a: 指定添加參數     */1:每分鐘執行      job:執行內容

Ansible經常使用模塊詳解

ansible mysql -a 'crontab -l'        #查看crontab信息
ansible mysql -m cron -a 'name="test cron" state=absent'

Ansible經常使用模塊詳解

三、user模塊

該模塊主要是用來管理用戶帳號。bash

ansible-doc -s user
ansible all -m user -a 'name=test' #建立用戶服務器

Ansible經常使用模塊詳解
操做成功後,到被管理服務器上查看結果:
Ansible經常使用模塊詳解數據結構

ansible mysql -m command -a 'tail /etc/passwd'
ansible mysql -m user -a 'name=test01 state=absent' #刪除用戶ssh

Ansible經常使用模塊詳解
操做成功後,到mysql服務器上查看結果:
Ansible經常使用模塊詳解ide

四、group模塊

該模塊主要用於添加或刪除組。工具

ansible mysql -m group -a 'name=mysql gid=330 system=yes'
ansible mysql -a 'tail /etc/group'

Ansible經常使用模塊詳解

ansible mysql -m user -a 'name=test02 uid=330 group=mysql system=yes'
#新建用戶test02;設定UID=306;將test02添加到mysql組
ansible mysql -a 'id test02'

Ansible經常使用模塊詳解

五、copy模塊

這個模塊用於將文件複製到遠程主機,同時支持給定內容生成文件和修改權限等。

ansible-doc -s copy
ansible all -m copy -a 'src=/etc/fstab dest=/opt/fstab.bk owner=root mode=644'
#src:原文件 dest:複製後目標文件 owner:屬主 mode:權限
ansible mysql -a 'ls -l /opt' #在控制主機上查看

Ansible經常使用模塊詳解
操做成功後,到被管理服務器上相應目錄下查看結果:
Ansible經常使用模塊詳解

ansible mysql -m copy -a 'content="hello world!" dest=/opt/hello.txt'
#複製文件hello.txt中寫入「hello world!」
ansible mysql -a 'cat /opt/test.txt' #在控制主機上查看

Ansible經常使用模塊詳解
操做成功後,到mysql服務器上相應目錄下查看結果:
Ansible經常使用模塊詳解

六、file模塊

該模塊主要用於設置文件的屬性,好比建立文件、建立連接文件、刪除文件等。

ansible-doc -s file
touch /opt/file.txt
ansible mysql -m file -a 'path=/opt/file.txt owner=test02 group=mysql mode=666'
#對test文件設置屬主、屬組、權限

Ansible經常使用模塊詳解
操做完成後,到mysql服務器下檢查結果:
Ansible經常使用模塊詳解

ansible mysql -m file -a 'src=/opt/test.txt path=/opt/test.txt.link state=link'
#將src指的文件連接到path指的路徑下

Ansible經常使用模塊詳解
操做完成後,到mysql服務器相應目錄下檢查結果:
Ansible經常使用模塊詳解

固然,也能夠建立空文件,操做相對簡單
ansible mysql -m file -a 'path=/opt/abc.txt state=touch' #建立空文件
ansible mysql -m file -a 'path=/opt/abc.txt state=absent' #刪除

七、ping模塊

//測試被管理主機是否在線
ansible all -m ping

Ansible經常使用模塊詳解

八、yum模塊

ansible-doc -s yum
ansible webserver -m yum -a 'name=httpd' #安裝httpd
ansible webserver -m yum -a 'name=httpd state=absent' #移除httpd

Ansible經常使用模塊詳解

九、shell模塊

shell模塊能夠在遠程主機上調用shell解釋器運行命令,支持shell的各類功能,例如管道等。

ansible-doc -s shell
ansible webserver -m user -a 'name=jerry'
ansible webserver -m shell -a 'echo abc123 | passwd --stdin jerry'
#建立用戶,免交互設置密碼

Ansible經常使用模塊詳解

十、script模塊

該模塊用於將本機的腳本在被管理端的機器上運行。

在本身服務器設置腳本,其餘服務器去執行
ansible-doc -s script
#!/bin/bash
echo "this is test script" > /opt/script.txt
chmod 666 /opt/script.txt #設置權限
chmod +x test.sh #爲腳本添加執行權限
ansible all -m script -a 'test.sh'

Ansible經常使用模塊詳解
操做完成後,到被管理服務器上查看執行結果:
Ansible經常使用模塊詳解

十一、setup模塊

該模塊主要用於收集信息,是經過調用facts組件來實現的。
  facts組件是Ansible用於採集被管機器設備信息的一個功能,咱們可使用setup模塊查機器的全部facts信息,可使用filter來查看指定信息。整個facts信息被包裝在一個JSON格式的數據結構中,ansible_facts是最上層的值。

ansible-doc -s setup
ansible mysql -m setup #查看mysql服務器上全部信息

十二、service模塊

該模塊用於服務程序的管理。

ansible-doc -s service
ansible webserver -m service -a 'name=httpd enabled=true state=started'
#開啓httpd服務 ; enabled:開機自啓動ansible webserver -m service -a 'name=httpd enabled=true state=stopped' #關閉httpd服務

相關文章
相關標籤/搜索