Ansible 庫策略?

Ansible 庫策略?

我開始使用 ansible 進行設定管理,並想知道如何建立我的 ansible 目錄。例如,web1是需要進行設定編輯的主機阿帕契/etc/ssh/sshd_configjira1是一個不使用的主機阿帕契,但確實需要進行相同的編輯/etc/ssh/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

相關內容