Ansible 라이브러리 전략?

Ansible 라이브러리 전략?

구성 관리에 ansible을 사용하기 시작했고 ansible 디렉터리를 구성하는 방법이 궁금합니다. 예를 들어 web1구성 편집이 필요한 호스트는 다음과 같습니다.아파치그리고/etc/ssh/sshd_config. jira1사용하지 않는 호스트입니다.아파치, 그러나 동일한 편집이 필요합니다./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

관련 정보