話の流れ
毎日cronで terraform plan
実行して差分チェックとかやってるんですけど、今日も差分やエラーを検知。
で、調べてみると
$ terraform --version
Terraform v0.11.10
Your version of Terraform is out of date! The latest version
is 0.11.11. You can update by downloading from www.terraform.io/downloads.html
「あなたのバージョンは時代遅れ~」
あーなるほどね。また、バージョン上がったのね。
これ、terraformってパッケージ管理じゃなくて、バイナリ落としてきてるんだよなぁ
なんか自動でアップグレードとか出来ないのかなぁ…
Google先生後
うーん、なんかmacは普通に homebrew
で出来るっポイ…
(自分は windows 使ってて、cron動かしてるのはLinux)
更にGoogle先生後
この記事を見て何やら tfenv と言うツールを知る
Terraform職人入門: 日々の運用で学んだ知見を淡々とまとめる
試してみる
インストールは README の通り
git clone https://github.com/kamatama41/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile
ではさっそく
tfenv install latest
ってやると最新版インストールしてくれるらしい
$ tfenv install latest
[INFO] Installing Terraform v0.12.0
[INFO] Downloading release tarball from https://releases.hashicorp.com/terraform/0.12.0/terraform_0.12.0_linux_amd64.zip
curl: (22) The requested URL returned error: 403 Forbidden
tfenv: tfenv-install: [ERROR] Tarball download failed
あれ…なんか faild
ってでた。。
確かにダウンロード先のリンククリックすると403が返ってくる。なにこれ。。
ソースを見てみると、以下にアクセスして、最新を判別してるっぽくて、
terraform_0.12.0-alpha4
のお尻の alpha の部分がリンク組み立てる所から抜けてるのかな…?
…しかもalphaとか使いたくないなぁ
https://releases.hashicorp.com/terraform/
issuesも上がってたけど、直ってないのかな…(ちゃんと見てない)
https://github.com/tfutils/tfenv/issues/95
ちょっと弄る
この部分でバージョンの一覧を取得してたので、
https://github.com/tfutils/tfenv/blob/master/libexec/tfenv-list-remote#L11
curlw -sf https://releases.hashicorp.com/terraform/ | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-(rc|beta)[0-9]+)?" | uniq
このに | grep -v alpha
を追加する
リトライ
次はうまくいった。alphaではない、最新版がインストールされた
$ tfenv install latest
[INFO] Installing Terraform v0.11.11
[INFO] Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_linux_amd64.zip
######################################################################## 100.0%
[INFO] Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_SHA256SUMS
tfenv: tfenv-install: [WARN] No keybase install found, skipping GPG signature verification
tfenv: tfenv-install: [WARN] No shasum tool available. Skipping SHA256 hash validation
Archive: tfenv_download.YZmMIj/terraform_0.11.11_linux_amd64.zip
inflating: /home/akiyo.ando/.tfenv/versions/0.11.11/terraform
[INFO] Installation of terraform v0.11.11 successful
[INFO] Switching to v0.11.11
[INFO] Switching completed
pathの場所も変わっていた。
$ terraform --version
Terraform v0.11.11
$ which terraform
~/.tfenv/bin/terraform
仕上げ
MyPC は shell 起動時に実行してもらうようにした
echo 'tfenv install latest >/dev/null' >> ~/.bash_profile
Cron で terraform plan
実行してる Linux は Cron に登録した
0 8 * * * tfenv install latest
0 9 * * * python ${HOME}/terraform/terraform/slackbot/plugins/terraformer_by_python.py
感想
なんか大分いまいちだけど、自動化はできました。
(mac 以外の人で)みんな、この辺の運用どうやってるんだろ?
やっぱ、macやなぁ…