Slide 1

Slide 1 text

GitLab CI×Moleculeで Playbook開発の課題を 解決してみた 村(@dcn_f)

Slide 2

Slide 2 text

Playbook開発時の課題とは?

Slide 3

Slide 3 text

1. 既存のPlaybook修正時の問題 2. ぶっちゃけPlaybookのテストって  どこでどうやるの? Playbook開発時の課題とは? バージョンアップでモジュールが 非推奨になった! 修正したPlaybook 想定通りに動いてない!

Slide 4

Slide 4 text

GitLab CI×Moleculeで それらの課題を解決してみた Playbook開発時の課題とは?

Slide 5

Slide 5 text

GitLab CIとは?

Slide 6

Slide 6 text

GitLab CI(CI/CD)とは GitLabに備わっているCI/CDのためのツール 記法はyamlなので親しみやすい!(?)

Slide 7

Slide 7 text

Moleculeとは?

Slide 8

Slide 8 text

Moleculeとは AnsibleのRoleテスト用ツール - lint(yamllint, ansible-lint, flake8 etc...) - Playbook実行用の環境設定(docker, ssh etc...) - Playbookの動作確認(testinfra, ansible etc…)

Slide 9

Slide 9 text

Moleculeとは AnsibleのRoleテスト用ツール →工夫すればPlaybookのテストもできる

Slide 10

Slide 10 text

アーキテクチャ

Slide 11

Slide 11 text

アーキテクチャ 1. Git push時にRunnerが起動 2. Container RegistryのMoleculeのイメージを起動 3. Moleculeが自動でPlaybookのテストを実行

Slide 12

Slide 12 text

- GitLab上にてCIジョブが必ず実行されるため、 チェック漏れがなくなる - lint/syntaxを利用して実行できないPlaybookを 減らせる 1. 既存のPlaybook修正時の問題

Slide 13

Slide 13 text

- Moleculeがいろいろな環境への実行をサポートしてくれる ため、設定次第でどうにでもなる! - ※ただし、どうやってPlaybook実行環境を元の状態に戻す かは考えておいたほうがいいと思います。 2. ぶっちゃけPlaybookのテストって  どこでどうやるの?

Slide 14

Slide 14 text

sampleあります https://gitlab.com/kitiful1812/molecule-ci

Slide 15

Slide 15 text

ぜひ、やってみてください!

Slide 16

Slide 16 text

ありがとうございました Twitter: @dcn_f ブログ: https://dcn-f.hatenablog.com/ GitLab: https://gitlab.com/kitiful1812