前置き
最近awsやgcpを触っていて、せっかく作った構成を他の人とかにも共有したいなーと思ってました。
Chefも触ったのですがなんとなーく肌に合わず、最近はAnsibleを使っています。
awsだけだとCloudFormationも有るのですがある程度のサイズになってくると、JSONは微妙ですね... CloudFormationをCoffeeScriptやRubyで書く色々なものも有るのですが、 だったら他のモノのクラウドも一貫して触れる物が良かったのでansibleにしています。
Chefも触ったのですがなんとなーく肌に合わず、最近はAnsibleを使っています。
今回やること
以下の様なAWS VCP環境をAnsibleで作ります。
Playbookとかとか
構成
ベストプラクティスっぽい環境 VPCとか「ネットワーク構成」ってRoleに入れるのかな?? 区切りはよくわかないですね
.
├── ec2-servers #hosts
├── envs/ #環境設定 varsとか同じ感じ
│ └── dev.yaml
├── group_vars/
│ └── all.yaml #awsのクレデンシャルとかリージョンを定義してます。
├── network.yml
├── roles/
│ └── vpc/ #vpcの設定を行うRole
│ ├── tasks/
│ │ └── main.yaml
│ └── vars/
└── sites.yaml
.
├── ec2-servers #hosts
├── envs/ #環境設定 varsとか同じ感じ
│ └── dev.yaml
├── group_vars/
│ └── all.yaml #awsのクレデンシャルとかリージョンを定義してます。
├── network.yml
├── roles/
│ └── vpc/ #vpcの設定を行うRole
│ ├── tasks/
│ │ └── main.yaml
│ └── vars/
└── sites.yaml
コード
全般的に↓においてあります。
また以下を参考にしています。
envs/dev.yaml
環境設定を行います。
roles/vpc/tasks/main.yaml
内でincludesしていてコマンド引数 environとかで、環境名(production.yamlとか)で設定を変えられます。
roles/vpc/tasks/main.yaml
内でincludesしていてコマンド引数 environとかで、環境名(production.yamlとか)で設定を変えられます。
0 件のコメント:
コメントを投稿