CI/CDのCIを試してみる計画

CI/CDって意味は分かるんだけど、実際何やるの?

って1.5ヶ月前は思ってました。
けど、今はもう早くやらなきゃ!!というような状況に。
理解は少しだけマシな感じになってて、

  • CIがテストの自動化でCDがdeployの自動化なんだな
  • gitlab runnerとかで、lintして試しにbuildしてみたいなpipelineを書いてくと
  • CDはまた今度にしよう

というくらいのところまではきました。

さて、どうしようかな

私はnetworkのエンジニアなので、アプリ的なCIじゃなくて、NW関連でいこうと思います。
ansibleでshow commandだったり、configだったりをレンダーするから、その辺をやってましょう。

  1. playbookをgitlabのdev branchにpush
  2. gitlab runnerが発動
  3. lint stage
    1. lint用のコンテナ立てる(今回試したいのが訳あってansible 2.8でansible-lint非対応のため、ansible 2.9で別建てする)
    2. yamllintとansible-lintをかける(ansible-lintだけで充分?)
  4. unit test stage
    1. ansible2.8でtest用コンテナを立てる
    2. playbookとextra-varsとj2でshow commandをレンダー
    3. junosの機器でshow commandをお試す。機器はとりあえずAWSのmarketで調達か?
  5. combined test stage
    1. ansible2.8のAWXをコンテナで立てる(試したいversionが古くて、もう入手できないかもなぁ)
    2. awxkitでAWXの設定
    3. awxkitでAWXから実機にworkflow templateを実行してshow commandを取得

こんなところで一旦やってみます!!