這裡從官方分類的子產品裡選擇最常用的一些子產品進行介紹。
測試主機是否是通的,用法很簡單,不涉及參數:
setup子產品,主要用于擷取主機資訊,在playbooks裡經常會用到的一個參數gather_facts就與該子產品相關。setup子產品下經常使用的一個參數是filter參數,具體使用示例如下:
file子產品主要用于遠端主機上的檔案操作,file子產品包含如下選項:
force:需要在兩種情況下強制建立軟連結,一種是源檔案不存在但之後會建立的情況下;另一種是目标軟連結已存在,需要先取消之前的軟鍊,然後建立新的軟鍊,有兩個選項:yes|no
group:定義檔案/目錄的屬組
mode:定義檔案/目錄的權限
owner:定義檔案/目錄的屬主
path:必選項,定義檔案/目錄的路徑
recurse:遞歸的設定檔案的屬性,隻對目錄有效
src:要被連結的源檔案的路徑,隻應用于state=link的情況
dest:被連結到的路徑,隻應用于state=link的情況
state:
directory:如果目錄不存在,建立目錄
file:即使檔案不存在,也不會被建立
link:建立軟連結
hard:建立硬連結
touch:如果檔案不存在,則會建立一個新的檔案,如果檔案或目錄已存在,則更新其最後修改時間
absent:删除目錄、檔案或者取消連結檔案
使用示例:
複制檔案到遠端主機,copy子產品包含如下選項:
backup:在覆寫之前将原檔案備份,備份檔案包含時間資訊。有兩個選項:yes|no
content:用于替代"src",可以直接設定指定檔案的值
dest:必選項。要将源檔案複制到的遠端主機的絕對路徑,如果源檔案是一個目錄,那麼該路徑也必須是個目錄
directory_mode:遞歸的設定目錄的權限,預設為系統預設權限
force:如果目标主機包含該檔案,但内容不同,如果設定為yes,則強制覆寫,如果為no,則隻有當目标主機的目标位置不存在該檔案時,才複制。預設為yes
others:所有的file子產品裡的選項都可以在這裡使用
src:要複制到遠端主機的檔案在本地的位址,可以是絕對路徑,也可以是相對路徑。如果路徑是一個目錄,它将遞歸複制。在這種情況下,如果路徑使用"/"來結尾,則隻複制目錄裡的内容,如果沒有使用"/"來結尾,則包含目錄在内的整個内容全部複制,類似于rsync。
validate :The validation command to run before copying into place. The path to the file to validate is passed in via '%s' which must be present as in the visudo example below.
示例如下:
用于管理服務
該子產品包含如下選項:
arguments:給指令行提供一些選項
enabled:是否開機啟動 yes|no
name:必選項,服務名稱
pattern:定義一個模式,如果通過status指令來檢視服務的狀态時,沒有響應,就會通過ps指令在程序中根據該模式進行查找,如果比對到,則認為該服務依然在運作
runlevel:運作級别
sleep:如果執行了restarted,在則stop和start之間沉睡幾秒鐘
state:對目前服務執行啟動,停止、重新開機、重新加載等操作(started,stopped,restarted,reloaded)
用于管理計劃任務包含如下選項:
backup:對遠端主機上的原任務計劃内容修改之前做備份
cron_file:如果指定該選項,則用該檔案替換遠端主機上的cron.d目錄下的使用者的任務計劃
day:日(1-31,*,*/2,……)
hour:小時(0-23,*,*/2,……)
minute:分鐘(0-59,*,*/2,……)
month:月(1-12,*,*/2,……)
weekday:周(0-7,*,……)
job:要執行的任務,依賴于state=present
name:該任務的描述
special_time:指定什麼時候執行,參數:reboot,yearly,annually,monthly,weekly,daily,hourly
state:确認該任務計劃是建立還是删除
user:以哪個使用者的身份執行
示例:
使用yum包管理器來管理軟體包,其選項有:
config_file:yum的配置檔案
disable_gpg_check:關閉gpg_check
disablerepo:不啟用某個源
enablerepo:啟用某個源
name:要進行操作的軟體包的名字,也可以傳遞一個url或者一個本地的rpm包的路徑
state:狀态(present,absent,latest)
user子產品是請求的是useradd, userdel, usermod三個指令,goup子產品請求的是groupadd, groupdel, groupmod 三個指令。
home:指定使用者的家目錄,需要與createhome配合使用
groups:指定使用者的屬組
uid:指定用的uid
password:指定使用者的密碼
name:指定使用者名
createhome:是否建立家目錄 yes|no
system:是否為系統使用者
remove:當state=absent時,remove=yes則表示連同家目錄一起删除,等價于userdel -r
state:是建立還是删除
shell:指定使用者的shell環境
注:指定password參數時,不能使用明文密碼,因為後面這一串密碼會被直接傳送到被管理主機的/etc/shadow檔案中,是以需要先将密碼字元串進行加密處理。然後将得到的字元串放到password中即可。
不同的發行版預設使用的加密方式可能會有差別,具體可以檢視/etc/login.defs檔案确認,centos 6.5版本使用的是SHA512加密算法。
使用rsync同步檔案,其參數如下:
archive: 歸檔,相當于同時開啟recursive(遞歸)、links、perms、times、owner、group、-D選項都為yes ,預設該項為開啟
checksum: 跳過檢測sum值,預設關閉
compress:是否開啟壓縮
copy_links:複制連結檔案,預設為no ,注意後面還有一個links參數
delete: 删除不存在的檔案,預設no
dest:目錄路徑
dest_port:預設目錄主機上的端口 ,預設是22,走的ssh協定
dirs:傳速目錄不進行遞歸,預設為no,即進行目錄遞歸
rsync_opts:rsync參數部分
set_remote_user:主要用于/etc/ansible/hosts中定義或預設使用的使用者與rsync使用的使用者不同的情況
mode: push或pull 子產品,push模的話,一般用于從本機向遠端主機上傳檔案,pull 模式用于從遠端主機上取檔案
dev:目标塊裝置
force:在一個已有檔案系統 的裝置上強制建立
fstype:檔案系統的類型
opts:傳遞給mkfs指令的選項
ansible test -m filesystem -a 'fstype=ext2 dev=/dev/sdb1 force=yes'
ansible test -m filesystem -a 'fstype=ext4 dev=/dev/sdb1 opts="-cc"'
配置挂載點
選項:
dump
fstype:必選項,挂載檔案的類型
name:必選項,挂載點
opts:傳遞給mount指令的參數
src:必選項,要挂載的檔案
state:必選項
present:隻處理fstab中的配置
absent:删除挂載點
mounted:自動建立挂載點并挂載之
umounted:解除安裝
該子產品主要用于從http、ftp、https伺服器上下載下傳檔案(類似于wget),主要有如下選項:
sha256sum:下載下傳完成後進行sha256 check;
timeout:下載下傳逾時時間,預設10s
url:下載下傳的URL
url_password、url_username:主要用于需要使用者名密碼進行驗證的情況
use_proxy:是事使用代理,代理需事先在環境變更中定義
用于解壓檔案,子產品包含如下選項:
copy:在解壓檔案之前,是否先将檔案複制到遠端主機,預設為yes。若為no,則要求目标主機上壓縮包必須存在。
creates:指定一個檔案名,當該檔案存在時,則解壓指令不執行
dest:遠端主機上的一個路徑,即檔案解壓的路徑
grop:解壓後的目錄或檔案的屬組
list_files:如果為yes,則會列出壓縮包裡的檔案,預設為no,2.0版本新增的選項
mode:解決後檔案的權限
src:如果copy為yes,則需要指定壓縮檔案的源路徑
owner:解壓後檔案或目錄的屬主
- unarchive: src=https://example.com/example.zip dest=/usr/local/bin copy=no
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1852365,如需轉載請自行聯系原作者