はじめに
した。
さて、今年もISUCON出ます。去年何もできなかった自分に対して圧倒的な成長を実感できる予感がしています。
チーム内でいろいろ作戦会議をしてますが、最初の30分それぞれ何をするのか、そして実際にできるのかの模擬練習をしておいたほうがいい、という意見が出まして、ヨッシャ環境構築するぞとなりました。
Alibabaもalicloud providerもはじめてでしたが、なんやかんやでとりあえず1台インスタンスが立ってGlobal IPにsshできるところまできました。
事前準備としては - Terraform userの作成、Administrator権限の付与 - keypairの事前登録、keypair名をtfファイルに更新
ができれば動くはずです。 ちなみにちゃんとTerrafrm 0.12.6にしました。ちゃんとした。
Alibaba Cloud、普段クラウド触ってればだいたい雰囲気同じ感じでなんとなしできると思います。
ユーザに関しては Resource Access Management -> ユーザ -> 新規ユーザで。Administrator グループを作ってそこにterraformユーザをいれてあげる。そのグループに権限付与ポリシーでAdministratorをあてる、だったはず。 まぁAWSのユーザ、ロール、ポリシーと同じノリです。
新規ユーザ作成時にkeyとsecretが生まれるのでそれを.envrcにいれて環境変数で読めるようにしましょう。
$ cat .envrc.sample export ALICLOUD_ACCESS_KEY="secret_secret" export ALICLOUD_SECRET_KEY="secret_secret" export ALICLOUD_REGION="ap-northeast-1"
keypairですが、新規に作るのも面倒なので、自分のGitHubに登録してある公開鍵を使って https://github.com/chaspy.keys 既存のkeyをimportする形にしました。 そのkeypairの名前だけterraformの keypair attachment resource にいれてあげる必要があります。
resource "alicloud_key_pair_attachment" "attachment" { key_name = "key_pair_github" # Create key pair by hand instance_ids = ["${alicloud_instance.web.id}"] }
Applyするとoutputにglobal ipがでるので、sshすればよいです。
余談だけど普段ラッパースクリプトとかCIとかでしかTerraform実行しないので terraform
ってフルスペル入力するのしんどくてエイリアスした。。。
$ tf apply (snip) Apply complete! Resources: 11 added, 0 changed, 0 destroyed. Outputs: ip = 47.74.4.123 $ ssh root@47.74.4.123 Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-52-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Welcome to Alibaba Cloud Elastic Compute Service ! root@isucon8:~#
おそうじも簡単でらく。
$ tf destroy (snip) Destroy complete! Resources: 11 destroyed.
このあと複数台構成にするとかいろいろやるかもしれない。
次はAnsibleでApplicationを構築するところをやります。いうて以下を流すだけになると思うが。
おまけ
alicloud-providerに軽微なPR2件出した。マージされろー。
追記。された!