티스토리 뷰

DevOps/System&Tools

Ansible dynamic global variable

jacobbaek Jacob_baek 2021. 9. 11. 22:11

여러 role을 가진 playbook을 작성할때 1번 role에서 register한 variable을 2번 role에서 사용해야할 경우
다음과 같은 방식을 사용할 수 있다.

먼저 1번 Role에서 변수를 register하게 된다.
당시 수행된 host를 기억해두자.

- name: make a global variable
  shell: pwd
  register: cmd_result

- name: print public CA
  debug:
    var: cmd_result
  when: cmd_result is defined

앞서 1번 Role에서 수행시 shell module이 실행되었던 host(혹은 group)를 사용하여 아래와 같이
앞서 등록한 cmd_result 라는 결과를 출력할 수 있다.

- name: print public CA
  debug:
    var: hostvars[groups['server'][0]]['cmd_result']
  when: hostvars[groups['server'][0]]['cmd_result'] is defined
  # hostvars

다들 아시다시피 groups 및 host는 inventory에 지정되어 있는 host 및 group을 지정해야 한다.

참고사이트

댓글
댓글쓰기 폼