ansible-doc -l 查看支持的模塊
1.ping 模塊
探測主機是否在線
ansible zabbix -m ping
2.command 模塊
在遠程主機執行命令,不支持管道,重定向等shell特性
ansible zabbix -m command -a "date"
ansible zabbix -m command -a "chdir=/tmp ls" 切換目錄
ansible zabbix -m command -a "systemctl start httpd" 啓動服務
3.shell 模塊
在遠程主機執行命令,相當於調用遠程主機的shell進程,然後在該shell下打開一個子shell運行命令
支持shell特性,如管道,重定向等
常見參數:
chdir= 表示指明命令在遠程主機上哪一個目錄下運行
creates= 在命令運行時創建一個文件,如果文件已存在,則不會執行創建任務
removes= 在命令運行時移除一個文件,如果文件不存在,則不會執行移除任務
executeble= 指明運行命令的shell程序
ansible zabbix -m shell -a 'echo "hello" >> /tmp/aa.txt'
4.copy 模塊
拷貝ansible管理端的文件到遠程主機的指定位置
常見參數:
dest= 指明拷貝文件的目標目錄位置,使用絕對路徑,如果源是目錄,則目標也要是目錄,如果目標文件已存在,會覆蓋原有內容
src= 指明本地路徑下的某個文件,可以使用絕對路徑和相對路徑,支持直接指定目錄,如果源是目錄,則目標也要是目錄
mode= 指明覆制時,目標文件的權限
owner= 指明覆制時,目標文件的屬主
group= 指明覆制時,目標文件的屬組
content= 指明覆制到目標主機的內容,不能和src一起使用,相當於複製content指明的數據,到目標文件中
ansible zabbix -m copy -a 'src=/home/work/grafana-5.4.2-1.x86_64.rpm dest=/home/work/ mode=644 owner=work group=work'
5.cron 模塊
管理計劃任務的模塊
常見參數:
minute= 指明計劃任務的分鐘,支持格式:0-59,*,*/2等,與正常cron任務定義的一樣的語法,省略時默認爲*,也就是每分鐘都執行
hour= 指明計劃任務的小時,支持格式:0-23,*,*/2等,省略時默認*,也就是每小時都執行
day= 指明計劃任務的天,支持的語法:1-31,*,*/2等,省略時默認爲*,也就是每天都執行
month= 指明計劃任務的月,支持的語法:1-12,*,*/2等,省略時默認爲*,也就是每個月都執行
weekday= 指明計劃任務的星期幾,支持的語法爲:0-6,*等,省略時默認爲*,也就是每星期幾都執行
reboot= 指明計劃任務執行的時間爲每次重啓之後
name= 給該計劃任務取個名字,必須要給明,每個任務的名稱不能一樣。刪除任務時,只需要給明任務的名稱即可
job= 執行的任務時什麼,當state=present時纔有意義
state=present|absent 表示這個任務是創建還是刪除,默認時present
ansible zabbix -m cron -a 'minute=10 hour=10 day=10-15 month=1,5 weekday=0 name="test cron" job="date >> /tmp/date.txt" state=present'
ansible zabbix -m command -a 'crontab -l'
192.168.254.244 | CHANGED | rc=0 >>
#Ansible: test cron
10 10 10-15 1,5 0 date >> /tmp/date.txt
刪除:ansible zabbix -m cron -a 'name="test cron" state=absent'
6.fetch模塊
從遠程主機拉取文件到本地/ 一般情況下,只會從一個遠程節點拉取數據
常見參數:
dest= 從遠程主機上拉取的文件存放在本地的位置,一般只能是目錄
src= 指明遠程主機上要拉取的文件,只能是文件,不能是目錄
ansible zabbix -m fetch -a "dest=/tmp/ src=/tmp/date.txt"
7.file模塊
用於設定遠程主機上的文件屬性
常見參數:
path= 指明對哪個文件修改其屬性
src= 指明path=指明的文件是軟連接文件,其對應的源文件是誰,必須要在state=link時纔有用
state=directory|link|absent 表示創建的文件是目錄還是軟鏈接
owner= 指明文件的屬主
group= 指明文件的屬組
mode= 指明文件的權限
創建軟鏈接的用法:
src= path= state=link
修改文件屬性的用法:
path= owner= mode= group=
創建目錄的用法:
path= state=directory
刪除文件:
path= state=absent
修改文件屬性ansible zabbix -m file -a 'path=/tmp/aa.txt owner=root group=root mode=666'
創建軟鏈接ansible zabbix -m file -a 'src=/tmp/aa.txt path=/tmp/aa.link state=link'
刪除文件ansible zabbix -m file -a 'path=/tmp/aa.link state=absent'
8.hostname模塊
管理遠程主機上的主機名
常用參數:
name= 指明主機名
ansible zabbix -m hostname -a 'name=GXEFP_SAP_WEBSITEWCM_1'
9.yum模塊
基於yum機制,對遠程主機管理程序包
常用參數:
name= 指明程序包的名稱,可以帶上版本號,不指名版本就是默認最新版本
state=present|latest|absent 指明對程序包執行的操作,present表示安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包
disablerepo= 在用yum安裝時,臨時禁用某個倉庫,倉庫的ID
enablerepo= 在用yum安裝時,臨時啓用某個倉庫,倉庫的ID
conf_file= 指明yum運行時採用哪個配置文件,而不是使用默認的配置文件
disable_gpg_check=yes|no 是否啓用gpg_check
ansible wyq -m yum -a "name=wget state=present" 安裝程序包
ansible wyq -m yum -a "name=wget state=absent" 卸載程序包
10.service模塊
用來管理遠程主機上的服務的模塊
常用參數:
name= 被管理的服務名稱
state=started|stopped|restarted 表示啓動或關閉或重啓
enabled=yes|no 表示要不要設定該服務開機自啓動
runlevel= 如果設定了enabled開機自動啓動,則要定義在哪些運行級別下自動啓動
ansible wyq -m service -a "name=rsyslog state=started"
11.uri模塊
如果遠端是web服務器,可以利用ansible直接請求某個網頁
常用參數:
url= 指明請求的url的路徑,如:http://192.168.0.1/test.jpg
user= 如果請求的url需要認證,則認證的用戶名是什麼
password= 如果請求的url需要認證,則認證的密碼是什麼
method= 指明請求的方法,如GET,POST...
body= 指明報文中實體部分的內容,一般是POST方法或PUT方法時用到
HEADER 自定義請求報文中的添加的首部
ansible wyq -m uri -a "url=http://10.10.0.1/test.html"
12.group模塊
用來添加或刪除遠程主機的用戶組
常用參數:
name= 被管理的組名
state=present|absent 是添加還是刪除,不指明默認爲添加
gid= 指明GID
system=yes|no 是否爲系統組
13.user模塊
用來添加或刪除遠程主機的用戶的賬號
常用參數:
name= 被管理的賬號名
state=present|absent 是添加還是刪除,不指明默認爲添加
uid= 指明UID
system=yes|no 是否爲系統賬號
group= 指明用戶的基本組
groups= 指明用戶的附加組
shell= 指明默認的shell
home= 指明用戶的家目錄
move_home=yes|no 當home設定了家目錄,如果要創建的家目錄已存在,是否將已存在的家目錄進行移動
password= 指明用戶的密碼,最好使用加密好的字符串
comment= 指明用戶的註釋信息
remove=yes|no 當state=absent時,也就是刪除用戶時,是否要刪除用戶的家目錄
14.script模塊
將管理端的某個腳本,移動到遠端主機(不需要指明傳遞到遠端主機的哪個路徑下,系統會自然移動,然後執行),一般是自動移動到遠端主機的/root/.ansible/tmp目錄下,然後自動給予其權限,然後再開個子shell然後運行腳本,運行完成後刪除腳本
ansible wyq -m script -a '/root/test.sh'
15.setup模塊
可收集遠程主機的facts變量信息,相當於收集了目標主機的相關信息(如內核版本、操作系統信息、cpu等),保存在ansible的內置變量中,之後我們有需要用到時,直接調用變量即可
ansible wyq -m setup
16.template模塊
基於模板方式,生成一個模板文件,複製到遠程主機,讓遠程主機基於模板,生成符合遠程主機自身的文件
注意:此模塊不能再命令行使用,只能用在playbook中
常用模塊:
src= 指明管理端本地的模板文件的目錄
dest= 指明將模板文件拷貝到遠程主機的哪個目錄下
owner= 指明拷貝到遠程主機的文件屬主
group= 指明拷貝到遠程主機的文件屬組
mode= 指明拷貝到遠程主機的文件的權限