robertdebock.vault_snapshot
Rol de Ansible vault_snapshot
Configura vault_snapshot en Vault.
GitHub | GitLab | Descargas | Versión |
---|---|---|---|
Ejemplo de Playbook
Este ejemplo se toma de molecule/default/converge.yml
y se prueba en cada envío, solicitud de extracción y lanzamiento.
---
- name: Converge
hosts: all
become: true
gather_facts: true
pre_tasks:
- name: Leer el token desde la máquina remota
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
La máquina necesita estar preparada. En CI, esto se hace utilizando molecule/default/prepare.yml
:
---
- name: Preparar
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: Limpiar controladores
ansible.builtin.meta: flush_handlers
- name: Iniciar Vault
ansible.builtin.service:
name: vault
state: started
- name: Inicializar 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: Almacenar la salida de vault_init_raw como YAML
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- name: Almacenar root_token
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- name: Desbloquear 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
También puede ver una explicación completa y un ejemplo sobre cómo usar estos roles.
Variables del Rol
Los valores predeterminados para las variables están establecidos en defaults/main.yml
:
---
# archivo predeterminado para vault_snapshot
# Establecer la dirección de la instancia de vault. Similar a `VAULT_ADDR`.
vault_snapshot_address: "https://localhost:8200"
# Establecer un token para conectarse a Vault. Similar a `VAULT_TOKEN`.
vault_snapshot_token: ""
# Una lista de instantáneas para configurar. Consulte `molecule/default/converge.yml` para un ejemplo completo.
vault_snapshot_schedules: []
# ¿Debería deshabilitarse la verificación del certificado SSL?
vault_snapshot_ssl_verify: true
Requisitos
- paquetes pip listados en requirements.txt.
Estado de los roles utilizados
Los siguientes roles se utilizan para preparar un sistema. Puede preparar su sistema de otra manera.
Requisito | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
Contexto
Este rol es parte de muchos roles compatibles. Consulte la documentación de estos roles para obtener más información.
Aquí hay un resumen de roles relacionados:
Compatibilidad
Este rol se ha probado en estas imágenes de contenedor:
contenedor | etiquetas |
---|---|
Amazon | Candidate |
Debian | all |
EL | 9 |
Fedora | 39 |
Ubuntu | all |
La versión mínima de Ansible requerida es 2.12, las pruebas se han realizado en:
- La versión anterior.
- La versión actual.
- La versión de desarrollo.
Si encuentra problemas, infórmelos en GitHub.
Licencia
Información del autor
Considere patrocinarme.
ansible-galaxy install robertdebock.vault_snapshot