ansible的常用模組

2021-10-01 16:39:35 字數 3503 閱讀 8663

單獨乙個:

ansible ip位址 -m 模組 -a 『命令』

用-m和-k測試:

ansible -m ping -k ip位址

用list測試ip位址 :

ansible --list ip位址

一般格式:

ansible 主機組 -m 模組 -a 『命令』

ansible webserver -m ping
yum模組用來在centos系統上使用yum命令安裝軟體包

選項:name: 指定安裝包的名字

state:latest 安裝最新版 present 預設安裝 installed 安裝 absent 解除安裝

removed 解除安裝

例子:

ansible webservers -m yum -a 'name=httpd state=latest'
command模組用來執行系統命令,但是不支援shell下的特殊符號 如:| &&等

例子:

ansible webservers -m command  -a 'echo 小明'
shell模組和command模組使用方法基本一致,但是他可以支援shell的特殊符號,如: | && 等

例子:

ansible webservers -m shell  -a 'cd /opt/ && mkdir xiaoming'
service模組用來管理centos上的服務的啟動、關閉、重啟和過載

選項:name: 服務名字

state: started(啟動) stopped(停止) restarted(重啟) reloaded(過載)

enabled: 預設是no,將服務設定為開機自啟

例子:

ansible webservers -m service -a 'name=httpd state=started'
file模組用來建立檔案、目錄、鏈結檔案

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

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

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

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

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

src:要被鏈結的原始檔的路徑,只應用於state=link的情況

dest:被鏈結到的路徑,只應用於state=link的情況

state:

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

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

3.link:建立軟鏈結

4.hard:建立硬鏈結

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

6.absent:刪除目錄、檔案或者取消鏈結檔案

例子:

ansible webservers -m file -a 'path=/root/aa state=touch'
user模組用來建立使用者

選項:home: 指定建立的家目錄

groups:指定使用者組

uid:指定uid

password:設定密碼,密碼必須是密文

name:建立的使用者名字

createhome:是否建立家目錄(yes/no)

state: 是建立還是刪除。(present,absent),預設是建立

shell: 指定使用者登入的shell環境

remove:刪除使用者家目錄,預設為no

例子:

ansible webservers -m user -a 'name=tom password=4xt9gdyveup6i'
group用來建立使用者組

選項gid:指定用的gid。

name:指定使用者名稱。

state:是建立還是刪除。(present,absent)

例子:

ansible webservers -m group -a 'name=he state=present'
copy模組用來複製檔案至目標主機

選項:src:檔案在管理主機的據對路徑或者相對路徑

dest:將檔案複製到目標主機的路徑

backup:是否將目標主機的同名檔案備份,預設為no

mode: 授權

directory_mode:遞迴授權

例子:

ansible  webservers  -m copy  -a 'src=/root/nginx.sh  dest=/opt/'
unarchive模組用來解壓檔案

選項:copy:在解壓檔案之前,是否先將檔案複製到遠端主機,預設為yes。若為no,則要求目標主機上壓縮包必須存在

creates:指定乙個檔名,當該檔案存在時,則解壓指令不執行

dest:遠端主機上的乙個路徑,即檔案解壓的絕對路徑。

group:解壓後的目錄或檔案的屬組

mode:解壓後檔案的許可權

src:如果copy為yes,則需要指定壓縮檔案的源路徑

owner:解壓後檔案或目錄的屬主

例子:

ansible  webservers -m unarchive -a 'src=/root/nginx.tar.gz  dest=/opt/ group=www ower=www mode=777'
ansible webservers -m get_url -a 'url=   dest=/root/'
使用rsync同步檔案,將主控方目錄推送到指定節點的目錄下,使用此模組需要先安裝rsync

delete: 刪除不存在的檔案,delete=yes 使兩邊的內容一樣(即以推送方為主),預設no

src: 要同步到目的地的源主機上的路徑; 路徑可以是絕對的或相對的。如果路徑使用」/」來結尾,則只複製目錄裡的內容,如果沒有使用」/」來結尾,則包含目錄在內的整個內容全部複製

dest:目的地主機上將與源同步的路徑; 路徑可以是絕對的或相對的。

dest_port:預設目錄主機上的埠 ,預設是22,走的ssh協議。

mode: push或pull,預設push,一般用於從本機向遠端主機上傳檔案,pull 模式用於從遠端主機上取檔案。

rsync_opts:通過傳遞陣列來指定其他rsync選項。

fetch

fetch模組它用於從遠端機器獲取檔案,並將其本地儲存在由主機名組織的檔案樹中。

選項:src:遠端系統上要獲取的檔案。 這必須是乙個檔案,而不是乙個目錄。 後續版本可能會支援遞迴提取。

dest:儲存檔案的目錄

ansible webservers -m setup -a 'filter=ansible_all_ipv4_addresses'

Ansible常用模組

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

ansible常用模組

1.setup 該模組主要用於收集資訊,是通過呼叫facts元件來實現的 ansible doc s setup ansible mysql m setup 檢視mysql伺服器上所有資訊檢視遠端主機基本資訊 ansible all m setup2.ping測試遠端主機執行狀態 ansible a...

Ansible 常用模組

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