hashicorpのottoを触ってみた③ ~Appfile

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

pokrkami.hatenablog.com

infraの設定からデプロイまで行いました。
ただデフォルトの設定で、全て行ったので今回はそのカスタマイズを行うAppfileについて書いていきます。

Appfileはプロジェクトのrootに置くことで、反映されます。
ただ反映されると言ってもotto compileを叩いてcompileするまでは反映されません。

Appfile

Appfileの書き方を実際に見ていきます。

//Appfile 


application {
  name = "otto-getting-started"
  type = "ruby"
}

project {
  name = "otto-getting-started"
  infrastructure = "otto-getting-started"
}

infrastructure "otto-getting-started" {
  type = "aws"
  flavor = "simple"
}

customization {
    ruby_version = "2.1"
//goの場合の書き方はgo_version = "1.4.2"

}

ottoの公式サイトから持ってきました。

軽く説明すると

  • application
    nameはプロジェクトの名前(一意じゃなくてもいい)
    typeはアプリケーションのtypeを記述
    typeは今のところJAVA,docker,go,node.js,ruby,pythonがデフォルトで対応しているようです。

  • project
    nameはprojectの名前で一意にする必要があります。
    infrastructureはotto infraで作成したinfrastructureの設定名
    次に書くinfrastructureの名前と同一名にする必要があります。

  • infrastructure
    typeはdeployされる環境の名前です(現状awsだけっぽい?)
    flavorには、simplevpc-public-privateの2つが設定可能です。
    simpleaws上に最低限の構成でdeployします。
    vpc-public-privateを設定するとbastion hostsやNAT serverなどを使った踏み台を経由するような構成でdeployが行われます。
    (ここらへんまた詳しく調べたい)

  • customization
    これは基本的にotto devしたときにプロジェクトで使っている言語を見て、必要な物をinstallしてくれるのですが、その中でもversionを変更する必要がある場合に使います。
    見ての通りrubyの2.1を落としたい場合に使っています。記述しないとデフォルトのバージョンがinstallされます。

このようにrootディレクトリにAppfileを置き、otto compileを実行することで、カスタマイズができます。
もっと細かいことができると思うので(awsのregionとか切実に変更したい)もっと使ってみて次回書いていきたいと思います。