Ansible Galaxy¶
“Ansible Galaxy” 指的是一個網站共享和下載 Ansible 角色,也可以是者是幫助 roles 更好的工作的命令列工具。
The Website
網站
```````
這個網站 Ansible Galaxy,是一個免費的用於查詢,下載,評論各種社群開發的 Ansible 角色,在你的自動化項目中引入一些角色也是不錯的。
你可以使用 social auth 註冊和使用 “ansible-galaxy” 下載客戶端,”ansible-galaxy”在 Ansible 1.4.2 就已經被包含了。
閱讀 Galaxy 網站的 “About” 頁面獲取更多資訊。
ansible-galaxy命令列工具¶
ansible-galaxy 有許多不同的子命令
從一個檔案安裝多個角色¶
想安裝多個角色,ansible-galaxy 命令列可以通過一個 requirements 檔案實現。各種版本的ansible 都允許使用下面的語法從 Ansible galaxy 網站安裝角色。
ansible-galaxy install -r requirements.txt
requirements.txt 檔案看起來就像這樣
username1.foo_role username2.bar_role
想得到指定版本(tag)的role,使用下面的語法
username1.foo_role,version username2.bar_role,version
可用的版本在 Ansible Galaxy 網頁上都有列出來。
Requirements 檔案高階用法¶
一些控制從哪裡下載角色,支援遠端源的用法,在 Ansible 1.8 之後支援通過 YMAL 語法的 requirements 檔案實現,但是必須以 yml為副檔名。就像這樣
ansible-galaxy install -r requirements.yml
副檔名是很重要的,如果 .yml 擴充套件忘記寫了, ansible-galaxy 命令列會假設這個檔案是普通格式的,而且會失敗,
這裡有個例子展示通過多個源下載一些指定版本。 其中也實現了覆蓋下載角色的名字到其它名字。
# from galaxy - src: yatesr.timezone
# from github - src: https://github.com/bennojoy/nginx
# from github installing to a relative path - src: https://github.com/bennojoy/nginx
path: vagrant/roles/# from github, overriding the name and specifying a specific tag - src: https://github.com/bennojoy/nginx
version: master name: nginx_role# from a webserver, where the role is packaged in a tar.gz - src: https://some.webserver.example.com/files/master.tar.gz
name: http-role# from bitbucket, if bitbucket happens to be operational right now :) - src: git+http://bitbucket.org/willthames/git-ansible-galaxy
version: v1.4# from bitbucket, alternative syntax and caveats - src: http://bitbucket.org/willthames/hg-ansible-galaxy
scm: hg
從上面你可以看到,有許多控制命令可以使用去自定義那些角色從哪裡獲得,儲存為什麼角色名稱。
Roles pulled from galaxy work as with other SCM sourced roles above. To download a role with dependencies, and automatically install those dependencies, the role must be uploaded to the Ansible Galaxy website. 有些角色之間會有依賴關係,想要從依賴關係中自動安裝,這個角色需要被上傳到 Ansible Galaxy 網站上。
See also
- Playbook Roles and Include Statements
- 關於 Ansible role 的內容
- Mailing List
- Questions? Help? Ideas? Stop by the list on Google Groups
- irc.freenode.net
- #ansible IRC chat channel