<===

ProNotes

2026-01-01 15:37:53
Ansible Vault позволяет шифровать пароли/ключи прямо в репозитории, так что в git лежит только шифротекст, а расшифровка идёт на лету при запуске playbook.[1][2]

## Базовый сценарий: отдельный vault‑файл

1. Создать файл с секретами:

```bash
ansible-vault create group_vars/all/vault.yml
```

Внутри, в YAML:

```yaml
ovpn_passphrase: "мой_секретный_пароль"
db_password: "another_secret"
```

Команда попросит пароль для vault‑файла.[2][3]

2. Подключить файл в плейбуке:

```yaml
---
- name: OVPN deploy
  hosts: all
  become: true

  vars_files:
    - group_vars/all/vault.yml

  tasks:
    - name: Decrypt ovpn archive
      ansible.builtin.shell: >
        gpg --batch --yes
        --passphrase '{{ ovpn_passphrase }}'
        -d '{{ ovpn_tmp_dir }}/{{ ovpn_gpg_file }}'
        > '{{ ovpn_tmp_dir }}/{{ ovpn_tar_file }}'
      no_log: true
```

Все обращения к `{{ ovpn_passphrase }}` будут прозрачно расшифрованы.[1][2]

3. Запуск playbook с запросом vault‑пароля:

```bash
ansible-playbook site.yml --ask-vault-pass
```

Либо через файл пароля:

```bash
echo 'очень_длинный_vault_пароль' > ~/.ansible_vault_pass
chmod 600 ~/.ansible_vault_pass

ansible-playbook site.yml --vault-password-file ~/.ansible_vault_pass
``` 



## Шифрование существующих файлов

- Зашифровать уже существующий vars‑файл:

```bash
ansible-vault encrypt group_vars/all/vault.yml
```

- Расшифровать (если надо отредактировать вне Vault):

```bash
ansible-vault decrypt group_vars/all/vault.yml
```

- Редактировать «на месте» (без decrypt/encrypt вручную):

```bash
ansible-vault edit group_vars/all/vault.yml
``` 



## Точечное шифрование переменной (encrypt_string)

Когда не хочется шифровать весь файл, можно зашифровать только строку:

```bash
ansible-vault encrypt_string --name 'ovpn_passphrase'
```

Дальше вводишь пароль Vault, затем значение секрета, Ctrl+D. На выходе получишь блок вида:

```yaml
ovpn_passphrase: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          323134343935383935633863643637343332383061346166...
```

Этот блок вставляешь в обычный vars‑файл.[4][5][6]

## Практические советы

- Пароли/ключи всегда храни в Vault или внешнем секрет‑менеджере, ни одного пароля в чистом YAML.[7][8][9]
- На всех задачах, которые используют секреты (пароли БД, GPG‑пароли и т.п.), ставь `no_log: true`, чтобы они не попадали в stdout/лог Ansible.[10][2]
- Файл с vault‑паролем (`--vault-password-file`) не коммить в git; держать его только локально/в CI‑секретах.[8][7]

Если покажешь структуру своего репозитория (roles/, group_vars/, host_vars/), можно сразу накидать готовую схему `vault.yml` под твои ovpn/gpg/docker‑секреты.

[1](https://www.digitalocean.com/community/tutorials/how-to-use-vault-to-protect-sensitive-ansible-data)
[2](https://docs.ansible.com/ansible/latest/vault_guide/index.html)
[3](https://docs.ansible.com/ansible/latest/cli/ansible-vault.html)
[4](https://www.freekb.net/Article?id=2426)
[5](https://docs.ansible.com/ansible/latest/vault_guide/vault_encrypting_content.html)
[6](https://stackoverflow.com/questions/55849706/ansible-vault-encrypt-string)
[7](https://spacelift.io/blog/ansible-vault)
[8](https://teachmeansible.com/blog/ansible-vault-secrets-management)
[9](https://betterstack.com/community/guides/linux/ansible-secrets/)
[10](https://www.automatesql.com/blog/what-is-inline-vault-encryption-a-guide-to-using-ansibe-vault-encrypt_string)
[11](https://www.youtube.com/watch?v=JUybKMSUcqI)
[12](https://www.youtube.com/watch?v=-W_VuYt_qQw)
[13](https://www.youtube.com/watch?v=xeBnAbmt3Wk)
[14](https://www.youtube.com/watch?v=DueHdN23TcM)
[15](https://svenvg.com/posts/ansible-essentials-managing-secrets-with-vault/)
[16](https://docs.ansible.com/ansible/2.8/user_guide/vault.html)
[17](https://dev.to/lovestaco/managing-secrets-in-ansible-with-vault-3481)
[18](https://www.reddit.com/r/ansible/comments/10f9foy/new_to_ansible_how_do_i_use_vault/)
[19](https://www.reddit.com/r/ansible/comments/15fcjjp/is_there_any_point_in_using_vault_to_secure/)
[20](https://www.env0.com/blog/protecting-secrets-with-ansible-vault)
← Previous Next →
Back to list