вводное
1 2 3 4 5 6 7 8 9 |
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 — будем шифровать этот файл
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
--- - 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
--- - 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 с зашифрованной строкой |