mesaguy.hashicorp

Ansible HashiCorp

Tests Molecule Dernière version Ansible Galaxy Licence MIT

Installez le logiciel HashiCorp en utilisant des packages officiels, des fichiers zip officiels et des packages de distribution.

Installe et met à jour les logiciels suivants de HashiCorp :

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

Ce rôle peut éventuellement gérer certains logiciels de HashiCorp, mais l'objectif actuel est exclusivement d'installer les logiciels de HashiCorp de manière sécurisée, cohérente et reproductible.

Exigences

  • Ansible >= 2.9.0
  • Les faits doivent être collectés (gather_facts: true)

Variables de rôle

Générique

Par défaut, ce rôle n'installe aucun logiciel. Chaque logiciel doit être spécifiquement activé.

Les variables suivantes peuvent être définies pour installer des logiciels spécifiques 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

Alternativement, le logiciel HashiCorp peut être spécifié en utilisant la variable "hashicorp_install" lors de l'appel à ce rôle. Lorsque "hashicorp_install" est spécifié, les variables hashicorp_install_* ci-dessus seront ignorées. Cette syntaxe permet aussi de spécifier une version :

- name: Inclure mesaguy.hashicorp pour installer un logiciel spécifique
  include_role:
    name: mesaguy.hashicorp
  vars:
    hashicorp_install:
      # Installer Consul version 1.0.0
      - consul==1.0.0
      # Installer les dernières versions de packer et vault
      - packer
      - vault

Installations de fichiers ZIP HashiCorp

Par défaut, ce rôle installe les fichiers ZIP de HashiCorp contenant des binaires précompilés en utilisant les variables ci-dessous.

Le logiciel est installé dans ce répertoire de base. Par exemple, le binaire de consul version 1.0.0 serait installé dans /opt/hashicorp/consul/1.0.0/consul.

hashicorp_base_dir: /opt/hashicorp

Des liens symboliques vers chaque binaire sont créés ici :

hashicorp_software_link_dir: /usr/local/bin

Vérifiez les signatures GPG sur tous les fichiers ZIP de release (par défaut : false). Cela nécessite que la commande "gpg" soit disponible. Si la clé publique GPG de release HashiCorp est manquante, ce rôle ajoutera automatiquement la clé publique GPG au trousseau de clés GPG de l'utilisateur "root" :

hashicorp_check_gpg_signatures: true

Purger tout sauf la dernière release logicielle (par défaut : false) :

hashicorp_purge_old_releases: true

Changer l'utilisateur qui possède le logiciel, par défaut les options ci-dessous :

hashicorp_user: root
hashicorp_group: root

Si un miroir local des logiciels HashiCorp est disponible, vous pouvez définir les variables d'environnement "HASHICORP_MIRROR" et/ou "HASHICORP_GPG_MIRROR" ou les variables ansible suivantes. La variable "hashicorp_gpg_mirror" n'affecte que l'endroit d'où les fichiers de signature GPG sont récupérés :

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

Utiliser les packages HashiCorp au lieu des fichiers ZIP

Lorsqu'il est activé, utilisez les packages RPM/DEB officiels de HashiCorp au lieu des fichiers ZIP officiels de HashiCorp, par défaut : false :

hashicorp_use_official_packages: true

Cette option s'applique aux versions de distribution et architectures suivantes :

Distribution Version Architectures
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

Purger les logiciels HashiCorp installés via des fichiers ZIP, par défaut : false :

hashicorp_purge_zip_releases: true

Un miroir apt local peut être spécifié en utilisant la variable ansible "hashicorp_apt_mirror" ou la variable d'environnement "HASHICORP_APT_MIRROR" :

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

Un miroir yum local peut être spécifié en utilisant la variable ansible "hashicorp_yum_mirror" ou la variable d'environnement "HASHICORP_YUM_MIRROR" :

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

État pour conserver le logiciel HashiCorp, par défaut "present" :

hashicorp_software_state: latest

Lorsque vous installez les fichiers zip binaires de HashiCorp, spécifiez la version du logiciel en utilisant la syntaxe suivante :

hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1

Utiliser les packages de la distribution au lieu des fichiers ZIP

Lorsqu'il est activé, utilisez les packages (potentiellement non officiels) de la distribution au lieu des fichiers ZIP officiels de HashiCorp, par défaut : false :

hashicorp_use_distro_packages: true

Actuellement, cette option s'applique uniquement à ArchLinux.

Purger les logiciels HashiCorp installés via des fichiers ZIP, par défaut : false :

hashicorp_purge_zip_releases: true

Le dépôt de test yum peut être activé via :

hashicorp_enable_yum_test_repo: true

Dépendances

N/A

Exemple de Playbook

L'exemple suivant installerait les logiciels 'Consul' et 'Vault' :

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

Gestion des versions

Mise à jour des versions par défaut des logiciels

Les versions par défaut des releases logicielles sont contrôlées par les fichiers 'vars/versions.yml' et 'docker_versions.yml'.

Ces fichiers peuvent être mis à jour manuellement ou en exécutant le script scripts/update_versions.

Tests

Les tests sont exécutés via molecule.

Vous aurez besoin de pipenv installé et de docker en cours d'exécution pour tester.

Initialisez l'environnement pipenv en exécutant ce qui suit dans le répertoire principal de ce dépôt :

pipenv install

Ce qui suit peut être utilisé pour une validation de base. Le premier teste une installation normale et le deuxième scénario s'assure que la validation GPG fonctionne :

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

Les erreurs Selinux peuvent généralement être résolues avec :

pipenv run pip uninstall selinux -y; pipenv install

Licence

MIT Voir le fichier LICENCE

Informations sur l'auteur

Mesaguy

Installer
ansible-galaxy install mesaguy.hashicorp
Licence
mit
Téléchargements
11.6k
Propriétaire