8.模塊
8.1模塊的分類
8.1.1 Core Module
(1)不須要格外下載和配置就能夠直接使用的
(2)經常使用的module
(3)都是通過嚴格測試的
8.1.2 Extra Module
(1)Extra Module須要下載和配置才能使用
(2)次經常使用的
(3)還有可能存在bug的
注意:在ansible module文檔上查看單個module的時候,每個module文檔的底部都會標識,這是一個「Core Module」,或者這是一個「Extra Module」,好比yum就是一個core module,yum_repository就是一個extra module
8.2常見模塊
可使用ansible-doc -l命令查看有哪些模塊
使用ansible-doc -s copy命令能夠查看模塊的使用方法
8.2.1 command
(1)幫助:[root@pythion ~]# ansible-doc -s command
(2)簡介:Command模塊,命令模塊、默認模塊,用於在遠程執行命令
(3)選項:
free_form:要執行的linux指令
chdir:在執行指令以前,先切換到該目錄
removes:對應的文件不存在就執行command
creates:對應的文件存在就執行command
executable:切換shell來執行指令,該執行路徑必須是一個絕對路徑
(4)案例:遠程查看時間和文件
[root@pythion ansible]# ansible zhang -m command -a "date"
[root@pythion ansible]# ansible all -m command -a "date"
[root@pythion ansible]# ansible wang -m command -a "date"
[root@pythion ansible]# ansible wang -m command -a "tail -1 /etc/passwd"
[root@pythion ansible]# ansible all -a "date"
linux
8.2.2 cron
(1)簡介:用來作計劃任務
(2)state:
present:安裝 默認爲安裝
absent:移除
若是須要移除的話,只須要寫上name和absent就能夠了
(3)案例:寫入一個計劃任務,查看是否已經成功寫入。
須要注意的是不寫的默認都是 ,名字得寫,不寫就會報錯,狀態默認是安裝
[root@pythion ansible]# ansible zhang -m cron -a 'hour="/5" job="/bin/date" name="date test" state=present'
[root@pythion ansible]# ansible zhang -a "crontab -l"
docker
8.2.3 user、group
(1)簡介:實現用戶帳號管理的
(2)案例:建立用戶、建立組、建立組裏邊的成員
(3)注意:system 是不是系統組
[root@pythion ansible]# ansible all -m user -a 'name="user1" state=present' //建立用戶
[root@pythion ~]# ansible zhang -m group -a 'name=pig gid=301 system=yes' //建立組
[root@pythion ~]# ansible zhang -m user -a 'name=pig uid=301 system=yes group=pig' //建立組裏邊的成員
ansible user 的passwd參數的值須要接受加密後的值
[root@dev2 test_deploy]# echo Zmc2tG1m= | openssl passwd -1 -stdin
$1$XI3TNbug$Y14rSXX7JxTtlTub9Car/0
tasks:shell
#直接傳過去的
這個模塊能夠把壓縮文件傳輸過去,而且傳輸過去以後解壓的目錄必須存在vim
#須要下載的tomcat
分爲3種,遠端目錄有的就設置copy=no,默認爲yes,而後若是要從網上下載在傳送,寫url便可
8.2.16 fetch模塊
fetch模塊能夠把遠端服務器的文件拉到本地,而且生成一個以主機名命名的
[root@zabbix-server ~]# ansible test -m fetch -a "src=/etc/fstab dest=/tmp/"
8.2.17 jenkis_job模塊服務器
name: test
hosts: self
vars:
bianliang: ''
tasks:ide
name: echo love for vars
debug: msg='i love you'
when: ansible_os_family =="RedHatiiii"學習
[root@junmpserver etcd]# vim a.yml 測試
name: test
hosts: self
vars:
bianliang: ''
tasks:fetch
name: echo love for vars
debug: msg='i love you'
when: ansible_os_family =="RedHat"
name: Add jenkins job
hosts: jenkins
tasks:
name: Add jenkins job
jenkins_job:
name: '{{project}}'
password: 45ec4d09e9870fd9eea4b92787bb6068
url: http://114.55.227.11:8080
user: jenkins
config: "{{ lookup('template', '/root/playbook/jenkins/config.xml') }}"
8.2.22 wait_for模塊
vars:
port: []