1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Atlantisを触ってみる

Posted at

個人的にプラットフォームエンジニアリングがアツいのでキャッチアップをしているのですが、以下のサイトからAtlantisというツールを見つけたので触ってみました。

この図ではInfrastructure Controle Planeに属するらしく、他サービスとの統合は特になさそう。

Atlantis is 何?

What is Atlantis?

A self-hosted golang application that listens for Terraform pull request events via webhooks.

めちゃくちゃシンプル!
GitHubのREADMEにあるように「セルフホストして、WebHook経由でPRからterraform実行できるサービスですぜ:kissing_smiling_eyes:」ってやつらしい。

何に使えそう?

類似サービスとの比較はこの記事がわかりやすいと思います。(クラメソさんいつもありがとう)

例えば以下のようなワークフローで運用している場合、applyが正常に終わればよいのですがたまにapplyでコケる時があると思います。

  1. PR出す :terraform planの実行
  2. PRのマージ :terraform applyの実行

理解は浅いですが、AtlantisはPRで完結するためapply結果に合意してからのマージが可能になりそうです。

使ってみる

こちらを元に進めます。

検証環境

terraform moduleが提供されているのでECS Fargateで構築します。

タスクがイメージをプルできない場合は以下の対処法があります。

ディレクトリ構造

.
├── modules
│   ├── s3.tf
│   └── variables.tf
└── services
    ├── prod
    │   ├── main.tf
    │   └── provider.tf
    └── stg
        ├── main.tf
        └── provider.tf

認証情報

GithubのPATとWebhookのシークレットを作成しました。
それぞれご参考に.

動作

サンドボックス環境を作ったのでこのPRを元に一連の流れを書いていきます。

terraform planの実行

atlantis planとコメントすると:eyes:の絵文字がついてplan結果がコメントされます。
ディレクトリごとに実行されているし、差分のないパスには実行されないようです:thumbsup:

Screenshot 2023-12-23 at 10.30.57.png

applyも同様にatlantis applyで実行できます。applyコケても大丈夫:raised_hands:

ダッシュボード

planを行うとロックし、applyが終わると解除されるのですがセルフホストしたAtlantisのurlを叩くと以下のような画面が出てきます。

デフォルトでは認証がないので気をつけてください

Screenshot 2023-12-23 at 10.30.28.png

実行ログを確認する

画面下側Jobsの右に日付付きのリンクを押すとお馴染みの実行ログが出ます。
image.png

所感

マージ前にapplyができたりは嬉しいが、セルフホストするのは少々大変。
なのでGitHub Actionsで同じ仕組みを作るのが魅力的に感じました。

まとめると、PRベースでapplyできるのは素敵だが手段としてAtlantisを使うのがベストとは思えない。
更に、パイプラインが既に整備されているならば移行・管理コストに比べメリットは少ない。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?