codecamp

Ansible 在 Ansible Galaxy 分享 Roles(下)

上一章「Ansible 在 Ansible Galaxy 分享 Roles(上)」,我们帮 Role 补充了 Galaxy 网站所需的资讯,接下来就是把它分享到 Galaxy 上了!

automate_with_ansible_practice-29.jpg

怎么上传 Roles 到 GitHub?

先前在「Ansible 怎么使用 Roles」一章曾提过,Galaxy 里的 Roles 其实是存在 GitHub 上的。

  1. 在 GitHub 建立一个 Repository (储存库) 1,官方建议使用 ansible-role-acme 的格式进行命名。
  2. 把写好的 Roles 加入 Git 版本控制里。

    $ git commit -a
    $ git push
    
  3. 借由 Git 从本地 (Local) 把 Roles 上传至 GitHub

  4. 若对 Git 和 GitHub 不熟,可参考冻仁先前写的 Git and Github basic with SourceTree 简报。

怎么在 Galaxy 汇入 Roles?

  1. 进入 Galaxy 网站,并点击右上角的 SIGN IN。 2016-12-26-galaxy-import-roles-1.png

  2. 使用 GitHub OAuth 登入 Galaxy 网站。 2016-12-26-galaxy-import-roles-2.png

  3. 进入 My Roles 页面,并点选左方按钮启用 Roles,完成后将显示 ✔。 2016-12-26-galaxy-import-roles-3.png

  4. 当 Roles 太多时,可借由右方的搜寻框进行过滤。 2016-12-26-galaxy-import-roles-4.png

  5. 启用 Role 后,点击右方的 Import Role 图示进行汇入。 2016-12-26-galaxy-import-roles-5.png

  6. 汇入成功后将显示 Succeeded,点击 Succeeded 即可观看这次汇入的相关资讯。 2016-12-26-galaxy-import-roles-6.png

    我们可借由此页面检查 Meta Data (meta/main.yml) 的设定是否有误。

  7. 若想自定 Role name,可通过 Role Settings 进行更改。 2016-12-26-galaxy-import-roles-7.png

以上,现在我们可以在 https://galaxy.ansible.com/chusiang/testlink/ 看到刚汇入的 Role,其中 chusiang为 username,testlink 为 role name,而完整名称则是 chusiang.testlink

后话

写完复杂 Playbooks,我们只需再费点工夫就可以在 Galaxy 上与全世界分享了!

相关连结

1. 若不会在 GitHub 上建立 Repository,可参考 Create A Repo | GitHub 一文。 ↩


Ansible 在 Ansible Galaxy 分享 Roles(上)
Ansible 用 Travis CI 测试 Roles
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }