robertdebock.vault_snapshot
Ansibleロール vault_snapshot
Vaultのvault_snapshotを設定します。
GitHub | GitLab | ダウンロード | バージョン |
---|---|---|---|
例のプレイブック
この例はmolecule/default/converge.yml
から取得され、各プッシュ、プルリクエスト、およびリリースでテストされています。
---
- name: Converge
hosts: all
become: true
gather_facts: true
pre_tasks:
- name: リモートマシンからトークンを読み込む
ansible.builtin.slurp:
src: /root/.vault-token
register: token_raw
roles:
- role: robertdebock.vault_snapshot
vault_snapshot_token: "{{ token_raw['content'] | b64decode }}"
vault_snapshot_ssl_verify: false
vault_snapshot_schedules:
- name: hourly
interval_seconds: 3600
retain: 24
path_prefix: /opt/vault/snapshots/
storage_type: local
local_max_space: 1073741824
- name: hourly-aws
interval_seconds: 3600
retain: 24
path_prefix: /hourly
storage_type: aws-s3
aws_s3_bucket: my-bucket
aws_s3_region: eu-central-1
aws_access_key_id: some_key
aws_secret_access_key: some_secret
aws_s3_enable_kms: false
- name: hourly-azure
interval_seconds: 3600
retain: 24
path_prefix: /hourly/
storage_type: azure-blob
azure_container_name: my-blob
azure_account_name: some_account
azure_account_key: some_key
マシンを準備する必要があります。CIではmolecule/default/prepare.yml
を使用して行います:
---
- name: Prepare
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
- role: robertdebock.hashicorp
- role: robertdebock.vault
vault_type: ent
vault_hardening_disable_swap: false
- role: robertdebock.vault_configuration
vault_configuration_license: "{{ lookup('ansible.builtin.env', 'VAULT_LICENSE') }}"
vault_configuration_listener_tcp:
address: "127.0.0.1:8200"
cluster_address: "127.0.0.1:8201"
tls_disable: true
vault_configuration_storage_raft:
path: "/opt/vault/data"
node_id: "{{ ansible_hostname }}"
tasks:
- name: ハンドラーをフラッシュ
ansible.builtin.meta: flush_handlers
- name: Vaultを開始
ansible.builtin.service:
name: vault
state: started
- name: Vaultを初期化
ansible.builtin.command:
cmd: vault operator init -format=yaml
register: vault_init_raw
environment:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: true
- name: vault_init_raw出力をYAMLとして保存
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- name: root_tokenを保存
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- name: Vaultのアンシール
ansible.builtin.command:
cmd: vault operator unseal {{ item }}
loop: "{{ vault_init.unseal_keys_b64 }}"
environment:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: true
これらのロールの使用方法については、完全な説明と例を参照してください。
ロール変数
変数のデフォルト値はdefaults/main.yml
に設定されています。
---
# vault_snapshotのデフォルトファイル
# Vaultインスタンスのアドレスを設定します。`VAULT_ADDR`に似ています。
vault_snapshot_address: "https://localhost:8200"
# Vaultに接続するためのトークンを設定します。`VAULT_TOKEN`に似ています。
vault_snapshot_token: ""
# 構成するスナップショットのリスト。完全な例については`molecule/default/converge.yml`を参照してください。
vault_snapshot_schedules: []
# SSL証明書の検証を無効にするべきか?
vault_snapshot_ssl_verify: true
要件
- requirements.txtにリストされているpipパッケージ。
使用するロールの状態
次のロールを使用してシステムの準備を行います。別の方法でシステムを準備することもできます。
要件 | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
コンテキスト
このロールは多くの互換性のあるロールの一部です。さらなる情報については、これらのロールのドキュメントを参照してください。
関連するロールの概要:
互換性
このロールは以下のコンテナイメージでテストされています。
コンテナ | タグ |
---|---|
Amazon | Candidate |
Debian | all |
EL | 9 |
Fedora | 39 |
Ubuntu | all |
必要なAnsibleの最小バージョンは2.12で、次のテストが行われています:
- 前のバージョン。
- 現在のバージョン。
- 開発バージョン。
問題が見つかった場合は、GitHubに登録してください。
ライセンス
著者情報
インストール
ansible-galaxy install robertdebock.vault_snapshot
ライセンス
apache-2.0
ダウンロード
78
所有者
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.