Ansible Night オンライン! 2020.06
〜オンラインだからこそ実力を発揮〜にLTで参加させて頂きました
LTまでの大まかな流れ
- 6月2日にCfPに応募
- 6月10日頃資料作り開始
- 6月23日 LT当日
当初の内容
最初は「 CI/CDツールにMoleculeを使った場合のGitHub Actions workflowのチューニングとMoleculeのシナリオの最適化 」と言うタイトルで
- GitHub ActionsのActionライブラリのセキュリティーについて
- Moleculeを実行するテスト対象のコンテナの設定
- GitHub Actionsのキャッシュ機能
この3つについての内容にしようかと考えたのですが
- Moleculeを導入している
- GitHub Actionsを導入している
参加者に対するこの条件に当てはまる比率が高くないだろうと判断し「 GitHub ActionsでAnsible roleのCIを実行する 」と言う入門者向けの内容に方向転換しました
大変だったこと
- 5分は短い
- 当日まで内容の修正が続いた
5分は短い
内容が多すぎたのか最初にLTの練習した時は5分のところが15分掛かりました。仕方ないので喋りたかった部分をいくつか削りました。
当日まで内容の修正が続いた
資料自体はLT3日程前にはだいたい完成していたのですがAnsible 2.10がTwitterで話題になっていたのでLT当日にansible-base(2.10.0b)を実際に触って動作確認し、スライドに含めました
終わってからの感想
体感的には好評を頂けて嬉しかった反面(LT後の質問を5つ頂いた)、自分の予想に反してMolecule、CIツールの普及がまだ進んでいなかった事がちょっとショックでした。
最初の「 CI/CDツールにMoleculeを使った場合のGitHub Actions workflowのチューニングとMoleculeのシナリオの最適化 」と言う内容だったら恐らく反応もほとんど無く終わっていたのだろうなと思うと自分に出来る事なら少しでも情報発信すべきなのかなとも思いました。
LT当日に話せなかった内容
GitHub Actionsのキャッシュは導入すべきだが運用は良く考えるべき
GitHub Actionsにあるキャッシュ機能を使うとCIの実行スピードが速くなる
ただしアップデートが頻繁なAnsible collectionsライブラリやDockerイメージ等に使う場合はキャッシュの期限をどれくらいに設定するのかよく吟味する必要がある
長過ぎるとアップデートを見逃すし反対に短いとCIの実行時間の短縮につながらないかもしれない
キャッシュの有効期限はシステムに合わせて最適化する
CIツールのステータスバッヂは便利だ
Saas型のCIツールにはステータスバッヂと言ってCIが成功したか失敗したか表示できる機能がある。
Markdownが利用できるページに各リポジトリ毎のステータスバッヂを集約する事で現在のCIのステータスが確認できる

CIは定期実行すると超強力
Ansible roleのCIを定期実行する事でユーザーにこのRoleは確実に動くと言う証拠を提示することが出来る

最終的にNoOpsになる
Ansibleのバージョン、実行対象のVMのバージョン、等自動でアップデートするようにしてCIの定期実行を導入するとほぼ管理が必要なくなる
またユーザーは集約されたステータスバッヂで現在使えるRoleが簡単に確認できるようになり管理者側で明示する必要もなくなる
手間を掛ける部分がかなり減る
LTまでに参考にしたサイト
Molecule
- Rapidly Build & Test Ansible Roles with Molecule + Docker
- Ansible 101 - Episode 7 - Molecule Testing and Linting and Ansible Galaxy
スライド作成
あまり身につかなかったが