Ansible
Ansible
Ansible
1. [our_servers]
2. #можно просто указать сервер, его IP
3. 192.168.10.10
4. #можно присвоить имя, указать пользователя и т.д.
5. server1 ansible_host=192.168.0.20 ansible_user=vagrant ansible_pass=vagrant
6. server2 ansible_host=192.168.0.21 ansible_user=vagrant ansible_ssh_private_key_file=~/.ssh/id_rsa.pub
1. [defaults]
2. # строчка которая указывает файл с серверами по умолчанию
3. inventory = ~/ansible/hosts
4. # строчка которая отменяет проверку первичного подключения по ssh (yes/no)
5. host_key_checking = false
2
YAML формат
нельзя применять "TAB" как пробел и необходимо четко соблюдать расположение элементов друг над
другом.
3
YAML формат
1. ---
2. 1. ---
3. - petua 2.
4. nick: petik 3. - petua: { nick: petik, position: developer, skills: ['python', 'php'] }
5. position: developer 4.
4
где что лежит
5
начинаем работу
1. cd ~
2. git init ansible
3. mkdir ./ansible/playbooks
4. cd ./ansible/playbooks
5. nano some_task.yml
6. git add .
7. git commit -m “some_task added”
6
структура каталогов
https://github.com/mattjbarlow/ansible-directory
● roles/
● production # inventory file for production servers ● common/ # this hierarchy represents a "role"
● staging # inventory file for staging environment ● tasks/ #
● ● main.yml # <-- tasks file (can include smaller files)
● group_vars/ ● handlers/ #
● group1 # here we assign variables to particular groups ● main.yml # <-- handlers file
● host_vars/ ● templates/ # <-- files for use with the template resource
● hostname1 # if systems need specific variables, put them here ● ntp.conf.j2 # <------- templates end in .j2
● library/ # if any custom modules, put them here (optional) ● files/ #
● filter_plugins/ # if any custom filter plugins, put them here (optional) ● bar.txt # <-- files for use with the copy resource
● site.yml # master playbook ● foo.sh # <-- script files for use with the script resource
● webservers.yml # playbook for webserver tier ● vars/ #
● dbservers.yml # playbook for dbserver tier ● main.yml # <-- variables associated with this role
● defaults/ #
● main.yml # <-- default lower priority variables for this role
● meta/ #
● main.yml # <-- role dependencies
7
небесполезное
ansible-inventory --list
ansible-inventory --graph
export ANSIBLE_NOCOWS=1
и очень поможет
https://docs.ansible.com/ansible/latest/reference_appendices/faq.html
8
Место для вопросов