怎麼用 Roles 部署 TestLink?

上一章「23. 怎麼用 Roles 部署 LNMP 網頁應用程式?(下)」我們用了 3 個 Roles 和自己寫的 Playbook 部署 Testlink 網頁應用程式,接下來凍仁會透過 Roles 展示最精簡的 Playbooks。

automate_with_ansible_practice-27.jpg

chusiang.testlink 是部署 TestLink 1.9.15 到 Ubuntu 14.04 和 Debian 8 的 Role,並建置在 Nginx 1.10, PHP 7 和 MySQL 5.6 的環境上。

凍仁先前幫公司架設 TestLink 時,在 Ansible GalaxyChef Supermarket 上找不到現成 Roles 和 Cookbooks,索性就自己寫一個。

2016-12-24-chusiang-testlink-role.png

怎麼用 Roles 撰寫最精簡的 Playbooks?

看下去之前,可以先回顧上章,比比看兩者的差異。

使用 Vagrant 建立開發環境

建立 Vagrantfile 檔案。

從 Galaxy 下載 Roles

  1. 建立 requirements.yml,與上章相比多了 chusiang.testlink role。

  1. 藉由 requirements.yml 下載多個 Roles。

撰寫 Playbooks

為便於解說,凍仁將於以下範例加上行號,其原始檔可在 lab/ch24/testlink/setup.yml 取得。

  • 在第 8-12 行裡,載入了 Nginx, MySQL, PHP 和 TestLink 的 Roles。

  • 第 23 行之後的兩個 tasks 是可省略的,這裡只是為了驗證部署狀態而使用。

把 Playbooks 都封裝成 Roles 之後,可明顯看出整體的檔案結構比上章簡潔許多。

執行 Playbooks

  1. 啟用虛擬機並執行 Playbook。

2016-12-24-ansible-testlink-1.gif
  1. 執行完畢後,開啟瀏覽器 (Browsers) 並進入 TestLink 網站 (http://192.168.33.10),其帳號密碼皆為 admin

2016-12-23-ansible-testlink-2.gif

以上,這次我們只需維護 ansible.cfg, hosts, requirements.ymlsetup.yml,剩下就交給 Roles 吧!

後語

在完成這篇文章的同時,凍仁也順手修了一下 chusiang.testlink role 的小小 bug。相信當越多人分享 Roles 到 Galaxy 後,我們可以減少重複性質的工作,並把時間和精力留在更重要的事情上。

相關連結

Last updated

Was this helpful?