robertdebock.vault_snapshot

Ansible-Rolle vault_snapshot

Konfigurieren Sie vault_snapshot auf Vault.

GitHub GitLab Downloads Version
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

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 Build Status GitHub Build Status GitLab
robertdebock.core_dependencies Build Status GitHub Build Status GitLab
robertdebock.hashicorp Build Status GitHub Build Status GitLab
robertdebock.vault Build Status GitHub Build Status GitLab
robertdebock.vault_configuration Build Status GitHub Build Status GitLab

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: dependencies

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

Apache-2.0.

Autoreninformationen

robertdebock

Bitte ziehen Sie in Betracht, mich zu unterstützen.

Über das Projekt

Configure vault_snapshot on Vault.

Installieren
ansible-galaxy install robertdebock.vault_snapshot
GitHub Repository
Lizenz
apache-2.0
Downloads
78
Besitzer
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.