robertdebock.vault_snapshot
Rola Ansible vault_snapshot
Skonfiguruj vault_snapshot w Vault.
GitHub | GitLab | Pobrania | Wersja |
---|---|---|---|
Przykładowy Playbook
Ten przykład pochodzi z molecule/default/converge.yml
i jest testowany przy każdym przesłaniu, prośbie o ściągnięcie, oraz wydaniu.
---
- name: Połączenie
hosts: all
become: true
gather_facts: true
pre_tasks:
- name: Odczytaj token z maszyny zdalnej
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: co godzinę
interval_seconds: 3600
retain: 24
path_prefix: /opt/vault/snapshots/
storage_type: lokalny
local_max_space: 1073741824
- name: co godzinę-aws
interval_seconds: 3600
retain: 24
path_prefix: /co-godzinę
storage_type: aws-s3
aws_s3_bucket: moja-koszyk
aws_s3_region: eu-central-1
aws_access_key_id: jakiś_klucz
aws_secret_access_key: jakieś_tajny
aws_s3_enable_kms: false
- name: co godzinę-azure
interval_seconds: 3600
retain: 24
path_prefix: /co-godzinę/
storage_type: azure-blob
azure_container_name: moja-blob
azure_account_name: jakiś_konto
azure_account_key: jakiś_klucz
Maszyna musi być przygotowana. W CI odbywa się to za pośrednictwem molecule/default/prepare.yml
:
---
- name: Przygotowanie
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: Opróżnij handler
ansible.builtin.meta: flush_handlers
- name: Uruchom Vault
ansible.builtin.service:
name: vault
state: started
- name: Zainicjalizuj 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: Zapisz wyjście vault_init_raw jako YAML
ansible.builtin.set_fact:
vault_init: "{{ vault_init_raw.stdout | from_yaml }}"
- name: Zapisz root_token
ansible.builtin.copy:
content: "{{ vault_init.root_token }}"
dest: /root/.vault-token
owner: root
group: root
mode: "0640"
- name: Otwórz 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
Zobacz także pełne wyjaśnienie i przykład jak używać tych ról.
Zmienne roli
Domyślne wartości dla zmiennych są ustawione w defaults/main.yml
:
---
# domyślny plik dla vault_snapshot
# Ustaw adres instancji vault. Podobnie jak `VAULT_ADDR`.
vault_snapshot_address: "https://localhost:8200"
# Ustaw token do połączenia z Vault. Podobnie jak `VAULT_TOKEN`.
vault_snapshot_token: ""
# Lista snapshotów do skonfigurowania. Zobacz `molecule/default/converge.yml` dla pełnego przykładu.
vault_snapshot_schedules: []
# Czy weryfikacja certyfikatu SSL powinna być wyłączona?
vault_snapshot_ssl_verify: true
Wymagania
- pakiety pip wymienione w requirements.txt.
Stan używanych ról
Poniższe role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.
Wymaganie | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies | ||
robertdebock.hashicorp | ||
robertdebock.vault | ||
robertdebock.vault_configuration |
Kontekst
Ta rola jest częścią wielu kompatybilnych ról. Zobacz dokumentację tych ról w celu uzyskania dalszych informacji.
Oto przegląd powiązanych ról:
Kompatybilność
Ta rola została przetestowana na tych obrazach kontenerów:
kontener | tagi |
---|---|
Amazon | Kandydat |
Debian | wszystkie |
EL | 9 |
Fedora | 39 |
Ubuntu | wszystkie |
Minimalna wymagana wersja Ansible to 2.12, testy zostały przeprowadzone na:
- Poprzedniej wersji.
- Bieżącej wersji.
- Wersji deweloperskiej.
Jeśli znajdziesz problemy, zgłoś je na GitHubie.
Licencja
Informacje o autorze
Zważ, aby wspierać mnie.
ansible-galaxy install robertdebock.vault_snapshot