
기본적으로 다음과 같은 간단한 ansible
플레이북이 있습니다 (단순화).setup.yml
- hosts: my-server-to-setup
remote_user: [REDACTED]
become: yes
#vars_prompt:
# - name: "zbxusername"
# prompt: "Zabbix Username"
# private: no
# - name: "zbxpw"
# prompt: "Zabbix Passwort"
# private: yes
roles:
- basic
# - zabbix
이 zabbix
역할에는 zabbix 호스트 서버에 액세스하려면 사용자 이름과 비밀번호가 필요합니다. 자격 증명은 다르며 각 사용자는 자신의 계정을 가지고 있습니다.
역할 을 설치하려면 역할 내에서 메시지를 표시하는 것이 허용되지 않으므로 해당 섹션의 zabbix
주석 처리를 제거해야 합니다 .vars_prompt
ansible
더 좋은 방법이 있나요? 현재 접근 방식에서는 중요한 변수를 정의되지 않은 상태로 남겨둘 수 있으며, 이로 인해 플레이북이 실패하게 됩니다.
답변1
스크립트 만들기top.yml
가져오기 스크립트basic.yml
그리고zabix.yml
. 가져온 플레이북을 선택적으로 실행하려면 태그를 사용하세요.
ansible-playbook -t basic top.yml
ansible-playbook -t zabix top.yml
스크립트 top.yml
- name: Run basic
import_playbook: basic.yml
tags: [basic, never]
- name: Run zabix
import_playbook: zabix.yml
tags: [zabix, never]
basic.yml 스크립트
- hosts: my-server-to-setup
remote_user: [REDACTED]
become: yes
roles:
- basic
scriptzabix.yml
- hosts: my-server-to-setup
remote_user: [REDACTED]
become: yes
vars_prompt:
- name: "zbxusername"
prompt: "Zabbix Username"
private: no
- name: "zbxpw"
prompt: "Zabbix Passwort"
private: yes
roles:
- zabbix
노트
상표never
실수로 두 역할을 모두 실행하는 것을 방지하는 것이 유용할 수 있습니다. 태그를 지정하지 않으면 가져온 플레이북이 실행되지 않습니다. 다음 명령은 아무런 작업도 생성하지 않습니다.
ansible-playbook top.yml