From 5d75550dc6b11a6934b88f510f1ca1650e3539e9 Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 19 Apr 2026 18:22:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b53f074 --- /dev/null +++ b/README.md @@ -0,0 +1,114 @@ +# Домашнее задание 42 + +## Развертывание веб приложения + +Для выполнение задания используется vagrant box Ubuntu 22.04 + +### Создание Vagrantfile + +Зададим следующие характеристики для VM + +- CPU - 1 +- Memory - 1024mb + +С хостовой машины прокинем 3 порт +8080 - 8080 +8081 - 8081 +8082 - 8082 + +Готовый [Vagrantfile](Vagrantfile) + + +### Cоздание ansible.yml + +Сценарий для Ansible будет выполнять следующие действия: + +1. Установка nginx, nodejs, php, mysql, flask +2. Создает базу mysql для wordpress, а так же нового пользователя для wordpress +3. Скачивает wordpress и разархивирует +4. Создает файл wp-config.php на основе wp-config-sample.php, и прописывает настройки базы mysql +5. Создает простой (Hello World!) сайт на flask +6. Запускает flask как сервис flask-hello +7. Создает простой (Hello World!) сайт на nodejs +8. Запускает nodejs как сервис nodejs-hello +9. Настраивает nginx для wordpress (порт 8080) через php-fpn, для flask (порт 8081) и nodejs (порт 8082) как прокси + + +Готовый [ansible.yml](ansible.yml) + + +### Проверка + +Запускаем vagrant +```bash +alex@ubuntu-pc:~/Документы/42$ vagrant up +Bringing machine 'web' up with 'virtualbox' provider... +==> web: Importing base box 'ubuntu/jammy64'... +==> web: Matching MAC address for NAT networking... +==> web: Checking if box 'ubuntu/jammy64' version '20241002.0.0' is up to date... +==> web: Setting the name of the VM: 42_web_1776611376317_27957 +==> web: Clearing any previously set network interfaces... +==> web: Preparing network interfaces based on configuration... + web: Adapter 1: nat +==> web: Forwarding ports... + web: 8080 (guest) => 8080 (host) (adapter 1) + web: 8081 (guest) => 8081 (host) (adapter 1) + web: 8082 (guest) => 8082 (host) (adapter 1) + web: 22 (guest) => 2222 (host) (adapter 1) +==> web: Running 'pre-boot' VM customizations... +==> web: Booting VM... +==> web: Waiting for machine to boot. This may take a few minutes... + web: SSH address: 127.0.0.1:2222 + web: SSH username: vagrant + web: SSH auth method: private key + web: Warning: Connection reset. Retrying... + web: Warning: Connection reset. Retrying... + web: + web: Vagrant insecure key detected. Vagrant will automatically replace + web: this with a newly generated keypair for better security. + web: + web: Inserting generated public key within guest... +... + +... + +TASK [conf nginx wordpress] **************************************************** +changed: [web] + +TASK [conf nginx flask] ******************************************************** +changed: [web] + +TASK [conf nginx nodejs] ******************************************************* +changed: [web] + +TASK [site wordpress enable wordpress] ***************************************** +changed: [web] + +TASK [site flask enable] ******************************************************* +changed: [web] + +TASK [site nodejs enable] ****************************************************** +changed: [web] + +TASK [restart Nginx] *********************************************************** +changed: [web] + +PLAY RECAP ********************************************************************* +web : ok=27 changed=24 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 + +``` + +Пробуем открыть адрес http://127.0.0.1:8080 на хостовой машине +![42_1](images/42_1.png) +Видим страинцу приветствия wordpress + +Открываем адрес http://127.0.0.1:8081 +![42_2](images/42_2.png) +Видим Hello World на flask + +Открываем адрес http://127.0.0.1:8082 +![42_3](images/42_3.png) +Видим Hello World на nodejs + +Задание полностью выполнено! +