Я использую Ansible для обработки разностей конечных точек для разных сред. Это делается с помощью переменных и расширения ansible-xml.Разделительные сейфовые хранилища для разных сред?
Например, у меня есть задача с именем «endpoints.yml» в роли, называемой «myapp». Эта задача задает множество конфигурационных параметров в файлах конфигурации, заменяя переменные.
/roles/myapp/tasks/endpoints.yml
—> set value in app config file to: {{ db_user }}
—> set value in app config file to: {{ db_password }}
Так как моя, не прод среда разделяет единую конечную точку, значение этих переменных могут быть сконфигурированы в файле по умолчанию этой роли:
/roles/myapp/defaults/main.yml
—> db_user: myuser_ro
—> db_passwordd: some_password
Для прод ан ружающая среда, я перезапись по умолчанию с group_variable (так как это имеет преимущество):
/среды/прод/group_vars/myapp_servers
—> db_user: produser_ro
—> db_password: some_other_password
Это все прекрасно работает и позволяет нам использовать один playbook/role для всех сред. Тем не менее, я хочу двигаться, чтобы воспользоваться преимуществами скрытого хранилища, чтобы переместить значения пароля из этих файлов и в зашифрованный файл.
Тем не менее, все еще будут разные значения для prod и non-prod. Я могу создать новый файл «vars» в роли «pass.yml», зашифровать его с помощью скрытого хранилища, а затем ссылаться на него с помощью задачи «include_vars: pass.yml».
Но это не объясняет, как я учитываю необходимость использования разных (зашифрованных) переменных для разных сред.
Любые предложения?
Я полагаю, что лучшее решение будет иметь несколько хранилищ и ссылаться на них с --vault-пароль-файлом при вызывающем анзибле пьес: (то есть: myapp_prod_vault.yml, myapp_nonprod_vault.yml) – mcdowellstl
Подождите, почему вы не можете использовать group_vars и иметь отдельные файлы хранилища для каждой группы? Ваш вопрос довольно запутанный, трудно понять, что именно вы пытаетесь объяснить. – Mxx