mesaguy.hashicorp
Ansible HashiCorp
Instaluj oprogramowanie HashiCorp używając oficjalnych pakietów, plików ZIP oraz pakietów dystrybucyjnych.
Instaluje i aktualizuje następujące oprogramowanie HashiCorp:
- Boundary
- Consul
- Szablon Consul
- EnvConsul
- Nomad
- Packer
- Sentinel
- Serf
- Terraform
- Vagrant
- Vault
- Pomocnik Vault SSH
- Waypoint
Ten moduł może w przyszłości zarządzać niektórymi programami HashiCorp, ale obecnie skupia się wyłącznie na instalacji oprogramowania w sposób bezpieczny, spójny i powtarzalny.
Wymagania
- Ansible >= 2.9.0
- Fakty muszą być zbierane (gather_facts: true)
Zmienne roli
Ogólne
Domyślnie ten moduł nie instaluje żadnego oprogramowania. Każdy program musi być wyraźnie włączony.
Można zdefiniować następujące zmienne, aby zainstalować konkretne oprogramowanie 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
Alternatywnie, oprogramowanie HashiCorp można określić używając zmiennej "hashicorp_install" podczas wywoływania tego modułu. Kiedy "hashicorp_install" jest określone, zmienne hashicorp_install_* powyżej będą zignorowane. Ta składnia wspiera również opcjonalne określenie wersji:
- name: Dołącz mesaguy.hashicorp, aby zainstalować konkretne oprogramowanie
include_role:
name: mesaguy.hashicorp
vars:
hashicorp_install:
# Zainstaluj Consul w wersji 1.0.0
- consul==1.0.0
# Zainstaluj najnowsze wersje packer i vault
- packer
- vault
Instalacje plików ZIP HashiCorp
Domyślnie ten moduł instaluje pliki ZIP HashiCorp zawierające prekompilowane binaria przy użyciu poniższych zmiennych.
Oprogramowanie jest instalowane w tym podstawowym katalogu. Na przykład, binarka consul w wersji 1.0.0 zostanie zainstalowana w /opt/hashicorp/consul/1.0.0/consul.
hashicorp_base_dir: /opt/hashicorp
Tworzone są tutaj symbole do każdego binarnego pliku:
hashicorp_software_link_dir: /usr/local/bin
Weryfikacja podpisów GPG w wszystkich wydaniach plików ZIP (domyślnie: fałsz). To wymaga, aby polecenie "gpg" było dostępne. Jeśli publiczny klucz GPG wydania HashiCorp jest brakujący, ten moduł automatycznie doda publiczny klucz GPG do pierścienia GPG użytkownika "root":
hashicorp_check_gpg_signatures: true
Usunięcie wszystkich oprócz najnowszego wydania oprogramowania (domyślnie: fałsz):
hashicorp_purge_old_releases: true
Zmień użytkownika, który jest właścicielem oprogramowania, domyślnie na opcje poniżej:
hashicorp_user: root
hashicorp_group: root
Jeśli dostępne jest lokalne lustro oprogramowania HashiCorp, można ustawić zmienne środowiskowe "HASHICORP_MIRROR" i/lub "HASHICORP_GPG_MIRROR" lub poniższe zmienne ansible. Zmienna "hashicorp_gpg_mirror" wpływa tylko na to, skąd są pobierane pliki podpisów GPG:
hashicorp_mirror: https://example.org/hashicorp hashicorp_gpg_mirror: https://example.org/hashicorp
Użyj pakietów HashiCorp zamiast plików ZIP
Gdy jest włączone, używa oficjalnych pakietów RPM/DEB HashiCorp zamiast oficjalnych plików ZIP, domyślnie: fałsz:
hashicorp_use_official_packages: true
Ta opcja dotyczy następujących wersji dystrybucji i architektur:
Dystrybucja | Wersja | Architektury |
---|---|---|
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 |
Usunięcie oprogramowania HashiCorp zainstalowanego z plików ZIP, domyślnie: fałsz:
hashicorp_purge_zip_releases: true
Lokalne lustro apt można określić przy użyciu zmiennej ansible "hashicorp_apt_mirror" lub zmiennej środowiskowej "HASHICORP_APT_MIRROR":
hashicorp_apt_mirror: https://example.org/hashicorp/apt
Lokalne lustro yum można określić przy użyciu zmiennej ansible "hashicorp_yum_mirror" lub zmiennej środowiskowej "HASHICORP_YUM_MIRROR":
hashicorp_yum_mirror: https://example.org/hashicorp/yum
Stan, w jakim ma pozostać oprogramowanie HashiCorp, domyślnie "present":
hashicorp_software_state: latest
Podczas instalacji plików ZIP binarnych HashiCorp, wersja oprogramowania używa następującej składni:
hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1
Użyj pakietów dystrybucyjnych zamiast plików ZIP
Gdy jest włączone, używa pakietów dystrybucyjnych (potencjalnie nieoficjalnych) zamiast oficjalnych plików ZIP HashiCorp, domyślnie: fałsz:
hashicorp_use_distro_packages: true
Obecnie ta opcja dotyczy tylko ArchLinux.
Usunięcie oprogramowania HashiCorp zainstalowanego z plików ZIP, domyślnie: fałsz:
hashicorp_purge_zip_releases: true
Repozytorium testowe yum można włączyć za pomocą:
hashicorp_enable_yum_test_repo: true
Zależności
N/D
Przykładowy Playbook
Poniższy przykład zainstaluje oprogramowanie 'Consul' i 'Vault':
- hosts: servers
vars:
hashicorp_install_consul: true
hashicorp_install_vault: true
roles:
- { role: mesaguy.hashicorp }
Zarządzanie wersjami
Aktualizacja domyślnych wersji oprogramowania
Domyślne wersje oprogramowania kontrolowane są przez pliki 'vars/versions.yml' i 'docker_versions.yml'.
Te pliki można aktualizować ręcznie lub uruchamiając skrypt scripts/update_versions
.
Testowanie
Testy są uruchamiane za pomocą Molecule.
Będziesz potrzebować pipenv zainstalowanego oraz działającego docker, aby móc przetestować.
Zainicjuj środowisko pipenv, uruchamiając poniższe polecenie w głównym katalogu repozytorium:
pipenv install
Poniższe można użyć do podstawowej weryfikacji. Pierwszy testuje normalną instalację, a drugi scenariusz zapewnia, że weryfikacja GPG działa:
IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test
IMAGE_DISTRO=debian IMAGE_TAG=debian-10 pipenv run molecule test -s gpg
Błędy Selinux można zazwyczaj rozwiązać za pomocą:
pipenv run pip uninstall selinux -y; pipenv install
Licencja
MIT
Zobacz plik LICENSE
Informacje o autorze
Mesaguy
securely install the latest hashicorp software
ansible-galaxy install mesaguy.hashicorp