hashicorp
Ansible HashiCorp
Установите программное обеспечение HashiCorp с помощью официальных пакетов, zip-файлов и дистрибутивных пакетов.
Устанавливает и обновляет следующее программное обеспечение HashiCorp:
- Boundary
- Consul
- Consul Template
- EnvConsul
- Nomad
- Packer
- Sentinel
- Serf
- Terraform
- Vagrant
- Vault
- Vault SSH Helper
- Waypoint
Эта роль в конечном итоге может управлять некоторым программным обеспечением HashiCorp, но в настоящее время основной акцент делается исключительно на установку программного обеспечения HashiCorp безопасным, последовательным и воспроизводимым образом.
Требования
- Ansible >= 2.9.0
- Должны быть собраны факты (gather_facts: true)
Переменные роли
Общие
По умолчанию эта роль не устанавливает программное обеспечение. Каждое программное обеспечение должно быть специально включено.
Следующие переменные могут быть определены для установки конкретного программного обеспечения HashiCorp:
hashicorp_install_boundary: true
hashicorp_install_consul: true
hashicorp_install_consul_template: true
hashicorp_install_envconsul: true
hashicorp_install_nomad: true
hashicorp_install_packer: true
hashicorp_install_sentinel: true
hashicorp_install_serf: true
hashicorp_install_terraform: true
hashicorp_install_vagrant: true
hashicorp_install_vault: true
hashicorp_install_vault_ssh_helper: true
hashicorp_install_waypoint: true
Кроме того, программное обеспечение HashiCorp можно указать с помощью переменной "hashicorp_install" при вызове этой роли. Когда указана "hashicorp_install", вышеуказанные переменные hashicorp_install_* будут игнорироваться. Эта синтаксис также поддерживает возможность указания версии:
- name: Включить mesaguy.hashicorp для установки конкретного программного обеспечения
include_role:
name: mesaguy.hashicorp
vars:
hashicorp_install:
# Установить версию Consul 1.0.0
- consul==1.0.0
# Установить последние версии packer и vault
- packer
- vault
Установка ZIP-файлов HashiCorp
По умолчанию эта роль устанавливает ZIP-файлы HashiCorp, содержащие предварительно скомпилированные двоичные файлы, с помощью следующих переменных.
Программное обеспечение устанавливается в эту базовую директорию. Например, двоичный файл consul версии 1.0.0 будет установлен по адресу /opt/hashicorp/consul/1.0.0/consul.
hashicorp_base_dir: /opt/hashicorp
Здесь создаются символические ссылки на каждый двоичный файл:
hashicorp_software_link_dir: /usr/local/bin
Проверка подписи GPG на всех ZIP-файлах релиза (по умолчанию: false). Для этого требуется команда "gpg". Если отсутствует открытый ключ GPG релиза HashiCorp, эта роль автоматически добавит открытый ключ GPG в ключевую цепочку GPG пользователя "root":
hashicorp_check_gpg_signatures: true
Удалить все, кроме последнего релиза программного обеспечения (по умолчанию: false):
hashicorp_purge_old_releases: true
Изменить пользователя, которому принадлежит программное обеспечение (по умолчанию):
hashicorp_user: root
hashicorp_group: root
Если доступно локальное зеркало программного обеспечения HashiCorp, вы можете использовать переменные окружения "HASHICORP_MIRROR" и/или "HASHICORP_GPG_MIRROR" или следующие переменные ansible. Переменная "hashicorp_gpg_mirror" влияет только на источник файлов подписи GPG:
hashicorp_mirror: https://example.org/hashicorp hashicorp_gpg_mirror: https://example.org/hashicorp
Использовать пакеты HashiCorp вместо ZIP-файлов
При включении использовать официальные RPM/DEB пакеты HashiCorp вместо официальных ZIP-файлов HashiCorp (по умолчанию: false):
hashicorp_use_official_packages: true
Эта опция применяется к следующим дистрибутивам и архитектурам:
Дистрибуция | Версия | Архитектуры |
---|---|---|
AmazonLinux | 2 | amd64/x86_64 |
Debian | Jessie (8) | amd64/x86_64 |
Debian | Stretch (9) | amd64/x86_64 |
Debian | Buster (10) | amd64/x86_64 |
Fedora | 29 | amd64/x86_64 |
Fedora | 30 | amd64/x86_64 |
Fedora | 31 | amd64/x86_64 |
Fedora | 32 | amd64/x86_64 |
Fedora | 33 | amd64/x86_64 |
RHEL | 7 | amd64/x86_64 |
RHEL | 8 | amd64/x86_64 |
Ubuntu | Bionic (18.04) | amd64/x86_64 |
Ubuntu | Eoam (19.10) | amd64/x86_64 |
Ubuntu | Focal (20.04) | amd64/x86_64 |
Ubuntu | Groovy (20.10) | amd64/x86_64 |
Ubuntu | Xenial (16.04) | amd64/x86_64 |
Удалить программное обеспечение HashiCorp, установленное через ZIP-файлы (по умолчанию: false):
hashicorp_purge_zip_releases: true
Локальное зеркало apt можно указать с помощью переменной ansible "hashicorp_apt_mirror" или переменной окружения "HASHICORP_APT_MIRROR":
hashicorp_apt_mirror: https://example.org/hashicorp/apt
Локальное зеркало yum можно указать с помощью переменной ansible "hashicorp_yum_mirror" или переменной окружения "HASHICORP_YUM_MIRROR":
hashicorp_yum_mirror: https://example.org/hashicorp/yum
Состояние, в котором нужно поддерживать программное обеспечение HashiCorp, по умолчанию "present":
hashicorp_software_state: latest
При установке двоичных ZIP-файлов HashiCorp, используйте следующую синтаксис для версии программного обеспечения:
hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1
Использовать дистрибутивные пакеты вместо ZIP-файлов
При включении использовать (возможно, неофициальные) пакеты дистрибутива вместо официальных ZIP-файлов HashiCorp (по умолчанию: false):
hashicorp_use_distro_packages: true
В настоящее время эта опция применима только к ArchLinux.
Удалить программное обеспечение HashiCorp, установленное через ZIP-файлы (по умолчанию: false):
hashicorp_purge_zip_releases: true
Репозиторий тестирования yum можно включить через:
hashicorp_enable_yum_test_repo: true
Зависимости
Нет
Пример плейбука
Следующий пример установит программное обеспечение 'Consul' и 'Vault':
- hosts: servers
vars:
hashicorp_install_consul: true
hashicorp_install_vault: true
roles:
- { role: mesaguy.hashicorp }
Управление релизами
Обновление версий программного обеспечения по умолчанию
Версии релизов программного обеспечения контролируются файлами 'vars/versions.yml' и 'docker_versions.yml'.
Эти файлы можно обновлять вручную или запустив скрипт scripts/update_versions
.
Тестирование
Тесты проводятся с помощью molecule.
Для тестирования необходимо установить pipenv и запустить docker.
Инициализируйте окружение pipenv, выполнив следующее в базовой директории этого репозитория:
pipenv install
Следующие команды могут быть использованы для базовой проверки. Первый тестирует нормальную установку, а второй сценарий гарантирует, что работает проверка GPG:
IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test
IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test -s gpg
Ошибки Selinux обычно можно решить с помощью:
pipenv run pip uninstall selinux -y; pipenv install
Лицензия
MIT
Смотрите файл LICENSE
Информация об авторе
Mesaguy
securely install the latest hashicorp software
ansible-galaxy install mesaguy/ansible-hashicorp