TerraformのCI/CDツールAtlantisをローカルでお手軽に試してみる

2023.05.25

「Atlantisを試してみたい。でもECSやEKS用意するのが面倒だな。」

ローカルで簡単に試す手順が用意されていました。

想像より簡単に試すことができたので、紹介します。

Test Drive | Atlantis

Atlantisとは

一言でいうと、GitHubやGitLabのPRコメント上で Terraformのplanapplyができるツールです。

以下の記事で分かりやすく解説されています。

Terraform Pull Request Automation | Atlantis

やってみた

以下の手順を参考にAtlantisを試してみます。

Test Drive | Atlantis

実際に運用する際は、EKSやECS上にデプロイして使用してください。

Deployment | Atlantis

Atlantisのインストール・セットアップ

リリースページから自分のPCにあったZIPファイルをダウンロードしてください。

Releases · runatlantis/atlantis

ダウンロードしたディレクトリに移動して、ZIPファイルを解凍します。

Github Tokenの用意

Atlatinsを実行する前に、テスト用にGithub Tokenを用意します。

GithubのTokenの作成ページに移動して、repoのScopeを持ったTokenを作成します。

Tokenは次のステップで使用するので、メモしておきます。

Atlantisのセットアップ

検証用のコマンドを実行します。Githubユーザー名やTokenなど必要な情報を入力します。

$ ./atlantis testdrive
Welcome to Atlantis testdrive!

This mode sets up Atlantis on a test repo so you can try it out. We will
- fork an example terraform project to your username
- install terraform (if not already in your PATH)
- install ngrok so we can expose Atlantis to GitHub
- start Atlantis

Press Ctrl-c at any time to exit


github.com username: <Githubユーザー名> # Githubユーザー名

To continue, we need you to create a GitHub personal access token
with "repo" scope so we can fork an example terraform project.

Follow these instructions to create a token (we don't store any tokens):
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-fine-grained-personal-access-token
- use "atlantis" for the token description
- add "repo" scope
- copy the access token

GitHub access token (will be hidden): <Github Token> # 前の手順で作成したGithub Tokenをコピペ

すると以下のように、サンプルリポジトリが自動でFork・Pull Requestが作成されてAtlantisを試すことができます。 (コマンド一つでここまでやってくれるなんて、検証が楽で助かります。)

自動作成されたPull Requestをみてみる

実際にPull Request見たい方は、私が検証で使用したPull Requestを見てみてください。

まずは、変更内容を見てみます。

null_resourceを作成してますね。

コメントにはPlanの結果が表示されています。(Pull Requestのnull_resourceが作成されることがわかります。)

Applyしたいので、コメントしてみます。

すると以下のように自動でコメントが追加されます。Applyされたようですね。

もう一度Planすると、想定通り差分はなしになっていました。

おわりに

GitHubのPRからコメントを打つだけで、TerraformのPlanやApplyが実行できるの便利そうです。

今回は一番お手軽なLocal検証でしたが、次はECSやEKSにデプロイして試してみたいと思います。

ほぼコマンド一つでLocal検証は簡単に実施できるため、興味がある方は試してみてください。

以上、AWS事業本部の佐藤(@chari7311)でした。