hashicorpのottoを触ってみた② ~ビルド・デプロイ
だいぶ前のhashicorpのottoを触ってみた① ~ローカル環境構築
の続編です。
今回はローカルに作った環境をAWSにデプロイするところまでを書いていきます。
otto infra
前回
otto dev
でottoの環境を作成しました。
otto infraはそれをデプロイする先のinfra構成の設定ファイルを作成します。
otto infra
と叩くと、内部でterraformを使っているみたく、terraformのインストールを求められます。
インストール後AWSのaccess_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の設定からデプロイまででした。 今回ほぼデフォルトでデプロイしたので、次回はリージョンとか変更するなどいろいろ設定を変えてデプロイまで行いたいと思います。