📘
現代 IT 人一定要知道的 Ansible 自動化組態技巧
  • README
  • 前言
  • Ansible 是什麼?
  • 怎麼部署 Ansible 環境?
  • 怎麼用 Vagrant 練習 Ansible?
  • 怎麼用 Docker 練習 Ansible?
  • 怎麼操作 Ansible?
  • 怎麼用 Jupyter 操控 Ansible?(localhost)
  • 怎麼用 Jupyter 操控 Ansible?(Managed node)
  • 怎麼用 Docker Compose 練習 Ansible?
  • Ansible 的開發工具有哪些?
  • 怎麼看 Ansible Modules 文件?
  • 常用的 Ansible Module 有哪些?
  • 怎麼使用 setup 取得 Managed node 的 facts?
  • 怎麼使用 Ansible 的 Template 系統?
  • 怎麼在 Playbooks 裡使用 Handlers?
  • Ansible 如何發送 notification 到 Slack?
  • Ansible 如何發送 notification 到 HipChat?
  • 如何在 Playbooks 使用 loops?
  • 如何維護大型的 Playbooks?
  • Roles 是什麼?
  • 怎麼使用 Roles?
  • 怎麼用 Roles 部署 LNMP 網頁應用程式?(上)
  • 怎麼用 Roles 部署 LNMP 網頁應用程式?(下)
  • 怎麼用 Roles 部署 TestLink?
  • 怎麼在 Ansible Galaxy 分享 Roles?(上)
  • 怎麼在 Ansible Galaxy 分享 Roles?(下)
  • 怎麼用 Travis CI 測試 Roles?
  • 怎麼混用 Ansible 建置 Docker image?
  • 怎麼在 Docker Hub 混用 Ansible 自動建置 Docker image?
  • 怎麼用 Vault 管理敏感資料?
  • 總結
Powered by GitBook
On this page
  • 20. Roles 是什麼?
  • Role 的基本結構
  • 相關連結

Was this helpful?

Edit on GitHub

Roles 是什麼?

Previous如何維護大型的 Playbooks?Next怎麼使用 Roles?

Last updated 4 years ago

Was this helpful?

20. Roles 是什麼?

在上一章「」凍仁提到 Roles 很重要、很好用!這章凍仁就來介紹可讓我們加速升空的火箭 (Rocket) 吧!

如果要用一句話來解釋 Roles,那凍仁會這麼說:

「Roles 可以降低 Playbooks 的複雜性,更可以增加 Playbooks 的可用性。」

在前一章裡,我們雖已把重複的 Tasks 獨立出來,但光只有這樣是無法分享給其它專案 (Project) 使用的。在 Python 的世界裡,我們會把寫好的程式封裝成套件 (Packages) 並分享給他人使用,而在 Ansible 的世界裡,我們會用 Roles 來形容這個偉大的行為。

「寶寶身上有 Roles 只是寶寶不說。」

比對一下 Roles 和 Playbooks 的目錄結構,可以看到前者多了 roles/ 目錄和 chusiang.win_vim 的 role。

Role 的基本結構

接下來凍仁將藉由這個簡單的 example_role 來介紹 Role 的檔案架構。

$ tree .
.
└── example_role
    ├── README.md     # 說明文件
    ├── defaults
    │   └── main.yml  # 可被覆寫的變數。
    ├── files         # 需複製到 Managed node 的檔案。
    ├── handlers
    │   └── main.yml  # 主要的 handler。
    ├── meta
    │   └── main.yml
    ├── tasks
    │   └── main.yml  # 主要的 task。
    ├── templates     # 集中存放 Jinja2 模板的目錄。
    ├── tests
    │   ├── inventory
    │   └── test.yml
    └── vars
        └── main.yml  # 不該被覆寫的變數。

9 directories, 8 files

關於 Roles 的基本介紹就到這裡,下一章凍仁將介紹怎麼使用 Roles?

到目前為止,不知大家是否跟上凍仁的腳步了呢?如果有問題,可以在下方留言,凍仁會抽空回答的。

相關連結

  1. 《Ansible: Up and Running》的章節、目錄資訊可於 Safari Books online (https://www.safaribooksonline.com/library/view/ansible-up-and/9781491915318/) 取得。

一書的第 8 章標題為「Roles: Scaling Up Your Playbooks」,開門見山的說明了我們可以透用 Roles 來擴充 Playbooks。

Safari Books Online - https://goo.gl/dxoGSb

就字面上來說有角色、作用的意思,但它的全名其實是 Playbooks Roles,我們可把它當成是 Playbooks 的延伸使用。

早在「」一章講解 Playbooks 時,就已出現過 Roles 的蹤影了。

圖片來源:http://goo.gl/GKJvXn

《Ansible: Up and Running》
Roles
06. 怎麼操作 Ansible?
Ansible: Up and Running — an O’Reilly book by Lorin Hochstein
PyPI - the Python Package Index | Python
Python Tutorial 第二堂(3)函式、模組、類別與套件 by caterpillar | CodeData
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows | 凍仁的筆記
19. 如何維護大型的 Ansible Playbooks?
automate_with_ansible_roles_and_windows-01.jpg
automate_with_ansible_roles_and_windows-03.jpg
automate_with_ansible_roles_and_windows-04.jpg
automate_with_ansible_roles_and_windows-06.jpg
automate_with_ansible_roles_and_windows-02.jpg
automate_with_ansible_roles_and_windows-05.jpg