Operations

Создаём секреты с помощью Ansible Vault

Привет, друзья. В этом посте я опишу процесс конфигурирования секретов для Ansible. Поскольку нам нужно войти в Docker Registry, нам нужно иметь возможность поставить наши секреты в коде. Чтобы избежать раскрытия учетных данных, мы будем использовать Ansible Vault хранилище для шифрования этих данных.

Создаём файл с именем secrets.yaml (или любым другим) с нашими учётными данными внутри:

---
docker_registry_username: yourusername
docker_registry_password: yourpassword
docker_registry_email: youremail@example.com

Запускаем ansible-vault. Он (ansible-vault) спросит пароль для защиты наших секретов:

$ ansible-vault encrypt secrets.yml 
New Vault password:
Confirm New Vault password: 
Encryption successful

После завершения операции шифрования этот файл (secrets.yaml) будет выглядеть примерно так:

$ANSIBLE_VAULT;1.1;AES256
36626666333261633834313438336264383534353036633135333837633035303432366136353632
3839336362303934393462643665366438653432633232300a336264353063316136663433343435
39393231333864663230373836303865616163353034323262333035363336333537373265333932
3863343532636161660a653435623135336436656533346632626132656130633136356565303139
3338

Затем в playbook’е используем, примерно такой код:

---
- hosts: cluster
  become: yes
  become_user: root
  remote_user: vagrant
  gather_facts: false
  vars_files:
    - secrets.yaml

  tasks:
  - name: Login to docker registry
    docker_login:
      username: "{{ docker_registry_username }}"
      password: "{{ docker_registry_password }}"
      email: "{{ docker_registry_email }}"

Profit!