mesaguy.hashicorp

Ansible HashiCorp

Molekül-Tests Letztes Tag Ansible Galaxy MIT-Lizenz

Installieren Sie HashiCorp Software mit offiziellen Paketen, offiziellen ZIP-Dateien und Distributionspaketen.

Installiert und aktualisiert die folgende HashiCorp Software:

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

Diese Rolle kann irgendwann einige HashiCorp Software verwalten, aber der aktuelle Fokus liegt ausschließlich auf der Installation von HashiCorp Software auf sichere, konsistente und reproduzierbare Weise.

Anforderungen

  • Ansible >= 2.9.0
  • Fakten müssen gesammelt werden (gather_facts: true)

Rollenvariablen

Allgemein

Standardmäßig installiert diese Rolle keine Software. Jedes Softwarepaket muss speziell aktiviert werden.

Die folgenden Variablen können definiert werden, um spezifische HashiCorp Software zu installieren:

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

Alternativ kann HashiCorp Software bei der Verwendung dieser Rolle mit der Variablen "hashicorp_install" spezifiziert werden. Wenn "hashicorp_install" angegeben wird, werden die obigen hashicorp_install_*-Variablen ignoriert. Diese Syntax unterstützt auch die optionale Angabe einer Version:

- name: Inkludieren von mesaguy.hashicorp zur Installation spezifischer Software
  include_role:
    name: mesaguy.hashicorp
  vars:
    hashicorp_install:
      # Installiere Consul Version 1.0.0
      - consul==1.0.0
      # Installiere die neuesten Versionen von Packer und Vault
      - packer
      - vault

HashiCorp ZIP-Datei-Installationen

Standardmäßig installiert diese Rolle die ZIP-Dateien von HashiCorp mit vorcompilierten Binärdateien mithilfe der folgenden Variablen.

Software wird in diesem Basisverzeichnis installiert. Zum Beispiel würde die Binärdatei der Consul-Version 1.0.0 in /opt/hashicorp/consul/1.0.0/consul installiert.

hashicorp_base_dir: /opt/hashicorp

Symlinks zu jeder Binärdatei werden hier erstellt:

hashicorp_software_link_dir: /usr/local/bin

Überprüfen Sie die GPG-Signaturen aller veröffentlichten ZIP-Dateien (Standard: false). Dies erfordert, dass der "gpg"-Befehl verfügbar ist. Wenn der öffentliche GPG-Veröffentlichungsschlüssel von HashiCorp fehlt, wird dieser Schlüssel automatisch zum GPG-Schlüsselring des "root"-Benutzers hinzugefügt:

hashicorp_check_gpg_signatures: true

Ältere Softwareversionen außer der neuesten löschen (Standard: false):

hashicorp_purge_old_releases: true

Ändern Sie den Benutzer, der die Software besitzt. Standardmäßig auf die folgenden Optionen:

hashicorp_user: root
hashicorp_group: root

Wenn ein lokaler Spiegel der HashiCorp Software verfügbar ist, können Sie die Umgebungsvariablen "HASHICORP_MIRROR" und/oder "HASHICORP_GPG_MIRROR" oder die folgenden Ansible-Variablen verwenden. Die Variable "hashicorp_gpg_mirror" beeinflusst nur, wo GPG-Signaturdateien abgerufen werden:

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

Verwenden Sie HashiCorp-Pakete anstelle von ZIP-Dateien

Wenn aktiviert, verwenden Sie die offiziellen RPM/DEB-Pakete von HashiCorp anstelle der offiziellen ZIP-Dateien von HashiCorp. Standardmäßig auf false:

hashicorp_use_official_packages: true

Diese Option gilt für die folgenden Distributionsversionen und Architekturen:

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

Alte HashiCorp-Software, die über ZIP-Dateien installiert wurde, löschen. Standardmäßig auf false:

hashicorp_purge_zip_releases: true

Ein lokaler apt-Spiegel kann mit der Ansible-Variablen "hashicorp_apt_mirror" oder der Umgebungsvariablen "HASHICORP_APT_MIRROR" angegeben werden:

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

Ein lokaler yum-Spiegel kann mit der Ansible-Variablen "hashicorp_yum_mirror" oder der Umgebungsvariablen "HASHICORP_YUM_MIRROR" angegeben werden:

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

Die zu haltende HashiCorp-Softwareversion. Standardmäßig auf "present":

hashicorp_software_state: latest

Wenn Sie die Binär-ZIP-Dateien von HashiCorp installieren, verwenden Sie die folgende Syntax für die Softwareversion:

hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1

Verwenden Sie Distributionspakete anstelle von ZIP-Dateien

Wenn aktiviert, verwenden Sie die möglicherweise nicht offiziellen Pakete der Distribution anstelle der offiziellen ZIP-Dateien von HashiCorp. Standardmäßig auf false:

hashicorp_use_distro_packages: true

Momentan gilt diese Option nur für ArchLinux.

Alte HashiCorp-Software, die über ZIP-Dateien installiert wurde, löschen. Standardmäßig auf false:

hashicorp_purge_zip_releases: true

Das yum-Testrepository kann aktiviert werden über:

hashicorp_enable_yum_test_repo: true

Abhängigkeiten

N/A

Beispiel-Playbook

Das folgende Beispiel würde die Software 'Consul' und 'Vault' installieren:

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

Versionsverwaltung

Aktualisieren der Standardsoftwareversionen

Die Standardversionen der Softwareveröffentlichungen werden durch die Dateien 'vars/versions.yml' und 'docker_versions.yml' gesteuert.

Diese Dateien können manuell aktualisiert werden oder durch Ausführen des scripts/update_versions-Skripts.

Testen

Die Tests werden über Molecule durchgeführt.

Sie benötigen pipenv und docker, um testen zu können.

Initialisieren Sie die pipenv-Umgebung, indem Sie Folgendes im Basisverzeichnis dieses Repos ausführen:

pipenv install

Die folgende Befehle können zur grundlegenden Validierung verwendet werden. Der erste testet eine normale Installation und das zweite Szenario stellt sicher, dass die GPG-Validierung funktioniert:

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-Fehler können in der Regel wie folgt gelöst werden:

pipenv run pip uninstall selinux -y; pipenv install

Lizenz

MIT Siehe die LIZENZ Datei

Autorinformationen

Mesaguy

Installieren
ansible-galaxy install mesaguy.hashicorp
GitHub Repository
Lizenz
mit
Downloads
11.6k
Besitzer