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