1.ping模塊
ping模塊,主要用於判斷遠程客戶端是否在線,用於ping自己服務器,返回值是changed、ping
使用Ansible ping服務器狀態,代碼爲ansible -k all -m ping
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}'"