Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

跟著 geerlingguy 大神
一起測試 Ansible Roles

917 views

Published on

如同程式需要測試,Ansible Playbook 或 Roles 其實也是某種 Code,因此最好也能為其撰寫適當的測試。就讓我們用 15 分鐘的時間,向 Ansible 圈內的大神 geerlingguy 求教,學習 geerlingguy 大神測試 Roles 的方式。

同名文章:
https://medium.com/laraveldojo/follow-geerlingguy-testing-ansible-roles-c9257a8af4ca

Published in: Software

跟著 geerlingguy 大神
一起測試 Ansible Roles

  1. 1. 跟著 geerlingguy 大神
 一起測試 Ansible Roles Cheng Wei Chen @ DevOps Taiwan Meetup #13 - Ansible User 小聚 (2018/4/28) 閃電秀
  2. 2. Cheng Wei Chen 陳 正瑋 DevOps Engineer @ 得寬科技 http://chengweichen.com
  3. 3. https://devopstw.club
  4. 4. https://devopsdays.tw 目前徵稿中! 活動日期:9/11 ~ 9/13
  5. 5. : https://unsplash.com/photos/DlR32lXV01M Testing ? Roles ? Playbook ?
  6. 6. : https://www.ansible.com/beginners-guide-to-testing-infrastructure-as-code
  7. 7. : https://unsplash.com/photos/lt2GzPlOAmc , https://unsplash.com/photos/s8OO2-t-HmQ Playbook Roles
  8. 8. : https://galaxy.ansible.com/ , https://github.com/logos , https://travis-ci.com/logo
  9. 9. : https://ithelp.ithome.com.tw/articles/10187519
  10. 10. Ansible 圈內 大神 Jeff Geerling (@geerlingguy) is a developer and has been using Ansible to manage infrastructure since early 2013. : https://www.ansiblefordevops.com/ , https://www.jeffgeerling.com/
  11. 11. Roles 基本結構 關鍵重點 : https://github.com/geerlingguy/ansible-role-docker
  12. 12. : https://github.com/geerlingguy/ansible-role-docker tests/test.yml
  13. 13. : https://github.com/geerlingguy/ansible-role-docker tests/test.yml
  14. 14. : https://github.com/geerlingguy/ansible-role-docker tests/test.yml
  15. 15. : https://github.com/geerlingguy/ansible-role-docker .travis.yml
  16. 16. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 運用 Docker
  17. 17. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 測試多種環境
  18. 18. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 設置 OPTIONS
  19. 19. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 取得測試用 shell script
  20. 20. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 執行測試
  21. 21. : https://github.com/geerlingguy/ansible-role-docker .travis.yml 再次驗證 Roles 執行成果
  22. 22. : https://travis-ci.org/geerlingguy/ansible-role-docker
  23. 23. https://gist.githubusercontent.com/geerlingguy/ 73ef1e5ee45d8694570f334be385e181/raw/ 關鍵重點 / test.sh
  24. 24. test.sh ‧ 根據 env 設置的 os distribution, 透過 docker 運行對應的測試環境。 ‧ 根據 test/requirements.yml 下載相 依之其他 Roles。 ‧ 執行 --syntax-check 檢查是否有語 法錯誤。
  25. 25. test.sh ‧ 執行 test/test.yml,或執行 env 中 指定其他的 playbook。 ‧ 再次執行 test/test.yml 檢查 Role 是否具備 idempotence 特性。 ‧ 根據 OPTION 決定是否要刪除 docker container。
  26. 26. : https://github.com/geerlingguy/docker-ubuntu1604-ansible/blob/master/Dockerfile
  27. 27. : https://github.com/geerlingguy/docker-ubuntu1604-ansible/blob/master/Dockerfile
  28. 28. 如何套用大神測試法? 複製 修改 test.yml .travis.yml pre_task OPTIONS 如何驗證 Roles 執行成果
  29. 29. Thanks Cheng Wei Chen @ DevOps Taiwan Meetup #13 - Ansible User 小聚 (2018/4/28)

×