89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
# Домашнее задание 24
|
||
|
||
## Ansible
|
||
|
||
Для выполнение задания используется vagrant box Ubuntu 22.04
|
||
|
||
|
||
### Создание Vagrantfile
|
||
|
||
Зададим следующие характеристики для VM
|
||
|
||
- CPU - 1
|
||
- Memory - 512mb
|
||
|
||
Пробросим порт 8080 с хостовой машины в гостевую на 8080 порт.
|
||
|
||
После запуска VM в provision пропишем запуск ansible и укажем наш сценарий install_nginx.yml
|
||
|
||
|
||
Готовый [Vagrantfile](Vagrantfile)
|
||
|
||
### Cоздание install_nginx.yml
|
||
|
||
Сценарий для Ansible будет выполнять следующие действия:
|
||
|
||
1. Обновление пакетов
|
||
2. Установка nginx
|
||
- Если установка выполнена успешно, через **notify** nginx будет поставлен в автозагрузку
|
||
3. Создание конфига из простейшего шаблона **nginx_template**, в котором nginx запускается на порту 8080
|
||
- Если создание шаблона произойдет без ошибок, через **notify** nginx будет перезапущен
|
||
|
||
|
||
Готовый [install_nginx.yml](install_nginx.yml)
|
||
|
||
|
||
### Cоздание nginx_template
|
||
|
||
Наипростеший шаблон, при распространение которого через ansible, требуется передать переменную **{{ nginx_port }}**, в которой указать, на каком порту будет запущен Nginx
|
||
|
||
Готовый [nginx_template](nginx_template)
|
||
|
||
### Проверка
|
||
|
||
Положим файлы **Vagrantfile**, **install_nginx.yml** и **nginx_template** в один каталог.
|
||
|
||
Запустим vagrant
|
||
```bash
|
||
alex@ubuntu-pc:~/Документы/16$ vagrant up
|
||
Bringing machine 'ubuntu' up with 'virtualbox' provider...
|
||
==> ubuntu: Importing base box 'ubuntu/jammy64'...
|
||
==> ubuntu: Matching MAC address for NAT networking...
|
||
==> ubuntu: Checking if box 'ubuntu/jammy64' version '20241002.0.0' is up to date...
|
||
==> ubuntu: Setting the name of the VM: 16_ubuntu_1770490800382_68640
|
||
...
|
||
|
||
...
|
||
PLAY [all] *********************************************************************
|
||
|
||
TASK [Gathering Facts] *********************************************************
|
||
ok: [ubuntu]
|
||
|
||
TASK [update] ******************************************************************
|
||
changed: [ubuntu]
|
||
|
||
TASK [install nginx] ***********************************************************
|
||
changed: [ubuntu]
|
||
|
||
TASK [create config nginx] *****************************************************
|
||
changed: [ubuntu]
|
||
|
||
RUNNING HANDLER [restart nginx] ************************************************
|
||
changed: [ubuntu]
|
||
|
||
RUNNING HANDLER [enabled nginx] ************************************************
|
||
ok: [ubuntu]
|
||
|
||
PLAY RECAP *********************************************************************
|
||
ubuntu : ok=6 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||
```
|
||
|
||
Видим что в конце отработал ansible, HANDLER так же выполнены.
|
||
|
||
Проверим в браузере открыв http//127.0.0.1:8080, видим стартовую страницу
|
||
|
||

|
||
|
||
|
||
Все готово!
|