hashicorpのottoを触ってみた② ~ビルド・デプロイ

だいぶ前のhashicorpのottoを触ってみた① ~ローカル環境構築

pokrkami.hatenablog.com

の続編です。

今回はローカルに作った環境をAWSにデプロイするところまでを書いていきます。

otto infra

前回

otto dev 

でottoの環境を作成しました。
otto infraはそれをデプロイする先のinfra構成の設定ファイルを作成します。

otto infra

と叩くと、内部でterraformを使っているみたく、terraformのインストールを求められます。
インストール後AWSaccess_key,secret_key,公開鍵,ottoが管理する設定ファイルの暗号化のパスワード(今後のコマンド叩いた時に入力を求められる)を求めてくるのでそれを入力。
するといろいろ動きながら、VPCやらsubnetやらinstanceやらの設定をごにょごにょして作成してくれます。
*もし設定の入力ミスをした場合は~/.otto.d/cacheを消してotto infraを叩けば再度設定が行えます。
完了した後otto statusを叩くと、

otto status

==> App Info
    Application:    otto-getting-started (go)
    Project:        otto-getting-started
    Infrastructure: aws (simple)
==> Component Status
    Dev environment: CREATED
    Infra:           READY
    Build:           NOT BUILT
    Deploy:          NOT DEPLOYED

現在の進捗状況が分かります。infraがREADYになってますね。

otto build

次はデプロイするためにビルドを行います

otto build

これを叩くと今度はpackerのインストールが求められます。 インストール後、デプロイ先がAWS環境なので自動的にAMIが作成されるのですが、 まだgoのプロジェクトのビルドには対応していないようでエラーが出ました。
なのでbuildからはrubyのアプリケーションで行いました(わかりにくくすみません) rubyプロジェクトだと無事AMI作成できました。

otto deploy

いよいよデプロイです。 これも簡単で

otto deploy

と叩くだけです。

するとAWS上に今まで設定したものが実際に反映されていきます。 *デフォルトのデプロイ先のリージョンがus-east-1(米国東部)になってるので注意。 多分変更できるんじゃないかと(次回調べます) otto deployの最後に

Outputs:

  url = http://ec2-50-90-121-35.compute-1.amazonaws.com/

のようにurlが吐き出されるので、url先にアクセスするとプロジェクトがデプロイされて動いているのが確認できます。

以上がinfraの設定からデプロイまででした。 今回ほぼデフォルトでデプロイしたので、次回はリージョンとか変更するなどいろいろ設定を変えてデプロイまで行いたいと思います。