
設定管理にAnsibleを使い始めたのですが、Ansibleディレクトリをどのように構成したらよいか迷っています。たとえば、web1
設定を編集する必要があるホストはアパッチそしてsshd_config は、.jira1
は使用しないホストですアパッチ、しかし、同じ編集を行う必要があるsshd_config は、。
ansible
私の考えは、自分のディレクトリの下にライブラリ ディレクトリを作成し、sshd.yml
その下にプレイブックを置くことでした。ライブラリへのシンボリック リンクを含むホスト ディレクトリを作成できます。
ansible
|
|
+ library
| |
| +- sshd.yml
| +- apache.yml
| +- nginx.yml
+ web1
| |
| + playbooks
| |
| +- symlink_to_../../library/sshd.yml
| +- symlink_to_../../library/apache.yml
+ jira1
|
+ playbooks
|
+- symlink_to_../../library/sshd.yml
+- symlink_to_../../library/nginx.yml
これにより重複.yml
ファイルが排除され、Ansible はシンボリックリンクを気にしないようです。サブディレクトリを一目見るだけで、特定のホストを構成するためにどのプレイブックが必要/使用されているかを正確に知ることができます。これは良い方法のように思えますが、これを行うより良い方法はあるでしょうか?
私が考えられる唯一の他の方法は、すべてのプレイブックに、vars/facts
構成からすべてのホストを含めたり除外したりする機能を持たせることです。ただし、これは遠回りのように思えます。LAN にホストを追加または削除するたびに、すべてのプレイブックを編集する必要があります。
答え1
Konstantin が書いたように、これらの標準ビルディング ブロックのロール、サーバー タイプごとのグループ、およびそれらのロールを適用するためのプレイブックが必要です。したがって、構造は次のようになります。
ansible
|
|
+-roles
| |
| +-sshd
| +-apache
| +-nginx
|
+-playbook_for_group_web.yml
|
+-playbook_for_group_jira.yml