Одна из моих ролей имеет два разных типа переменных. Один из них является общедоступным (например, версии пакетов и другая полезная информация). Их можно без проблем передать в SCM. Также требуется некоторая личная информация (например, ключи API и другая секретная информация). Я использую ansible-vault
для шифрования секретной информации. Мое решение состояло в том, чтобы иметь vars/main.yaml
для публичной информации и vars/vault.yml
для зашифрованной частной информации.
Я столкнулся с проблемой и не уверен, что здесь наилучшая практика или реальное решение. Кажется, что ansible загружает только файл vars/main.yml
. Естественно, я не хочу шифровать общедоступную информацию, поэтому я искал решение. Пока что единственное решение, которое я придумал (предложено на IRC), — это создать group_vars/all/vault.yml
и префикс всех переменных с именем роли. Это работает, потому что кажется, что ansible рекурсивно загружает все под group_vars
. Это работает, но кажется неверным с организационной точки зрения, потому что переменные предназначены для конкретной роли, а не "универсально истинны в глобальном масштабе". Я также пытался поместить include: vars/vault.yml
в vars/main.yml
, но это не сработало.
Есть ли правильный способ сделать это?