Cloud9でtfenvを使ってみる


「EC2でtfenvを使ってみる」でEC2にtfenvをインストールしたので、同じ要領でCloud9でもtfenvを使えるようにしてみる。

Cloud9環境作成

マネジメントコンソール→Cloud9→Create environment

Name、Descriptionを適当に入力

Configure Settingは変更なし

最後に「Create Environment」をクリック

作成完了をしばし待つ

環境作成完了

下記サイトを読むとAMTC(AWS Managed Temporary Credentials)が邪魔そうだったので、書かれている手順でAMTCを無効にしてみる。

Cloud9からIAM Roleの権限でAWS CLIを実行する
https://dev.classmethod.jp/articles/execute-aws-cli-with-iam-role-on-cloud9/

設定変更したらタブの×アイコンをブを閉じる(保存ボタンのようなものは特にない)。

続いてterraformの実行時に権限回りで躓かないよう、Cloud9のEC2インスタンスにAdministratorAccessポリシーを付与したロールを割り当てる。事前にロールを作成した上でマネジメントコンソールのEC2-インスタンス画面から以下の操作を行う。
Cloud9のインスタンスを選択
⇒ アクション
⇒ インスタンスの設定
⇒ IAMロールの割り当て/置換
⇒ AdministratorAccessポリシーを付与したロールを選択
⇒ 適用

tfenvのインストール

「EC2でtfenvを使ってみる」でEC2にtfenvをインストールした手順と同じ。今回はgitがインストール済みだったのでgit cloneしてパス通しのシンボリックリンクを張るだけだった。

gitはインストール済みだった
$ yum list installed | grep git-all
git-all.noarch                       2.14.6-1.62.amzn1             @amzn-updates
$ 
git_clone
$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
Cloning into '/home/ec2-user/.tfenv'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 1105 (delta 8), reused 10 (delta 2), pack-reused 1084
Receiving objects: 100% (1105/1105), 216.01 KiB | 453.00 KiB/s, done.
Resolving deltas: 100% (703/703), done.
$ 
パス通し(シンボリックリンクを張る)
$ sudo ln -s ~/.tfenv/bin/* /usr/local/bin
$ 

tfenvを使ってみる

■list-remote

インストール可能なterraformのバージョンを表示する。

list-remote
$ tfenv list-remote
0.13.0-beta3
0.13.0-beta2
0.13.0-beta1
0.12.28
0.12.27
(中略)
0.2.0
0.1.1
0.1.0
$ 

■install

指定したバージョンのterraformをインストールする。

最新バージョンをインストール
$ tfenv install latest
Installing Terraform v0.12.28
Downloading release tarball from https://releases.hashicorp.com/terraform/0.12.28/terraform_0.12.28_linux_amd64.zip
##################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.12.28/terraform_0.12.28_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive:  tfenv_download.KfahUH/terraform_0.12.28_linux_amd64.zip
  inflating: /home/ec2-user/.tfenv/versions/0.12.28/terraform  
Installation of terraform v0.12.28 successful. To make this your default version, run 'tfenv use 0.12.28'
$ 
バージョン0.11.1をインストール
$ tfenv install 0.11.1
Installing Terraform v0.11.1
Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.1/terraform_0.11.1_linux_amd64.zip
##################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.11.1/terraform_0.11.1_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
Archive:  tfenv_download.LrPema/terraform_0.11.1_linux_amd64.zip
  inflating: /home/ec2-user/.tfenv/versions/0.11.1/terraform  
Installation of terraform v0.11.1 successful. To make this your default version, run 'tfenv use 0.11.1'
$ 

■use

使用するバージョンを選択する。

バージョン選択
$ tfenv use 0.12.28
Switching default version to v0.12.28
Switching completed
$ 

■list

インストール済みのterraformバージョンが一覧表示し
選択中のバージョンには*が付く。

list
$ tfenv list
* 0.12.28 (set by /home/ec2-user/.tfenv/version)
  0.11.1
$ 

■uninstall

指定したバージョンのterraformをアンインストールする。

uninstall
$ tfenv uninstall 0.11.1
Uninstall Terraform v0.11.1
Terraform v0.11.1 is successfully uninstalled
$ 
$ 
$ tfenv list
* 0.12.28 (set by /home/ec2-user/.tfenv/version)
$