robertdebock.vault_snapshot
Rôle Ansible vault_snapshot
Configurer vault_snapshot sur Vault.
GitHub | GitLab | Téléchargements | Version |
---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque push, demande de tirage et publication.
---
- nom: Converger
hôtes: tous
devenir: vrai
rassembler_faits: vrai
pré_tâches:
- nom: Lire le token à partir de la machine distante
ansible.builtin.slurp:
src: /root/.vault-token
enregistrer: token_raw
rôles:
- rôle: robertdebock.vault_snapshot
vault_snapshot_token: "{{ token_raw['content'] | b64decode }}"
vault_snapshot_ssl_verify: faux
vault_snapshot_schedules:
- nom: horaire
interval_seconds: 3600
retain: 24
path_prefix: /opt/vault/snapshots/
storage_type: local
local_max_space: 1073741824
- nom: horaire-aws
interval_seconds: 3600
retain: 24
path_prefix: /hourly
storage_type: aws-s3
aws_s3_bucket: mon-bucket
aws_s3_region: eu-central-1
aws_access_key_id: some_key
aws_secret_access_key: some_secret
aws_s3_enable_kms: faux
- nom: horaire-azure
interval_seconds: 3600
retain: 24
path_prefix: /hourly/
storage_type: azure-blob
azure_container_name: mon-blob
azure_account_name: some_account
azure_account_key: some_key
La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml
:
---
- nom: Préparer
hôtes: tous
devenir: vrai
rassembler_faits: faux
rôles:
- rôle: robertdebock.bootstrap
- rôle: robertdebock.core_dependencies
- rôle: robertdebock.hashicorp
- rôle: robertdebock.vault
vault_type: ent
vault_hardening_disable_swap: faux
- rôle: 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: vrai
vault_configuration_storage_raft:
path: "/opt/vault/data"
node_id: "{{ ansible_hostname }}"
tâches:
- nom: Flusher les gestionnaires
ansible.builtin.meta: flush_handlers
- nom: Démarrer Vault
ansible.builtin.service:
name: vault
state: commencé
- nom: Initialiser Vault
ansible.builtin.command:
cmd: vault operator init -format=yaml
enregistrer: vault_init_raw
environnement:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: vrai
- nom: Stocker la sortie de vault_init_raw au format YAML
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- nom: Stocker root_token
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- nom: Déverrouiller Vault
ansible.builtin.command:
cmd: vault operator unseal {{ item }}
loop: "{{ vault_init.unseal_keys_b64 }}"
environnement:
VAULT_ADDR: "https://localhost:8200"
VAULT_SKIP_VERIFY: "true"
changed_when: vrai
Voir aussi une explication complète et un exemple sur comment utiliser ces rôles.
Variables de rôle
Les valeurs par défaut pour les variables sont définies dans defaults/main.yml
:
---
# fichier de valeurs par défaut pour vault_snapshot
# Définir l'adresse de l'instance de vault. Semblable à `VAULT_ADDR`.
vault_snapshot_address: "https://localhost:8200"
# Définir un token pour se connecter à Vault. Semblable à `VAULT_TOKEN`.
vault_snapshot_token: ""
# Une liste de snapshots à configurer. Veuillez consulter `molecule/default/converge.yml` pour un exemple complet.
vault_snapshot_schedules: []
# La vérification du certificat SSL doit-elle être désactivée ?
vault_snapshot_ssl_verify: vrai
Exigences
- packages pip listés dans requirements.txt.
État des rôles utilisés
Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système différemment.
Exigence | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
Contexte
Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.
Voici un aperçu des rôles associés :
Compatibilité
Ce rôle a été testé sur ces images de conteneurs:
conteneur | tags |
---|---|
Amazon | Candidate |
Debian | tous |
EL | 9 |
Fedora | 39 |
Ubuntu | tous |
La version minimale d'Ansible requise est 2.12, des tests ont été réalisés sur :
- La version précédente.
- La version actuelle.
- La version de développement.
Si vous rencontrez des problèmes, veuillez les signaler sur GitHub.
Licence
Informations sur l'auteur
Veuillez envisager de me soutenir.
ansible-galaxy install robertdebock.vault_snapshot