Ansible常用模組

2021-09-27 05:30:57 字數 4064 閱讀 3470

1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行、任務執行等操作。

但command模組不支援變數、重定向、管道符等,這些操作需要用shell模組執行

command模組使用詳解:

chdir:執行命令前,切換到目錄

creates:當該檔案存在時,不執行該步驟

executable:切換shell來執行命令,需要使用命令的絕對路徑

free_from:需要執行的指令碼,一般使用ansible的-a引數代替。

removes:當該檔案不存在時,不執行該步驟

warn:如果在ansible.cfg中存在告警,如果設定了false,不會告警該行

3.ansible copy模組主要用於檔案或者目錄複製,支援檔案、目錄、許可權、使用者組功能

copy模組使用詳解:

src:ansible端原始檔或者目錄,空目錄不複製

content:用來替代src,用於將指定檔案的內容複製到遠端檔案內

dest:客戶端目標目錄或者檔案,需要絕對路徑

backup:複製之前,先備份遠端節點上的原始檔案

directory_mode:用於複製目錄,新建的檔案會被複製,而舊的不會被複製

follow:支援link檔案複製

force:覆蓋遠端主機不一致的內容

group:設定遠端主機目錄的組名

mode:設定遠端主機檔案及目錄的許可權

owner:設定遠端主機目錄的使用者名稱

4.ansible yum模組主要用於軟體的安裝、公升級、解除安裝,支援rpm軟體包的管理

yum模組使用詳解:

conf_file:設定遠端yum執行時所依賴的yum配置檔案

disable_gpg_check:安裝軟體包之前是否檢查gpg key

name:需要安裝的軟體名稱,支援軟體組安裝

update_cache:安裝軟體之前更新快取

enablerepo:指定repo源名稱

skip_broken:跳過異常軟體節點

state:軟體包狀態,包括installed、present、latest、absent、removed

present, installed是指安裝套件,而latest指安裝最新的套件,也就是使用 yum mirror 上最新的版本。

absent, removed 沒有什麼區別

5.ansible user模組主要用於作業系統使用者、組、許可權、密碼等操作

user模組使用詳解:

system:預設建立為普通使用者,為yes則建立系統使用者

comment:新增描述資訊

createhome:給使用者建立家目錄

force:強制刪除使用者

group:建立使用者主組

groups:將使用者加入組或者附屬組新增

home:指定使用者的家目錄

name:表示狀態,是否create、remove、modify

password:指定使用者的密碼,為加密密碼

remove:刪除使用者

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

uid:設定使用者id

update_password:修改使用者密碼

state:使用者狀態,預設為present,表示新建使用者

6. setup模組,主要用於獲取主機資訊,在playbooks裡經常會用到的乙個引數gather_facts就與該模組相關。setup模組下經常使用的乙個引數是filter引數,具體使用示例如下(由於輸出結果較多,這裡只列命令不寫結果):

[root@361way ~]# ansible 10.212.52.252 -m setup -a 'filter=ansible_*_mb' //檢視主機記憶體資訊[root@361way ~]# ansible 10.212.52.252 -m setup -a 'filter=ansible_eth[0-2]' //檢視地介面為eth0-2的網絡卡資訊[root@361way ~]# ansible all -m setup --tree /tmp/facts //將所有主機的資訊輸入到/tmp/facts目錄下,每台主機的資訊輸入到主機名檔案中(/etc/ansible/hosts裡的主機名)

7. file模組主要用於遠端主機上的檔案操作,file模組包含如下選項:

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

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

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

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

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

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

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

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

使用示例:

ansible test -m file -a "src=/etc/fstab dest=/tmp/fstab state=link"ansible test -m file -a "path=/tmp/fstab state=absent"ansible test -m file -a "path=/tmp/test state=touch"

8.service模組

用於管理服務

9.cron模組

用於管理計畫任務

10.yum模組

使用yum包管理器來管理軟體包,其選項有:

config_file:yum的配置檔案

disable_gpg_check:關閉gpg_check

disablerepo:不啟用某個源

enablerepo:啟用某個源

name:要進行操作的軟體包的名字,也可以傳遞乙個url或者乙個本地的rpm包的路徑

state:狀態(present,absent,latest)

11.user模組與group模組

user模組是請求的是useradd, userde

12.synchronize模組

使用rsync同步檔案,其引數如下:

archive: 歸檔,相當於同時開啟recursive(遞迴)、links、perms、times、owner、group、-d選項都為yes ,預設該項為開啟

13.get_url 模組

url_password、url_username:主要用於需要使用者名稱密碼進行驗證的情況

use_proxy:是事使用**,**需事先在環境變更中定義

14.user模組是請求的是useradd, userdel, usermod三個指令,goup模組請求的是groupadd, groupdel, groupmod 三個指令。

15.script模組[在遠端主機執行主控端的shell/python指令碼 ] (使用相對路徑)

[root@node1 ansible]# ansible testservers -m script -a '/etc/ansible/test.sh

16. shell模組[執行遠端主機的shell/python指令碼]

[root@node1 ansible]# ansible testservers -m shell -a 'bash /root/test.sh'

17. raw模組[類似於command模組、支援管道傳遞]

[root@node1 ansible]# ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk '' |awk -f: ''"

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只是提供一種...

Ansible常用模組

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