- 前言
- 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 管理敏感资料?
- 总结
Roles 是什么?
現代 IT 人一定要知道的 Ansible 自動化組態技巧
20. Roles 是什麼?
在上一章「19. 如何維護大型的 Ansible Playbooks?」凍仁提到 Roles 很重要、很好用!這章凍仁就來介紹可讓我們加速升空的火箭 (Rocket) 1 吧!
《Ansible: Up and Running》 一書的第 8 章標題為「Roles: Scaling Up Your Playbooks」,開門見山的說明了我們可以透用 Roles 來擴充 Playbooks。 2
Safari Books Online - https://goo.gl/dxoGSb
如果要用一句話來解釋 Roles,那凍仁會這麼說:
「Roles 可以降低 Playbooks 的複雜性,更可以增加 Playbooks 的可用性。」
Roles 就字面上來說有角色、作用的意思,但它的全名其實是 Playbooks Roles,我們可把它當成是 Playbooks 的延伸使用。
在前一章裡,我們雖已把重複的 Tasks 獨立出來,但光只有這樣是無法分享給其它專案 (Project) 3 使用的。在 Python 的世界裡,我們會把寫好的程式封裝成套件 (Packages) 並分享給他人使用,而在 Ansible 的世界裡,我們會用 Roles 來形容這個偉大的行為。
早在「06. 怎麼操作 Ansible?」一章講解 Playbooks 時,就已出現過 Roles 的蹤影了。
「寶寶身上有 Roles 只是寶寶不說。」
圖片來源:http://goo.gl/GKJvXn
比對一下 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?
到目前為止,不知大家是否跟上凍仁的腳步了呢?如果有問題,可以在下方留言,凍仁會抽空回答的。
相關連結
- 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 | 凍仁的筆記
1. 當您駕御 Roles 後,就會有如搭上 Rocket 般的一飛衝天! ↩
2. 《Ansible: Up and Running》的章節、目錄資訊可於 Safari Books online (https://www.safaribooksonline.com/library/view/ansible-up-and/9781491915318/) 取得。 ↩
3. 這裡指的專案是指一個擁有很多 Playbook 的 Playbooks,可以把它想成是 Chef 的 Cookbooks 或者是 Java 的 Project。 ↩
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论