вводное
ansible-vault create mysecret.txt - создание специального зашифрованного файла для хранения секретов (AES256) (редактор vim) ansible-vault view mysecret.txt - посмотреть зашифрованный файл (просто cat) ansible-vault edit mysecret.txt - редактировать зашифрованный файл (редактор vim) ansible-vault encrypt playbook_vault.yml - шифруем файл playbook_vault.yml (AES256) ansible-vault decrypt playbook_vault.yml - расшифровываем файл playbook_vault.yml ansible-playbook playbook_vault.yml --ask-vault-pass - запуск зашифрованного playbook, ansible попросит ввести пароль ansible-playbook playbook_vault.yml --vault-password-file mypass.txt - запуск зашифрованного playbook, ansible будет искать пароль в mypass.txt (пароль просто записан текстом)
playbook_vault.yml — будем шифровать этот файл
---
- name: vault playbook
hosts: all
become: yes
vars:
admin_pass: Pass123
tasks:
- name: Install package tree
yum: name=tree state=present
- name: Create Config File
copy:
dest: "/home/secret/myconfig.conf"
content: |
port = 9092
log = 7days
home = /home/secret/
user = admin
password = {{ admin_pass }}
...
Шифрование строк в ansible
ansible-vault encrypt_string - шифрование строки
ansible-vault encrypt_string --stdin-name "Mypassword" - шифрование строки
New Vault password: у нас спрашивают для пароль для расшифровки, ввел 1
Confirm New Vault password: вводим пароль для расшифровки еще раз 1
Reading plaintext input from stdin. (ctrl-d to end input) нажимаем Ctrl+d
Pass123 - это мы шифруем
Mypassword: !vault |
$ANSIBLE_VAULT;1.1;AES256
39633633373832373034633265323832353636363733643431636535346535643532643439386435
6638306639306430363664633036386332313133373231390a386338373232373765353964373634
35363336353962646137663631366265336362323431393263356436313935373735366465363936
3265633730376163390a376564336565316330393261373931356339656164366162633839666463
6337
Encryption successful
Нас интересует вот это
!vault |
$ANSIBLE_VAULT;1.1;AES256
39633633373832373034633265323832353636363733643431636535346535643532643439386435
6638306639306430363664633036386332313133373231390a386338373232373765353964373634
35363336353962646137663631366265336362323431393263356436313935373735366465363936
3265633730376163390a376564336565316330393261373931356339656164366162633839666463
6337
echo -n "$%^SecretWord&&^%" | ansible-vault encrypt_string - еще один вариант шифровать строку
New Vault password:
Confirm New Vault password:
Reading plaintext input from stdin. (ctrl-d to end input)
!vault |
$ANSIBLE_VAULT;1.1;AES256
37343432306532653463666138393336396366303664613332373337323730623034663639336530
3561333338623638343532396130636461356638643931640a303436613561343634363965373863
62663935313362363535663064316635643636613535386438366239623265633633663066396237
6430396435323739370a343964613933633964353937336437346536656364313738323130613836
35613038326338633439623063396264303961313639376466363332323362623866
Encryption successful
Шифрование строки в plabook.yml
---
- name: vault playbook
hosts: all
become: yes
vars:
admin_pass: !vault |
$ANSIBLE_VAULT;1.1;AES256
39633633373832373034633265323832353636363733643431636535346535643532643439386435
6638306639306430363664633036386332313133373231390a386338373232373765353964373634
35363336353962646137663631366265336362323431393263356436313935373735366465363936
3265633730376163390a376564336565316330393261373931356339656164366162633839666463
6337
tasks:
- name: Install package tree
yum: name=tree state=present
- name: Create Config File
copy:
dest: "/home/secret/myconfig.conf"
content: |
port = 9092
log = 7days
home = /home/secret/
user = admin
password = {{ admin_pass }}
...
ansible-playbook playbook_vault.yml --ask-vault-pass - запуск playbook с зашифрованной строкой