새 서버에 배포하고 다른 서버에서 제거할 수 있는 Ansible 플레이북

새 서버에 배포하고 다른 서버에서 제거할 수 있는 Ansible 플레이북

나는 서버가 그룹에 있을 때 특정 작업을 실행하고 그룹에 없을 때 다른 작업을 실행하는 플레이북을 갖는 아이디어를 갖고 있습니다.

모든 서버가 포함된 office1이 있고 기본 DHCP 서버가 있다고 가정해 보겠습니다.

[office1]
server1
server2
server3

[dhcp]
server2

DHCP 서버가 하나만 있는지 확인하고 싶습니다.

- include: tasks/add-dhcp.yml
  when: inventory_hostname in dhcp
- include: tasks/remove-dhcp.yml
  when: inventory_hostname not in dhcp

따라서 DHCP를 server3으로 변경하면 3에 설치되고 2에서는 제거됩니다. 그러면 새 DHCP 배포가 완료되면 롤이 모든 office1 서버에서 실행됩니다.

이것에 대한 아이디어가 있습니까? 나쁜 생각인가요? 이 문제를 어떻게 해결하시겠습니까?

답변1

이 접근 방식이 귀하에게 적합하다면 이를 따르십시오. 구성을 정의하는 방식에는 좋고 나쁜 것이 없습니다. 그 외에 변수를 사용할 수 있습니다.

그러나 조건은 아래와 같아야 합니다.

- include_tasks: tasks/remove-dhcp.yml
  when: `dhcp` not in group_names

group_names매직 변수여기에는 실행 대상이 속한 모든 그룹의 목록이 포함됩니다.

관련 정보