Alternative Directory LayoutでAnsible-playbookを作った際に考えたこと

はじめに

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 を採用することによる享受できるメリットが判断し、このレイアウトを採用することにした。