Определить хозяев для игры - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть несколько разных приложений, работающих на разных серверах, например,

  • app-1 работает (в режиме кластера) на devserver-1 и devserver-2
  • app-2 работает(в кластерном режиме) на devserver-3 и devserver-4
  • app-3 запускается (в автономном режиме) на devserver-1.

В моем dev -информационном файлеЯ перечислил все мои 4 devservers.

Теперь я хотел бы написать параметризованный playbook, который "знает", на каких хостах он должен работать, когда я предоставляю app_name -вариабельная.

В настоящее время у меня есть файл var, содержащий что-то вроде этого:

# vars/apps.yml
apps:
  app-1:
    servers:
      dev:
      - devserver-1
      - devserver-2

И сборник пьес, как это:

# playbook.yml
vars_files:
  - vars/apps.yml
hosts: "{{ apps[app_name].servers[stage] | join(',') }}"

Но по разным причинамЯ не доволен этой конфигурацией и хочу избежать использования vars_files (и вместо этого использовать role / include_vars).

Так, как я могу определить хосты для playbook (который разделяется междунесколько приложений) без использования vars_files?

1 Ответ

0 голосов
/ 25 сентября 2018

Сгруппируйте их в свой файл hosts, например:

[app-1]
devserver-1
devserver-2
[app-2]
devserver-3
devserver-4
[app-3]
devserver-1

Затем пусть ваша книга воспроизведения использует переменную в строке hosts:

- hosts: "{{ app_name }}"

(я, честно говоря, неНе помню, можете ли вы иметь - в названии группы. Попробуйте.)

...