Ansible經常使用模塊

1.ping模塊
ping模塊,主要用於判斷遠程客戶端是否在線,用於ping自己服務器,返回值是changed、ping
使用Ansible ping服務器狀態,代碼爲ansible -k all -m ping
Ansible經常使用模塊node

2.Ansible command模塊是Ansible默認模塊,主要用於執行Linux基礎命令,能夠執行遠程服務器命令執行、任務執行等操做。
但command模塊不支持變量、重定向、管道符等,這些操做須要用shell模塊執行
command模塊使用詳解:python

chdir:執行命令前,切換到目錄
creates:當該文件存在時,不執行該步驟
executable:切換shell來執行命令,須要使用命令的絕對路徑
free_from:須要執行的腳本,通常使用Ansible的-a參數代替。
removes:當該文件不存在時,不執行該步驟
warn:若是在ansible.cfg中存在告警,若是設定了false,不會告警該行

3.Ansible copy模塊主要用於文件或者目錄複製,支持文件、目錄、權限、用戶組功能
copy模塊使用詳解:shell

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模塊使用詳解:bash

system:默認建立爲普通用戶,爲yes則建立系統用戶
append:添加一個新的組
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裏的主機名)app

7. file模塊主要用於遠程主機上的文件操做,file模塊包含以下選項:ide

force:須要在兩種狀況下強制建立軟連接,一種是源文件不存在但以後會創建的狀況下;另外一種是目標軟連接已存在,須要先取消以前的軟鏈,而後建立新的軟鏈,有兩個選項:yes|noui

group:定義文件/目錄的屬組加密

mode:定義文件/目錄的權限

owner:定義文件/目錄的屬主

path:必選項,定義文件/目錄的路徑

recurse:遞歸的設置文件的屬性,只對目錄有效

src:要被連接的源文件的路徑,只應用於state=link的狀況

dest:被連接到的路徑,只應用於state=link的狀況

state: directory:若是目錄不存在,建立目錄

file:即便文件不存在,也不會被建立

link:建立軟連接

hard:建立硬連接

touch:若是文件不存在,則會建立一個新的文件,若是文件或目錄已存在,則更新其最後修改時間

absent:刪除目錄、文件或者取消連接文件

使用示例:

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

該模塊主要用於從http、ftp、https服務器上下載文件(相似於wget),主要有以下選項:

sha256sum:下載完成後進行sha256 check;

timeout:下載超時時間,默認10s

url:下載的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 '{print \$2}' |awk -F: '{print \$2}'"

相關文章
相關標籤/搜索