ansible程式roles角色

2021-10-06 02:50:57 字數 2552 閱讀 3373

劇本編寫完問題:

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 目錄下有很多子目錄,其中每乙個子目錄對應乙個角色,每個角色也有自己的目錄結構,如...