robertdebock.vault_snapshot
Ansible-Rolle vault_snapshot
Konfigurieren Sie vault_snapshot auf Vault.
GitHub | GitLab | Downloads | Version |
---|---|---|---|
Beispiel-Playbook
Dieses Beispiel stammt aus molecule/default/converge.yml
und wird bei jedem Push, Pull-Request und Release getestet.
---
- name: Konvergieren
hosts: alle
become: true
gather_facts: true
pre_tasks:
- name: Token von der Remote-Maschine lesen
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: stündlich
interval_seconds: 3600
retain: 24
path_prefix: /opt/vault/snapshots/
storage_type: lokal
local_max_space: 1073741824
- name: stündlich-aws
interval_seconds: 3600
retain: 24
path_prefix: /stündlich
storage_type: aws-s3
aws_s3_bucket: mein-bucket
aws_s3_region: eu-central-1
aws_access_key_id: einige_schlüssel
aws_secret_access_key: einige_geheimnisse
aws_s3_enable_kms: false
- name: stündlich-azure
interval_seconds: 3600
retain: 24
path_prefix: /stündlich/
storage_type: azure-blob
azure_container_name: mein-blob
azure_account_name: einige_kontoinformationen
azure_account_key: einige_schlüssel
Die Maschine muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml
:
---
- name: Vorbereiten
hosts: alle
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: Handler leeren
ansible.builtin.meta: flush_handlers
- name: Vault starten
ansible.builtin.service:
name: vault
state: started
- name: Vault initialisieren
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 Ausgabe als YAML speichern
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- name: root_token speichern
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- name: Vault entschlüsseln
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
Siehe auch eine vollständige Erklärung und Beispiel, wie man diese Rollen verwendet.
Rollen-Variablen
Die Standardwerte für die Variablen sind in defaults/main.yml
festgelegt:
---
# Standarddatei für vault_snapshot
# Setzen Sie die Adresse der Vault-Instanz. Ähnlich wie `VAULT_ADDR`.
vault_snapshot_address: "https://localhost:8200"
# Setzen Sie ein Token zur Verbindung mit Vault. Ähnlich wie `VAULT_TOKEN`.
vault_snapshot_token: ""
# Eine Liste von Snapshots, die konfiguriert werden sollen. Bitte schauen Sie sich `molecule/default/converge.yml` für ein vollständiges Beispiel an.
vault_snapshot_schedules: []
# Soll die Überprüfung des SSL-Zertifikats deaktiviert werden?
vault_snapshot_ssl_verify: true
Anforderungen
- pip-Pakete, die in requirements.txt aufgeführt sind.
Status der verwendeten Rollen
Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch auf andere Weise vorbereiten.
Anforderung | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
Kontext
Diese Rolle ist Teil vieler kompatibler Rollen. Schauen Sie sich die Dokumentation dieser Rollen für weitere Informationen an.
Hier ist eine Übersicht über verwandte Rollen:
Kompatibilität
Diese Rolle wurde auf folgenden Container-Images getestet:
Container | Tags |
---|---|
Amazon | Candidate |
Debian | alle |
EL | 9 |
Fedora | 39 |
Ubuntu | alle |
Die Mindestversion von Ansible ist 2.12. Tests wurden mit folgenden Versionen durchgeführt:
- Die vorherige Version.
- Die aktuelle Version.
- Die Entwicklungs-Version.
Wenn Sie Probleme finden, melden Sie diese bitte auf GitHub.
Lizenz
Autoreninformationen
Bitte ziehen Sie in Betracht, mich zu unterstützen.
ansible-galaxy install robertdebock.vault_snapshot