Ansible - andyceo/documentation GitHub Wiki
Заменить в файле конфигурации ansible:
hash_behaviour = merge
Подробно описана в многочисленных туториалах. Важно! Чтобы файлик модуля был без расширения .py, т.е. имя файла должно в точности соответствовать имени модуля, иначе Ansible не поймет.
Ссылки:
- 3 ways to build docker images with ansible
- docker - manage docker containers
- docker_image - manage docker images
- docker_login - Manage Docker registry logins
-
В корне ansible-репозитория создадим файл с мастер-паролем (ключем) для Vault, с помощью которого мы будем шифровать файлы:
touch .vault_pass.txt cat .vault_pass.txt # 123qwe - ваш пароль -
Добавим этот файл в
.gitignore, чтобы случайно не закоммитить мастер-пароль в репозиторий:echo '.vault_pass.txt' >> .gitignore -
Добавим файл
.vault_pass.txtв файлansible.cfg, чтобы не нужно было каждый раз при запуске плейбука вводить мастер-пароль для Vault:echo 'vault_password_file = .vault_pass.txt' >> ansible.cfg -
Разделим файл с переменными хоста (
host_vars/hostname) на два файла в одноименной директории:mv host_vars/hostname host_vars/hostname_vars mkdir host_vars/hostname mv host_vars/hostname_vars host_vars/hostname/vars touch host_vars/hostname/vault -
Выберем переменные для переноса в vault и перенесем их в файл
host_vars/hostname/vaultс префиксомvault, т.е. если переменная в файлеhost_vars/hostname/varsназывается так:ansible_password: 123qwe, то нужно объявить в файлеhost_vars/hostname/vaultпеременнуюvault_ansible_password: 123qwe, а в файлеhost_vars/hostname/varsсослаться на переменную изhost_vars/hostname/vault:cat host_vars/hostname/vars # -- # # ansible_password: "{{ vault_ansible_password }}" # cat host_vars/hostname/vault # --- # # vault_ansible_password: 123qwe # -
Шифруем файл с секретными паролями:
ansible-vault encrypt host_vars/hostname/vault -
Коммитим все изменения в ваш ansible-репозиторий:
git add . git commit -m "Encrypt sensitive hostname vars with Vault" -
Просмотр файла:
ansible-vault view foo.yml -
Редактирование файла:
ansible-vault edit foo.yml
Ссылки:
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook ...
or for one-time usage:
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook ...
In /etc/ansible/ansible.cfg (global system level) or ~/.ansible.cfg (user level) or ./ansible.cfg (repository level) set:
[defaults]
host_key_checking = False
- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"
Ссылка: How to ignore ansible SSH authenticity checking?
-
Отпинговать все известные хосты:
ansible all -i hosts -m ping