mesaguy.hashicorp

Ansible HashiCorp

Pruebas de Molecule Última etiqueta Ansible Galaxy Licencia MIT

Instalar software de HashiCorp usando paquetes oficiales, archivos zip oficiales y paquetes de distribución.

Instala y actualiza el siguiente software de HashiCorp:

  • Boundary
  • Consul
  • Consul Template
  • EnvConsul
  • Nomad
  • Packer
  • Sentinel
  • Serf
  • Terraform
  • Vagrant
  • Vault
  • Vault SSH Helper
  • Waypoint

Este rol eventualmente podría gestionar algún software de HashiCorp, pero el enfoque actual es exclusivamente en la instalación de software de HashiCorp de manera segura, consistente y reproducible.

Requisitos

  • Ansible >= 2.9.0
  • Deben recopilarse los hechos (gather_facts: true)

Variables del Rol

Genéricas

Por defecto, este rol no instala ningún software. Cada software debe ser habilitado específicamente.

Se pueden definir las siguientes variables para instalar software específico de 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

Alternativamente, se puede especificar software de HashiCorp usando la variable "hashicorp_install" al llamar a este rol. Cuando se especifica "hashicorp_install", se ignorarán las variables hashicorp_install_*. Esta sintaxis también admite especificar opcionalmente una versión:

- name: Incluir mesaguy.hashicorp para instalar software específico
  include_role:
    name: mesaguy.hashicorp
  vars:
    hashicorp_install:
      # Instalar la versión 1.0.0 de Consul
      - consul==1.0.0
      # Instalar las últimas versiones de packer y vault
      - packer
      - vault

Instalaciones de archivos ZIP de HashiCorp

Por defecto, este rol instala los archivos ZIP de HashiCorp que contienen binarios precompilados usando las siguientes variables:

El software se instala en este directorio base. Por ejemplo, el binario de la versión 1.0.0 de consul se instalaría en /opt/hashicorp/consul/1.0.0/consul

hashicorp_base_dir: /opt/hashicorp

Se crearán enlaces simbólicos a cada binario aquí:

hashicorp_software_link_dir: /usr/local/bin

Valida las firmas GPG en todos los archivos ZIP de lanzamiento (predeterminado: false). Esto requiere que el comando "gpg" esté disponible. Si falta la clave pública de lanzamiento GPG de HashiCorp, este rol agregará automáticamente la clave pública GPG al llavero GPG del usuario "root":

hashicorp_check_gpg_signatures: true

Elimina todo excepto la última versión del software (predeterminado: false):

hashicorp_purge_old_releases: true

Cambia el usuario que posee el software, por defecto son las opciones a continuación:

hashicorp_user: root
hashicorp_group: root

Si hay un espejo local del software de HashiCorp disponible, puedes usar las variables ambientales "HASHICORP_MIRROR" y/o "HASHICORP_GPG_MIRROR" o las siguientes variables de ansible. La variable "hashicorp_gpg_mirror" solo afecta de dónde se obtienen los archivos de firma GPG:

hashicorp_mirror: https://example.org/hashicorp hashicorp_gpg_mirror: https://example.org/hashicorp

Usar paquetes de HashiCorp en lugar de archivos ZIP

Cuando está habilitado, usa los paquetes RPM/DEB oficiales de HashiCorp en lugar de los archivos ZIP oficiales de HashiCorp, predeterminado es false:

hashicorp_use_official_packages: true

Esta opción se aplica a los siguientes lanzamientos de distribución y arquitecturas:

Distribución Lanzamiento Arquitecturas
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

Elimina el software de HashiCorp instalado a través de archivos ZIP, predeterminado es false:

hashicorp_purge_zip_releases: true

Se puede especificar un espejo local de apt usando la variable de ansible "hashicorp_apt_mirror" o la variable ambiental "HASHICORP_APT_MIRROR":

hashicorp_apt_mirror: https://example.org/hashicorp/apt

Se puede especificar un espejo local de yum usando la variable de ansible "hashicorp_yum_mirror" o la variable ambiental "HASHICORP_YUM_MIRROR":

hashicorp_yum_mirror: https://example.org/hashicorp/yum

Estado para mantener el software de HashiCorp, predeterminado es "present":

hashicorp_software_state: latest

Al instalar los archivos zip binarios de HashiCorp, usa la sintaxis siguiente para la versión del software:

hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1

Usar paquetes de distribución en lugar de archivos ZIP

Cuando está habilitado, usa los paquetes (potencialmente no oficiales) de la distribución en lugar de los archivos ZIP oficiales de HashiCorp, predeterminado es false:

hashicorp_use_distro_packages: true

Actualmente, esta opción se aplica solo a ArchLinux.

Elimina el software de HashiCorp instalado a través de archivos ZIP, predeterminado es false:

hashicorp_purge_zip_releases: true

El repositorio de pruebas yum se puede habilitar mediante:

hashicorp_enable_yum_test_repo: true

Dependencias

N/A

Ejemplo de Playbook

El siguiente ejemplo instalaría el software 'Consul' y 'Vault':

- hosts: servers
  vars:
    hashicorp_install_consul: true
    hashicorp_install_vault: true
  roles:
     - { role: mesaguy.hashicorp }

Gestión de versiones

Actualizar versiones de software predeterminadas

Las versiones de lanzamiento de software predeterminadas están controladas por los archivos 'vars/versions.yml' y 'docker_versions.yml'.

Estos archivos pueden actualizarse manualmente o ejecutando el script scripts/update_versions.

Pruebas

Las pruebas se realizan a través de molecule.

Necesitarás pipenv instalado y docker en ejecución para realizar pruebas.

Inicializa el entorno pipenv ejecutando lo siguiente en el directorio base de este repositorio:

pipenv install

Lo siguiente se puede usar para una validación básica. La primera prueba es una instalación normal y la segunda asegura que la validación GPG funcione:

IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test
IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test -s gpg

Los errores de Selinux generalmente se pueden resolver con:

pipenv run pip uninstall selinux -y; pipenv install

Licencia

MIT Consulta el archivo LICENSE

Información del Autor

Mesaguy

Instalar
ansible-galaxy install mesaguy.hashicorp
Licencia
mit
Descargas
11.6k
Propietario