首頁>技術>

## 一:概述

Ansible的roles功能也叫做角色,它是一種讓多個playbook協同工作的實現方法。roles將playbook中的vars變數、handlers、tasks任務、模板都進行了拆分,分別放置於各自目錄然後進行引用的一種機制。通常一些複雜場景才會使用roles,讓程式碼複用度更高。

## 二:需求分析

比如現在我們可以架設一個apache伺服器,那麼在我們教學環境中,大概有4臺伺服器,那麼四臺伺服器同時都架設。那麼這個教學當中,我們有個要求,角色裡面,需要新增tasks任務,還要建立模板,還有變數檔案引用。最後透過我們的playbook引用roles.yml。

## 二:示例

1、先安裝角色工具魔窟,示例如下:

yum install -y rhel-system-roles

2、我們的建立角色roles之apache,示例如下:

ansible-galaxy init apache

3、我們在tasks這目錄裡面生成playbook,示例如下

```yaml---- name: install {{pkg_name}}  yum:    name: "{{pkg_name}}"    state: latest- name: service {{pkg_name}}  service:    name: "{{pkg_name}}"    state: started    enabled: yes- name: start firewalld  service:    name: firewalld    state: started    enabled: yes- name: firewalld  firewalld:    service: http    permanent: yes    state: enabled    immediate: yes- name: template  template:    src: hosts.j2    dest: /var/www/html/index.html```

4、我們定義變數檔案,示例如下:

---# vars file for apachepkg_name: httpd 

5、我們再定義模板template檔案hosts.j2,示例如下:

vim hosts.j2,內容如下:

{{ansible_default_ipv4.address}} {{ansible_fqdn}} {{ansible_hostname}}

6、那麼我們在ansible環境中,執行playbook之roles,執行結果,示例如下:

## 三:影片講解

10
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 11 個對開發有幫助的 JS 技巧,進收藏夾當小詞典吧