迭**法:with_items
迭代:當需要重複性執行的任務時,可以使用迭代機制
·對迭代選項的引用,固定變數名為「item」
·要在task中使用with_items給定要迭代的元素列表
·列**式:
字串、浮點使用字串
---迭代巢狀子變數-host: webservs
remote_user: root
tasks:
-name: create some files
file: name=/data/} start=touch
with_itmes:
-file1
-file2
- file3
使用字典
---playbook中template for if-host: webservs
remote_user: root
tasks:
-name: create some files
group: name=}
when: ansible_distribution_major_version == "7"
#是版本7才執行下面的
with_items:
-g1-g2
-g3-name: create some users
user: name=} group=}
with_items:
- -
-
for迴圈的運用
---- hosts: websrvs
remote_user: root
vars:
ports:#定義變數列表
- 81
- 82
- 83
tasks:
- name: copy conf
template: src=for1.conf.j2 dest+/data/for1.conf#使用模板將src作為模板
需要建立for1.conf.j2這個模板檔案
vim for1.conf.j2#在裡面寫下面的內容
server }使用鍵值對例項}###############################
使用鍵值對的時候將81、82、83改為listen_port: 81這樣的格式類推,然後在模板檔案裡將呼叫的變數port改為port.listen_port
說明:乙個web屬於乙個變數
模板檔案的建立:
說明:p.port是變數的呼叫
if的運用
server_ name };for和if配合使用
if語句的說明:如果p.name是被定義的則執行下面的語句
roles
ansilbe自1.2版本引入的新特性,用於層次性、結構化地組織playbook。roles
能夠根據層次型結構自動裝載變數檔案、tasks以及handlers等。 要使用roles只需
要在playbook中使用include指令即可。簡單來講, roles就是通過分別將變數、
檔案、任務、模板及處理器放置於單獨的目錄中,並可以便捷地include它們的一
種機制。角色-般用於基於主機構建服務的場景中,但也可以是用於構建守護程序
等場景中
複雜場景:建議使用roles,**復用度高
·變更指定主機或主機組
·如命名不規範維護和傳承成本大
·某些功能需要多個playbook,通過inscudes即可實現
·一般的角色都會寫在/etc/ansible/roles下對應服務建立相應的服務資料夾
roles目錄結構示例:
例項:通過角色實現nginx的安裝到執行
1.建立nginx使用者並建立nginx使用者組然後加到組裡
2.yum這個nginx包
3.通過template使用nginx的配置檔案模板
4.啟動nginx
建立tasks資料夾內寫具體的小功能
1.vim group.yml
-name: create group
group: name=nginx gid=80
2.vim user.yml
-name: create user
user: name=nginx grounp=nginx shell=/sbin/nologin uid=80
3.vim yum.yml
-name: install package
yum: name=nginx
4.vim start.yml
-name:start nginx
service: name=nginx state=started enabled=yes
5.cp /etc/nginx/nginx.conf /etc/ansible/templates/nginx.conf.j2
6.vim templ.yml
-name: copy conf
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
7.建立總的劇本呼叫任務劇本
vim main.yml
-include: group.yml
-include: user.yml
-include: yum.yml
-include: templ.yml
-include: start.yml
8.建立呼叫角色的劇本
cd /etc/ansble
vim nginx_roles.yml
- hosts: 106.12.39
remote_user: root
roles:
- role: nginx
Ansible之roles(角色)詳解
角色 roles 是ansible自1.2版本開始引入的新特性,用於層次性,結構化地組織playbook。roles能夠根據層次型結構自動裝載變數檔案 tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單的說,roles就是通過分別將變數 檔案...
ansible之roles簡單使用
目錄將多種不同的tasks的檔案集中儲存在某個目錄下,則該目錄就是角色,角色一般存放在 etc ansible roles 目錄下,可通過ansible的配置檔案來調整預設的角色目錄,etc ansible roles 目錄下有很多子目錄,其中每乙個子目錄對應乙個角色,每個角色也有自己的目錄結構,如...
ansible程式roles角色
劇本編寫完問題 1.目錄結構不夠規範 ok 2.編寫好的任務如何重複呼叫 3.服務端配置檔案改動,客戶端引數資訊也自動變化 4.彙總劇本中沒有顯示主機角色資訊 5.乙個劇本內容資訊過多,不容易進行閱讀,如何進行拆分 ok 第乙個歷程 規範目錄結構 cd etc ansible roles mkdir...