mesaguy.hashicorp

Ansible HashiCorp

Molecule tests Latest tag Ansible Galaxy MIT License

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

Zainstaluj
ansible-galaxy install mesaguy.hashicorp
Licencja
mit
Pobrania
11.6k
Właściciel