mesaguy.hashicorp
Ansible HashiCorp
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
securely install the latest hashicorp software
ansible-galaxy install mesaguy.hashicorp