2016-07-28 4 views
1

vars_prompt을 사실에서 취한 기본값 (또는 이전에 정의 된 변수)으로 Anecess에 사용하려고했습니다. 게임 플레이 북은 초기 프로비저닝을위한 애드혹 (ad-hoc) 용도로 사용됩니다.변수를 vars_prompt in Anabilities의 기본값으로 사용

내 각본 :

--- 
- hosts: server01 
    gather_facts: True 
    vars_prompt: 
    - name: new_hostname 
     prompt: please enter the name for the target 
     default: "{{ ansible_hostname }}" 
     private: no 
    tasks: 
    - debug: msg="{{ new_hostname }}" 

현재 결과 :

please enter the name for the target [{{ ansible_hostname }}]: 
ERROR! 'ansible_hostname' is undefined 

예상 결과 (ansible_hostname=server01 가정 :

please enter the name for the target [server01]: 

이 Ansible 달성 할 수 있는가

+0

나는 여기에서 운이 없다고 확신합니다. 이 단계에서는 호스트 변수가 없습니다. 프롬프트는 모든 작업에 사용되며 모든 작업 (설정 포함)은 모든 호스트에 대해 수행됩니다. '{{new_hostname | 기본값 (ansible_hostname)}}'을 사용하고'-e'와 함께'new_hostname'을 전달하는 것은 해결책입니다. –

+0

"*이 단계에서 호스트 변수가 없습니다 *"- 질문 :이 단계에서 해석되는 변수가 있습니까 (그냥 문자열로 처리되는 것 같습니다). 그것 이외에, 나는 j2 템플릿에서 동적 플레이 북을 로컬로 생성하고 그것을 포함시킬 수 있는지 궁금해하기 시작했다. – techraf

+0

코드북에이 부분이 템플릿 화되어 있지 않다는 것을 알 수있다. –

답변

0

이것은 pause module을 사용하여 구현할 수 있습니다.

--- 
- hosts: server01 
    gather_facts: True 
    tasks: 
    - pause: 
     prompt: please enter the name for the target [{{ ansible_hostname }}] 
     register: prompt 

    - debug: 
     msg: "{{ prompt.user_input if prompt.user_input else ansible_hostname }}" 
관련 문제