ANSIBLE
1) Подключение к клиентам:
- используя username + password
- используя ssh ключ
Для подключения по ssh, в директорию cd /home/user/.ssh копируются ssh-ключи в виде name.pem
2) Создаем inventory файл в директории проекта hosts.txt, в котором прописываются ip-addreses наших
серверов-клиентов в виде:
#------------------------------------------
# servers group name
[name_servers]
# client-host name, client-host ip, user name, ssh-key file, (user password)
name1 ansible_host=192.168.0.1 ansible_user=nameuser ansible_ssh_private_key_file=/home/user/.ssh/name.pem (ansible_pass=password)
#------------------------------------------
3) Запуск осуществляется командой:
# [ansible] [ключ, указывающий на открытие inventory файла] [имя inventory файла] [список запускаемых групп из inventory файла] [указатель на название модуля] [запускаемый модуль]
$ ansible -i hosts.txt all -m ping
При таком запуске будет уточняться использование fingerprint
Чтобы избежать этого, создается файл конфигурации ansible.cfg (рекомендуется создавать в файле проекта)
В нем пишется конфигурация в таком виде:
#-------------------------------------------
[defaults]
host_key_checking = false # отключение проверки fingerprint
inventory = ./hosts.txt # указание inventory файла, дабы не указывать его при запуске ansible
#-------------------------------------------
Теперь можно использовать команду вида:
$ ansible all -m ping
3) Создание playbooks:
playbook - инструкция для ansible по аналогии с dockerfile
Ниже приведен простейший playbook.yml с вызовом модуля ping:
#--------------------------------------------
---
- name: Test connection on servers
hosts: all # group name
become: yes
tasks:
- name: Ping servers
ping:
...
#--------------------------------------------
Запуск производится командой:
# [ansible-playbook] [name of playbook (name.yml)]
$ ansible-playbook playbook.yml
4) Как использовать ansible vault
#---------------------------------------------
$ ansible-vault create mysecret.txt
$ ansible-vault view mysecret.txt
$ ansible-vault edit mysecret.txt
$ ansible-vault rekey mysecret.txt
$ ansible-vault encrypt mysecret.txt
$ ansible-vault decrypt mysecret.txt