HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: ansible, git, древа директорий для ролей, linux, best-practice, centos 7.5, rolename/vars, rolename/tasks, скопировать раскладку директорий из репозитория, site.yml, role: common, role: nginx, nginx</p>
1 <p>Теги: ansible, git, древа директорий для ролей, linux, best-practice, centos 7.5, rolename/vars, rolename/tasks, скопировать раскладку директорий из репозитория, site.yml, role: common, role: nginx, nginx</p>
2 <p>На просторах сети есть много гайдов на русском вроде "Учим Ansible с нуля". Но ни в одном из них я не видел, чтобы человека сразу же погружали в best-practice. Хотя бы в плане построение<strong>древа директорий для ролей</strong>. Считаю, что сделать это надо хотя бы потому, что переезд на best-practice может оказаться болезненным для новичков. Сейчас я попытаюсь исправить этот недочёт. Используемая в примерах ОС - Centos 7.5.</p>
2 <p>На просторах сети есть много гайдов на русском вроде "Учим Ansible с нуля". Но ни в одном из них я не видел, чтобы человека сразу же погружали в best-practice. Хотя бы в плане построение<strong>древа директорий для ролей</strong>. Считаю, что сделать это надо хотя бы потому, что переезд на best-practice может оказаться болезненным для новичков. Сейчас я попытаюсь исправить этот недочёт. Используемая в примерах ОС - Centos 7.5.</p>
3 <h2>Разберёмся немного, что за best-practice такой</h2>
3 <h2>Разберёмся немного, что за best-practice такой</h2>
4 <p>Идём по<a>ссылке</a>и читаем:</p>
4 <p>Идём по<a>ссылке</a>и читаем:</p>
5 <p><em>These may not use all of the features in the latest release, but are still an excellent reference!</em></p>
5 <p><em>These may not use all of the features in the latest release, but are still an excellent reference!</em></p>
6 <p><strong>Мораль такова</strong>: всё аккуратно разложено по директориям для вашего же удобства в дальнейшем использовании. Сам<strong>Ansible</strong>понимает, для чего нужна каждая директория. Например, из<strong>rolename/vars</strong>он по умолчанию берёт переменные для роли, а из<strong>rolename/tasks</strong>он берёт основные задачи. Что такое роли можно прочитать, например,<a>ТУТ &gt;&gt;</a></p>
6 <p><strong>Мораль такова</strong>: всё аккуратно разложено по директориям для вашего же удобства в дальнейшем использовании. Сам<strong>Ansible</strong>понимает, для чего нужна каждая директория. Например, из<strong>rolename/vars</strong>он по умолчанию берёт переменные для роли, а из<strong>rolename/tasks</strong>он берёт основные задачи. Что такое роли можно прочитать, например,<a>ТУТ &gt;&gt;</a></p>
7 <h2>Установим Ansbile и GIT</h2>
7 <h2>Установим Ansbile и GIT</h2>
8 <p>Всё есть в стандартных репозиториях:</p>
8 <p>Всё есть в стандартных репозиториях:</p>
9 yum install -y ansible git<p>Проверим установку:</p>
9 yum install -y ansible git<p>Проверим установку:</p>
10 ansible --version &amp;&amp; git --version<p>Далее скопируем раскладку директорий из репозитория, чтобы не создавать руками:</p>
10 ansible --version &amp;&amp; git --version<p>Далее скопируем раскладку директорий из репозитория, чтобы не создавать руками:</p>
11 git clone https://github.com/mattjbarlow/ansible-directory.git.<p>Хотя первый раз, конечно, советую пройти это всё вручную - для закрепления материала. Обязательно зайдите в директорию и изучите её содержимое.</p>
11 git clone https://github.com/mattjbarlow/ansible-directory.git.<p>Хотя первый раз, конечно, советую пройти это всё вручную - для закрепления материала. Обязательно зайдите в директорию и изучите её содержимое.</p>
12 <p>Далее пропишем хост в тестовый инвентаризационный файл:</p>
12 <p>Далее пропишем хост в тестовый инвентаризационный файл:</p>
13 cd ansible-directory echo "192.168.255.1 ansible_ssh_user=root" &gt;&gt; staging<p>Протестируем соединение с тестовым хостом:</p>
13 cd ansible-directory echo "192.168.255.1 ansible_ssh_user=root" &gt;&gt; staging<p>Протестируем соединение с тестовым хостом:</p>
14 ansible -i staging -m ping all<h2>У нас почти всё настроено</h2>
14 ansible -i staging -m ping all<h2>У нас почти всё настроено</h2>
15 <p>Осталось только попробовать на реальном примере:</p>
15 <p>Осталось только попробовать на реальном примере:</p>
16 git clone https://github.com/geerlingguy/ansible-role-nginx.git roles/nginx<p>Перед запуском зайдите в<strong>site.yml</strong>и поменяйте<strong>role: common</strong>на<strong>role: nginx</strong>. Прелесть ролей как раз в том, что вам нужно просто указать имя директории и Ansible всё поймёт сам.</p>
16 git clone https://github.com/geerlingguy/ansible-role-nginx.git roles/nginx<p>Перед запуском зайдите в<strong>site.yml</strong>и поменяйте<strong>role: common</strong>на<strong>role: nginx</strong>. Прелесть ролей как раз в том, что вам нужно просто указать имя директории и Ansible всё поймёт сам.</p>
17 <p><strong>Ну и запускаем нашу роль:</strong></p>
17 <p><strong>Ну и запускаем нашу роль:</strong></p>
18 ansible-playbook -i staging site.yml<p>В итоге на тестовом сервере успешно установлен и настроен<strong>nginx</strong>.</p>
18 ansible-playbook -i staging site.yml<p>В итоге на тестовом сервере успешно установлен и настроен<strong>nginx</strong>.</p>
19  
19