terrahelper
terrahelper
terrahelper объединяет лучшие практики использования terraform и terrahelp для небольших команд.
Лучшие практики:
- создайте репозиторий для ваших шаблонов terraform
- создайте репозиторий для состояния terraform
- держите состояние отдельно от папки с шаблонами terraform (поэтому вам нужен второй репозиторий)
Рабочий процесс:
- создайте/отредактируйте ваши шаблоны
- получите последнее состояние из репозитория состояния
- расшифруйте состояние с помощью terrahelp и вашего секрета состояния
- выполните команды terraform plan/apply
- зашифруйте новое состояние с помощью terrahelp
- зафиксируйте новое состояние в репозитории состояния
Требования
Эта роль требует Ubuntu.
Пример плейбука
- hosts: terrahelper
roles:
- { role: andrelohmann.terraform }
- { role: andrelohmann.terrahelpe }
- { role: andrelohmann.terrahelper }
Использование
terrahelper объединяет шаги по расшифровке и шифрованию состояния terraform ваших шаблонов вместе с командами terraform для инициализации, планирования, применения и разрушения вашего стека.
Для этого вам нужен секрет состояния для шифрования/расшифровки состояния terraform и два отдельных репозитория (один для шаблона и один для состояния).
Запускайте terrahelper так же, как вы обычно запускаете команду terraform из каталога с вашими шаблонами terraform.
использование: terrahelper init | plan | apply | destroy | output [-s | --statesecret SECRET] [-d | --statedirectoy STATEDIRECTORY] [-f | --statefile terraform.tfstate] [-b | --statefilebackup terraform.tfstate.backup] [-e | --echo] [-h | --help] [любые параметры terraform]
Если установлены следующие переменные окружения, соответствующие параметры становятся неактуальными:
TH_SECRET - секрет terrahelp, используемый для шифрования/расшифровки состояния
TH_STATE_DIRECTORY - абсолютный или относительный (от каталога с шаблонами terraform) путь к каталогу состояния terraform
TH_STATE_FILE - файл состояния terraform (по умолчанию terraform.tfstate)
TH_STATE_FILE_BACKUP - резервная копия файла состояния terraform (по умолчанию terraform.tfstate.backup)
Вы также можете добавить любые конкретные параметры команды terraform в конец. Они будут добавлены к команде terraform.
Лицензия
MIT
Информация об авторе
ansible galaxy role to wrap a terraform best practice, that uses a separate state repository, that is encrypted by terrahelp.
ansible-galaxy install andrelohmann/ansible-role-terrahelper