저는 플레이북을 작성 중이며 이것이 제가 달성하려는 것입니다.
회사에는 구성 요소가 여러 서버에 분산되어 있는 뱅킹 애플리케이션이 있습니다. 서비스는 단일 스크립트를 통해 또는 구성 요소별로 중지될 수 있습니다. 보안 패치(RHEL)를 적용하기 전에 애플리케이션을 중지해야 합니다.
사용자가 AIO 스크립트에서 애플리케이션을 중지하기를 원하는지 아니면 구성 요소별로 애플리케이션 구성 요소를 중지해야 하는지 여부를 사용자로부터 읽어야 합니다.
내가 작성한 패키지에 대해 다음과 같이 작성했습니다.
vars_prompt:
- name: deploypackages
prompt: Do you want to deploy Packages
private: no
이제 애플리케이션에 대해 이를 달성할 수 있는 방법이 있으며 다음과 같은 상황에서만 실행되어야 합니다.배포 패키지동일한와이
when
작업 전에 호스트 섹션에서 절을 사용할 수 있나요 ? 시도해 보았지만 아무 것도 하지 않았습니다. 심지어 오류도 발생하지 않았기 때문에 인터넷에서 검색했지만 답변을 찾을 수 없었습니다.
답변1
묻다:"deploypackages"가 "y"인 경우에만 실행됩니다.
A: 예를 들어 인벤토리를 생성합니다.
shell> cat hosts
dummy
[multiple_servers]
host1
host2
host3
그리고 스크립트
shell> cat pb.yml
- hosts: "{{ (deploypackages == 'y')|
ternary('multiple_servers', 'dummy') }}"
gather_facts: false
vars_prompt:
- name: deploypackages
prompt: Do you want to deploy Packages
private: no
tasks:
- meta: end_play
when: inventory_hostname == 'dummy'
- debug:
msg: Applying security Patches ...
- 만약 너라면"y"라고 대답하지 마세요연극은 끝날 것이다
shell> ansible-playbook -i hosts pb.yml
Do you want to deploy Packages: no
PLAY [dummy] *********************************************************************************
TASK [meta] **********************************************************************************
PLAY RECAP ***********************************************************************************
- 만약 너라면"예"라고 대답하세요드라마는 계속되겠죠
shell> ansible-playbook -i hosts pb.yml
Do you want to deploy Packages: y
PLAY [multiple_servers] **********************************************************************
TASK [meta] **********************************************************************************
skipping: [host1]
TASK [debug] *********************************************************************************
ok: [host1] =>
msg: Applying security Patches ...
ok: [host2] =>
msg: Applying security Patches ...
ok: [host3] =>
msg: Applying security Patches ...
PLAY RECAP ***********************************************************************************
host1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
host2 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
host3 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0