===
2017/2 追記: Arukasプロバイダーはv0.8.7からTerraform本体に組み込まれました。
https://www.terraform.io/docs/providers/arukas/index.html
===
祝Arukas パブリックAPIリリース
Arukas使ってますか?
本日待ちに待ったArukas パブリックAPIが公開されました!!
パブリックAPI ドキュメント
APIが公開されましたのでTerraformから使えるようにプロバイダ作りました。
以下に置いています。
そのうちちゃんとしたドキュメントや紹介記事を書きますが、、、
どんな感じかちょっとだけご紹介です。
セットアップ
Terraform
とTerraform for Arukas
のセットアップは以下の手順です。
といっても、ダウンロード&展開するだけですので楽チンです。
ついでにArukas APIを使うため、APIキーの取得も行っておきましょう。
Terraformのセットアップ
- こちらの公式サイトからzipファイルのダウンロードを行います。
- 適当なディレクトリに展開します。(ここでは例として~/terraformに展開する)
- 2)のディレクトリにパスを通します。
以下はMacでの例です。
# ダウンロード
$ curl -L https://releases.hashicorp.com/terraform/0.6.16/terraform_0.6.16_darwin_amd64.zip > ~/terraform/terraform.zip
# 展開
$ unzip ~/terraform/terraform.zip
# パスを通す
$ export PATH=$PATH:~/terraform/
動作確認
terraform
コマンドを実行してみましょう。
以下のような表示がされればOKです。
$ terraform
usage: terraform [--version] [--help] <command> [<args>]
Available commands are:
apply Builds or changes infrastructure
destroy Destroy Terraform-managed infrastructure
get Download and install modules for the configuration
graph Create a visual graph of Terraform resources
init Initializes Terraform configuration from a module
output Read an output from a state file
plan Generate and show an execution plan
push Upload this Terraform module to Atlas to run
refresh Update local state file against real resources
remote Configure remote state storage
show Inspect Terraform state or plan
taint Manually mark a resource for recreation
validate Validates the Terraform files
version Prints the Terraform version
Terraform for Arukasのセットアップ
- こちらのリリースページから最新版のzipファイルをダウンロードします。
- terraformと同じディレクトリに展開します。
これだけです。簡単でしょ?
Arukas APIキーの取得
取得したら以下のように環境変数に設定しておきましょう。
export ARUKAS_JSON_API_TOKEN=[取得したAPIキー]
export ARUKAS_JSON_API_SECRET=[取得したAPIシークレット]
実行
Terraform実行(Nginxコンテナの例)
定義ファイル作成
Nginxを起動する単純なコンテナをArukas上で起動してみます。
まずはtfファイルを作成します。
vi arukas.tf # 以下の内容を記載
resource "arukas_container" "arukas01"{
name = "terraform_for_arukas"
image = "nginx:latest"
ports = {
protocol = "tcp"
number = "80"
}
}
保存したらterraformを実行してみましょう。
terraform plan # 確認
terraform apply # 実施
terraform plan
実行時のスクリーンショット
terraform apply
実行時のスクリーンショット
動作確認
コントロールパネルを見てみましょう。
ちゃんと作成されてますね?
今回はエンドポイントの名前を明示していない為、Arukasが自動割り振りしてくれています。
また、コントロールパネルを参照してもいいですが、
terraform show
コマンドを実行すると、Arukas側で自動で割り振ってくれる値を確認できます。
今回はエンドポイントのURLだけしか使いませんが、コンテナでEXPOSE
したポートとArukas上での
ホスト名/ポート番号のマッピングも確認できます。
早速ブラウザで動作確認してみましょう。
表示されましたね??
他にも定義可能なパラメータなどありますので、詳細はGitHubを参照してください。
# まとめ
いかがでしょうか?ArukasがTerraformに対応したことで、
Terraformでのインフラ構築にまたひとつ強力な手札が増えましたね。
SSH接続できるDockerイメージを用意しておけば、Terraformのプロビジョニング機能も
使えます。(ChefやAnsibleでのプロビジョニングもできますよ!)
まだまだ開発中でtfファイルの書き方などが変わる可能性もありますので、
ご利用の際はGitHubにて最新の情報を参照ください。
以上です。