Ansible之role

利用角色簡化playbook

ansible角色具有下列優點:

  1. 角色可以把內容分組,容易複用
  2. 可以用角色定義系統基本信息:web服務器、數據庫服務器等
  3. 角色可以使大型項目易管理
  4. 角色可以由不同人並行開發

ansible角色會把不同功能的playbook分開,一個標準的角色含有下列子目錄:

  • defaults:  其中的main.yml包含角色變量的默認值 
  • files:        包含角色任務引用的靜態文件
  • handlers: 主要定義處理程序
  • meta:       角色相關信息,如作者、許可證等
  • tasks:       定義任務
  • templates:任務引用的jinja2模板
  • tests:        可以包含清單和test.yml的playbook,用於測試
  • vars:         定義角色的變量

在playbook中使用ansible角色

如:

---
- hosts: xxx.xxx.com
  roles: 
    - role1 
    - role2
        var1:var1 
        var2:var2

爲role2定義了兩個變量,任何defaults和vars中的變量都會被覆蓋

 

控制執行順序

有時需要在角色之前或之後執行一些任務:

關鍵字:

  • 之前:pre_tasks
  • 之後:post_tasks

利用系統角色重用內容

安裝系統角色

yum install -y rhel-system-roles 

 

安裝好的角色位於:

ls -l /usr/share/ansible/roles 

ls -l /usr/share/ansible/roles/rhel-system-roles.network

查看系統中有哪些角色可以使用

ansible-galaxy list 

創建目錄保存變量

mkdir-pvgroup_vars/all 

查看幫助

cat /usr/share/doc/rhel-system-roles/timesync/README.md

時區設置的例子

ansible-doc timezone | grep -A 4 "EXAMPLES" 

清單和配置文件

cat ansible.cfg 

cat inventory

修改主playbook

創建針對主機組的變量目錄

mkdir -pv group_vars/webservers

新建時間yml文件並寫入

cat group_vars/webservers/timezone.yml 

檢測和運行

ansible-playbook --syntax-check configure_time.yml

ansible-playbook configure_time.yml

創建角色

角色創建流程:

  1. 創建角色目錄結構
  2. 定義角色內容
  3. 在playbook中使用角色

創建角色框架

 

創建並初始化

配置tasks的play

編寫處理程序

編寫html文件

配置模板

編寫使用roles的playbook

'這裏使用的主機清單是系統默認的'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章