ansible常用模組

2021-10-07 23:23:27 字數 4963 閱讀 1377

1.setup

該模組主要用於收集資訊,是通過呼叫facts元件來實現的

ansible-doc -s setup

ansible mysql -m setup #檢視mysql伺服器上所有資訊

檢視遠端主機基本資訊

ansible all -m setup

2.ping
測試遠端主機執行狀態

ansible all -m ping

3.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 -m file -a 'path=/opt/abc.txt state=touch' #建立空檔案

ansible mysql -m file -a 'path=/opt/abc.txt state=absent' #刪除

設定檔案屬性

group:定義檔案/目錄的屬組

mode:定義檔案/目錄的許可權

owner:定義檔案/目錄的屬主

path:必選項,定義檔案/目錄的路徑

recurse:遞迴設定檔案的屬性,只對目錄有效

state:

directory:如果目錄不存在,就建立目錄

file:即使檔案不存在,也不會被建立

touch:如果檔案不存在,則會建立乙個新檔案,如果檔案或目錄已存在,則更新其最後修改時間

遠端檔案鏈結建立

ansible [hostgroup or ip] -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"

遠端檔案鏈結刪除

ansible all -m file -a "path=/tmp/resolv.conf state=absent"

4.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 mysql -m copy -a 'content="hello world!" dest=/opt/hello.txt'

#複製檔案hello.txt中寫入「hello world!」

ansible mysql -a 'cat /opt/test.txt' #在控制主機上檢視

複製檔案到遠端主機

backup:在覆蓋之前,將原始檔備份,備份檔案包含時間資訊。有兩個選項:yes|no

content:用於替代「src」,可以直接設定指定檔案的值

dest:必選項。要將原始檔複製到的遠端主機的絕對路徑,如果原始檔是乙個目錄,

那麼該路徑也必須是個目錄

directory_mode:遞迴設定目錄的許可權,預設為系統預設許可權

force:如果目標主機包含該檔案,但內容不同,如果設定為yes,則強制覆蓋,如果為no,

則只有當目標主機的目標位置不存在該檔案時,才複製。預設為yes

others:所有的file模組裡的選項都可以在這裡使用

src:被複製到遠端主機的本地檔案,可以是絕對路徑,也可以是相對路徑。

如果路徑是乙個目錄,它將遞迴複製。在這種情況下,如果路徑使用「/」來結尾,

則只複製目錄裡的內容,如果沒有使用「/」來結尾,則包含目錄在內的整個內容全部複製,

類似於rsync。

將本地檔案「/root/1.txt 」複製到遠端伺服器

ansible all -m copy -a "src=/root/1.txt dest=/tmp/1.txt owner=root group=root mode=0644"

5.command

這個模組可以直接在遠端主機上執行命令,並將結果返回本主機。注意,該命令不支援 | 管道命令

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模組

在遠端主機上執行命令

creates:乙個檔名,當該檔案存在,則該命令不執行

free_form:要執行的linux指令

chdir:在執行指令之前,先切換到該目錄

removes:乙個檔名,當該檔案不存在,則該選項不執行

executable:切換shell來執行指令,該執行路徑必須是乙個絕對路徑

ansible all -m command -a "uptime"

#執行命令不寫入history

遠端檔案資訊檢視

ansible all -m command -a "ls –l /tmp/1.txt"

6.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'

#建立使用者,免互動設定密碼

切換到shell執行指定的指令,引數與command相同。

與command不同的是,此模組可以支援命令管道,同時還有另乙個模組也具備此功能:raw

先在本地建立乙個shell指令碼

vim /tmp/test.sh

#!/bin/sh

date +%f_%h:%m:%s

chmod +x /tmp/test.sh

將建立的指令碼檔案分發到遠端

ansible all -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh owner=root group=root mode=0755"

遠端執行

ansible all -m shell -a "/tmp/test.sh"

7.cron

該模組適用於管理cron計畫任務的

建立和刪除計畫任務

ansible [hostgroup or ip] -m cron -a "name='....' job='.....' $time"

-m 跟模組,使用的是 cron 模組

name= 指定計畫任務的名字,方便日後管理

job= 指定具體的任務

$time 指定具體的執行時間,minute分鐘,hour小時,day 天,month 月份。weekday 0 或者 7 代表週末。

state= 選項用來指定 name 並刪除

增加計畫任務

ansible all -m cron -a "name='test cron' job='/bin/bash /tmp/test.sh' weekday=6"

刪除計畫任務

ansible all -m cron -a "name='test cron' state=absent"

8.user

該模組主要是用來管理使用者賬號

ansible-doc -s user

ansible all -m user -a 'name=test' #建立使用者

ansible mysql -m command -a 'tail /etc/passwd'

ansible mysql -m user -a 'name=test01 state=absent' #刪除使用者

9.yum
ansible-doc -s yum

ansible webserver -m yum -a 'name=httpd' #安裝httpd

ansible webserver -m yum -a 'name=httpd state=absent' #移除httpd

10.service

該模組用於服務程式的管理

#開啟httpd服務 ; enabled:開機自啟動

ansible webserver -m service -a 'name=httpd enabled=true state=stopped' #關閉httpd服務

ansible-doc -l 列出ansible所有的模組

ansible-doc -s module_name 檢視指定模組具體適用

Ansible常用模組

1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行 任務執行等操作。但command模組不支援變數 重定向 管道符等,這些操作需要用shell模組執行 command模組使用詳解 chdir 執行命令前,切換到目...

Ansible 常用模組

ansible是基於python開發,集合了眾多運維工具 puppet cfengine chef func fabric 的優點 具有批量系統配置 批量程式部署 批量執行命令等功能。是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種...

Ansible常用模組

例子 ansible webserver m pingname 指定安裝包的名字 state latest 安裝最新版 present 預設安裝 installed 安裝 absent 解除安裝 removed 解除安裝 例子 ansible webservers m yum a name http...