hashicorp

Ansible HashiCorp

Тесты Molecule Последний тег Ansible Galaxy Лицензия MIT

Установите программное обеспечение 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

Установить
ansible-galaxy install mesaguy/ansible-hashicorp
Лицензия
mit
Загрузки
10357
Владелец