はじめに
Ansibleで環境を作ろうと思えば、Ansibleのディレクトリ構成をどのような作り方もできてしまうが、Ansibleのbest practicesのAlternative Directory Layout (https://docs.ansible.com/ansible/2.5/user_guide/playbooks_best_practices.html#alternative-directory-layout )を元に構成を作ることにした
なぜAlternative Directory Layoutか
まず、Alternativeではない、正攻法(?)のDirectry Layoutは、以下のとおり
Directry Layout
これに対し、Alternative Directory Layout は Staging/Production が 明確に分かれているのが特徴だ
Alternative Directory Layout
双方のメリット・デメリット
メリット
productionとstagingがディレクトリが分かれているため 環境ごとに設定を変える事ができる。
Directry Layoutの場合、productionとstagingがディレクトリが分かれていない。
そのため、productionとstagingが全く同じ環境であればよいが、ランニングコストを下げるためにStagingのみ台数を減らしたり、パラメータを変更するようなことが柔軟にやりにくくなってしまう。現在のみならず、先々を考慮しこの構成を採用した
デメリット
ほとんどの設定ファイルがproductionとstagingで冗長してしまう
結論
上記デメリットがあるものの、Alternative Directory Layout を採用することによる享受できるメリットが判断し、このレイアウトを採用することにした。