ansible playbook playbooks с переменными

Я даже не уверен, что это возможно..

Я знаю, что у вас может быть плейбук, который вызывает другие плейбуки.

IE:

---
# MasterPlaybook.yml

- include: playbook1.yml
  when: some_var == "true"

- include: playbook2.yml
  when: someother_var == "true"

и это сработает, если я вызову MasterPlaybook.yml и передам Vars..

НО я хочу включить вары из какого-то другого yml, например, вот myvars.yml

  some_var: "true"
  someother_var: "false"
  Other_var: "Foo"

Поэтому, если я хочу, чтобы это было включено в playbook1.yml, я просто добавляю..

---
- name: Script Play use variables to get and push out the code
  hosts: somegroup
  remote_user: "some user"
  vars:
    url: 'The url of the build'
    buildNumber: 'the build number'
    jobName: 'passed in job name'
  vars_files:
    - ~/myvars.yml
  serial: 1

и это потянет вары..

Мой вопрос в том, как мне сделать это в masterplaybook.yml, чтобы мне не приходилось передавать вары?

и пока мы на этом ... есть ли хорошие примеры мастер-игры? (или сборник пьес)


person jvanryn    schedule 03.03.2015    source источник


Ответы (2)


Вы можете указать vars как часть операторов include. Это то, что я делаю для некоторых своих проектов.

---

- include: playbook1.yml
  vars:
      some_var: "true"
      someother_var: "false"
      Other_var: "Foo"
  when: some_var == "true"

- include: playbook2.yml
  when: someother_var == "true"
person Carl Wainwright    schedule 22.11.2016

Взгляните на роли в ansible. Они представляют собой более структурированный подход к концепции «сборник сборников». Там вы можете определить глобальные переменные в «основной» книге воспроизведения и переменные в подчиненных книгах воспроизведения http://docs.ansible.com/playbooks_roles.html.

Вы также можете ознакомиться с сборниками примеров, чтобы узнать, как используются и структурированы роли.

person Sebastian Stigler    schedule 03.03.2015
comment
по какой-то причине Роли просто не имеют для меня смысла... не могли бы вы порекомендовать хороший учебник? - person jvanryn; 09.03.2015
comment
Взгляните на github.com/leucos/ansible-tuto. На шаге 12 учебник объясняет роли. Я рекомендую прочитать весь учебник, потому что концепция ролей — это просто организованный способ написания многократно используемых шагов плейбука, которые тематически связаны друг с другом (например, шаги по установке и настройке apache, mysql...). После этого вы можете посмотреть приведенную выше ссылку на примеры сборников игр, чтобы увидеть их роль в реальных жизненных ситуациях. - person Sebastian Stigler; 10.03.2015
comment
Спасибо, я попробую - person jvanryn; 11.03.2015