劇本編寫完問題:
1. 目錄結構不夠規範 ok
2. 編寫好的任務如何重複呼叫
3. 服務端配置檔案改動,客戶端引數資訊也自動變化
4. 彙總劇本中沒有顯示主機角色資訊
5. 乙個劇本內容資訊過多,不容易進行閱讀,如何進行拆分 ok
第乙個歷程: 規範目錄結構
cd /etc/ansible/roles
mkdir --- 建立相應角色目錄,目錄名代表角色名
mkdir / --- 建立角色目錄下面的子目錄
[root@m01 roles]# tree
.├── nfs
│ ├── files --- 儲存需要分發檔案目錄
│ ├── handlers --- 儲存觸發器配置檔案資訊
│ ├── tasks --- 儲存要執行的動作資訊檔案 ok
│ ├── templates --- 儲存需要分發模板檔案 模板檔案中可以設定變數資訊會呼叫vars中的變數進行賦值 如果要傳輸該目錄下的檔案需要把copy模組換成template
│ └── vars --- 儲存變數資訊檔案
└── rsync
├── files
├── handlers
├── tasks
├── templates
└── vars
第二個歷程: 在roles目錄中建立相關檔案
編寫檔案流程圖:
1) 編寫tasks目錄中的main.yml檔案
- name: 01-copy conf file
copy: src=exports dest=/etc
notify: restart nfs server
- name: 02-create data dir
file: path=} state=directory owner=nfsnobody group=nfsnobody
- name: 03-boot server
service: name=} state=started enabled=yes
with_items:
- rpcbind
- nfs
tasks目錄中的main.yml檔案中的資訊可以在此拆分 以後可以重複呼叫
vim main.yml
- include_tasks: copy_info.yml
- include_tasks: create_dir.yml
- include_tasks: boot_server.yml
vim copy_info.yml
- name: 01-copy conf file
copy: src=exports dest=/etc
notify: restart nfs server
vim create_dir.yml
- name: 02-create data dir
file: path=} state=directory owner=nfsnobody group=nfsnobody
vim boot_server.yml
- name: 03-boot server
service: name=} state=started enabled=yes
with_items:
- rpcbind
- nfs
2) 編寫vars目錄中的main.yml檔案
[root@m01 vars]# vim main.yml
data_dir: /data
prot_info: 876
3) 編寫files目錄中的檔案
[root@m01 files]# ll
total 4
-rw-r--r-- 1 root root 29 may 17 15:23 exports
4) 編寫handlers目錄中的main.yml檔案
vim main.yml
- name: restart nfs server
service: name=nfs state=restarted
目錄中檔案編寫好彙總結構
[root@m01 nfs]# tree
.├── files
│ └── exports
├── handlers
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
└── vars
└── main.yml
第三個歷程: 編寫乙個主劇本檔案
cd /etc/ansible/roles/
[root@m01 roles]# cat site.yml
- hosts: nfs_server
roles:
- nfs-server
- hosts: rsync_server
roles:
- rsync
Ansible之roles(角色)詳解
角色 roles 是ansible自1.2版本開始引入的新特性,用於層次性,結構化地組織playbook。roles能夠根據層次型結構自動裝載變數檔案 tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單的說,roles就是通過分別將變數 檔案...
Ansible高階之roles詳解
迭 法 with items 迭代 當需要重複性執行的任務時,可以使用迭代機制 對迭代選項的引用,固定變數名為 item 要在task中使用with items給定要迭代的元素列表 列 式 字串 浮點使用字串 host webservs remote user root tasks name cre...
ansible之roles簡單使用
目錄將多種不同的tasks的檔案集中儲存在某個目錄下,則該目錄就是角色,角色一般存放在 etc ansible roles 目錄下,可通過ansible的配置檔案來調整預設的角色目錄,etc ansible roles 目錄下有很多子目錄,其中每乙個子目錄對應乙個角色,每個角色也有自己的目錄結構,如...