Help us understand the problem. What is going on with this article?

[速報]Terraform for Arukas 開発のメモ

More than 3 years have passed since last update.

===

2017/2 追記: Arukasプロバイダーはv0.8.7からTerraform本体に組み込まれました。
https://www.terraform.io/docs/providers/arukas/index.html

===

:bangbang:Arukas パブリックAPIリリース:bangbang:

Arukas使ってますか?

本日待ちに待ったArukas パブリックAPIが公開されました!!
パブリックAPI ドキュメント

APIが公開されましたのでTerraformから使えるようにプロバイダ作りました。
以下に置いています。

Terraform for Arukas

そのうちちゃんとしたドキュメントや紹介記事を書きますが、、、
どんな感じかちょっとだけご紹介です。

セットアップ

TerraformTerraform for Arukasのセットアップは以下の手順です。

といっても、ダウンロード&展開するだけですので楽チンです。
ついでにArukas APIを使うため、APIキーの取得も行っておきましょう。

Terraformのセットアップ

1) こちらの公式サイトからzipファイルのダウンロードを行います。
2) 適当なディレクトリに展開します。(ここでは例として~/terraformに展開する)
3) 2)のディレクトリにパスを通します。

以下はMacでの例です。

terraformインストール
# ダウンロード
$ 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動作確認
$ 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のセットアップ

1) こちらのリリースページから最新版のzipファイルをダウンロードします。
2) terraformと同じディレクトリに展開します。

これだけです。簡単でしょ?

Arukas APIキーの取得

Arukasコントロールパネルから発行しておきます。
APIキー.jpg

取得したら以下のように環境変数に設定しておきましょう。

APIキーを環境変数へ設定
export ARUKAS_JSON_API_TOKEN=[取得したAPIキー]
export ARUKAS_JSON_API_SECRET=[取得したAPIシークレット]

実行

Terraform実行(Nginxコンテナの例)

定義ファイル作成

Nginxを起動する単純なコンテナをArukas上で起動してみます。
まずはtfファイルを作成します。

arukas.tf作成
vi arukas.tf # 以下の内容を記載
arukas.tf
resource "arukas_container" "arukas01"{
    name = "terraform_for_arukas"
    image = "nginx:latest"
    ports = {
        protocol = "tcp"
        number = "80"
    }
}

保存したらterraformを実行してみましょう。

terraform実施
terraform plan  # 確認
terraform apply # 実施

terraform plan実行時のスクリーンショット

plan.jpg

terraform apply実行時のスクリーンショット

apply.jpg

動作確認

コントロールパネルを見てみましょう。
ちゃんと作成されてますね?
after_apply.jpg

今回はエンドポイントの名前を明示していない為、Arukasが自動割り振りしてくれています。

また、コントロールパネルを参照してもいいですが、
terraform showコマンドを実行すると、Arukas側で自動で割り振ってくれる値を確認できます。

show.jpg

今回はエンドポイントのURLだけしか使いませんが、コンテナでEXPOSEしたポートとArukas上での
ホスト名/ポート番号のマッピングも確認できます。

早速ブラウザで動作確認してみましょう。

browser.jpg

表示されましたね??
他にも定義可能なパラメータなどありますので、詳細はGitHubを参照してください。

 まとめ

いかがでしょうか?ArukasがTerraformに対応したことで、
Terraformでのインフラ構築にまたひとつ強力な手札が増えましたね。

SSH接続できるDockerイメージを用意しておけば、Terraformのプロビジョニング機能も
使えます。(ChefやAnsibleでのプロビジョニングもできますよ!)

まだまだ開発中でtfファイルの書き方などが変わる可能性もありますので、
ご利用の際はGitHubにて最新の情報を参照ください。

以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away