ANSIBLE

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


Report Page