mesaguy.hashicorp

Ansible HashiCorp

Molecule tests 最新のタグ Ansible Galaxy MITライセンス

公式パッケージ、公式ZIPファイル、ディストリビューションパッケージを使用してHashiCorpのソフトウェアをインストールします。

以下のHashiCorpソフトウェアをインストールおよび更新します。

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

このロールは最終的には一部のHashiCorpソフトウェアを管理するかもしれませんが、現在の重点はHashiCorpソフトウェアの安全で一貫した再現可能なインストールのみにあります。

要件

  • Ansible >= 2.9.0
  • ファクトは収集する必要があります(gather_facts: true)

ロール変数

一般

デフォルトでは、このロールはソフトウェアをインストールしません。各ソフトウェアは特に有効にする必要があります。

特定の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

あるいは、ロールを呼び出すときに「hashicorp_install」変数を使用してHashiCorpソフトウェアを指定できます。「hashicorp_install」が指定されると、上記のhashicorp_install_*変数は無視されます。この構文は、バージョンを指定することもサポートします:

- name: 特定のソフトウェアをインストールするためにmesaguy.hashicorpを含める
  include_role:
    name: mesaguy.hashicorp
  vars:
    hashicorp_install:
      # Consulバージョン1.0.0をインストール
      - consul==1.0.0
      # packerとvaultの最新バージョンをインストール
      - packer
      - vault

HashiCorp ZIPファイルインストール

デフォルトでは、このロールは事前にコンパイルされたバイナリを含むHashiCorpのZIPファイルを使用してインストールします。

ソフトウェアはこの基本ディレクトリにインストールされます。例えば、consulバージョン1.0.0のバイナリは/opt/hashicorp/consul/1.0.0/consulにインストールされます。

hashicorp_base_dir: /opt/hashicorp

各バイナリへのシンボリックリンクはここに作成されます:

hashicorp_software_link_dir: /usr/local/bin

すべてのリリースZIPファイルのGPG署名を検証します(デフォルト:false)。これには「gpg」コマンドが必要です。HashiCorp GPGリリース公開鍵が欠けている場合、このロールは自動的にGPG公開鍵を「root」ユーザーのGPGキーチェーンに追加します:

hashicorp_check_gpg_signatures: true

最新のソフトウェアリリースを除いてすべてを削除します(デフォルト:false):

hashicorp_purge_old_releases: true

ソフトウェアの所有者を変更します。デフォルトは以下のオプションです:

hashicorp_user: root
hashicorp_group: root

ローカルミラーが利用可能な場合、「HASHICORP_MIRROR」や「HASHICORP_GPG_MIRROR」環境変数、または以下のansible変数を使用できます。「hashicorp_gpg_mirror」変数はGPG署名ファイルのソースを指定するだけです:

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

ZIPファイルの代わりにHashiCorpパッケージを使用

有効にすると、HashiCorpの公式ZIPファイルの代わりにHashiCorpの公式RPM/DEBパッケージを使用します。デフォルトはfalseです:

hashicorp_use_official_packages: true

このオプションは以下のディストリビューションリリースおよびアーキテクチャに適用されます:

ディストリビューション リリース アーキテクチャ
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 Eoan (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

ZIPファイル経由でインストールされたHashiCorpソフトウェアを削除します。デフォルトはfalseです:

hashicorp_purge_zip_releases: true

ローカルAPTミラーは「hashicorp_apt_mirror」ansible変数または「HASHICORP_APT_MIRROR」環境変数を使用して指定できます:

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

ローカルYUMミラーは「hashicorp_yum_mirror」ansible変数または「HASHICORP_YUM_MIRROR」環境変数を使用して指定できます:

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

HashiCorpソフトウェアの状態を保持します。デフォルトは「present」です:

hashicorp_software_state: latest

HashiCorpのバイナリZIPファイルをインストールする際に、ソフトウェアバージョンは以下の構文を使用して指定します:

hashicorp_nomad_version: 1.0.1
hashicorp_vault_version: 1.0.1

ZIPファイルの代わりにディストリビューションパッケージを使用

有効にすると、HashiCorpの公式ZIPファイルの代わりにディストリビューションの(場合によっては非公式の)パッケージを使用します。デフォルトはfalseです:

hashicorp_use_distro_packages: true

現在、このオプションはArchLinuxのみ適用されます。

ZIPファイル経由でインストールされたHashiCorpソフトウェアを削除します。デフォルトはfalseです:

hashicorp_purge_zip_releases: true

YUMテストリポジトリを有効にすることができます:

hashicorp_enable_yum_test_repo: true

依存関係

該当なし

例プレイブック

以下の例では「Consul」と「Vault」ソフトウェアをインストールします:

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

リリース管理

デフォルトのソフトウェアバージョンの更新

デフォルトのソフトウェアリリースバージョンは「vars/versions.yml」と「docker_versions.yml」ファイルによって制御されています。

これらのファイルは手動で更新するか、scripts/update_versionsスクリプトを実行して更新できます。

テスト

テストはmoleculeを使用して実行されます。

テストを行うには、pipenvがインストールされており、dockerが実行されている必要があります。

このリポジトリのベースディレクトリで以下を実行してpipenv環境を初期化します:

pipenv install

以下を使用して基本的な検証ができます。最初のテストは通常のインストールをテストし、2番目のシナリオはGPG検証が機能することを確認します:

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のエラーは以下のコマンドで一般的に解決できます:

pipenv run pip uninstall selinux -y; pipenv install

ライセンス

MIT
ライセンスファイルを参照してください。

作者情報

Mesaguy

インストール
ansible-galaxy install mesaguy.hashicorp
ライセンス
mit
ダウンロード
11.6k
所有者