Ansible ライブラリ戦略?

Ansible ライブラリ戦略?

設定管理に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

関連情報