add homework 5.4

This commit is contained in:
2022-05-11 10:55:12 +07:00
parent dd9731b3d5
commit c464d8ccbe
29 changed files with 5741 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
Выполнение [домашнего задания](https://github.com/netology-code/virt-homeworks/blob/virt-11/05-virt-04-docker-compose/README.md)
по теме "5.4. Оркестрация группой Docker контейнеров на примере Docker Compose".
## Q/A
### Задача 1
> Создать собственный образ операционной системы с помощью Packer.
>
> Для получения зачета, вам необходимо предоставить:
> - Скриншот страницы, как на слайде из презентации (слайд 37).
Пошаговая инструкция работы с yandex-облаком:
1. Установка `yc`: `curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash`
2. Инициализация конфигурации: `yc init`
3. Проверка, что всё работает:
```shell
yc compute image list
+----+------+--------+-------------+--------+
| ID | NAME | FAMILY | PRODUCT IDS | STATUS |
+----+------+--------+-------------+--------+
+----+------+--------+-------------+--------+
```
4. Создание сети: `yc vpc network create --name net`
5. Создание подсети: `yc vpc subnet create --name my-subnet-a --zone ru-central1-a --range 10.1.2.0/24 --network-name net --description "test subnet for test net"`
6. Копирование примера конфигурации packer [centos-7-base.example.json](./packer/centos-7-base.example.json) в `centos-7-base.json`.
7. Затем нужно заполнить недостающие поля в конфигурации.
8. Запуск валидации конфигурации
```shell
packer validate packer/centos-7-base.json
The configuration is valid.
```
9. Запуск сборки образа `packer build packer/centos-7-base.json`
10. Удаление подсети: `yc vpc subnet delete --name my-subnet-a`
11. Удаление сети: `yc vpc network delete --name net`
**Результат**:
![cloud-images.png](./assets/cloud-images.png)
### Задача 2
> Создать вашу первую виртуальную машину в Яндекс.Облаке.
>
> Для получения зачета, вам необходимо предоставить:
> - Скриншот страницы свойств созданной ВМ
1. Копирование секретов для `terraform` из [variables.tf.example](./terraform/variables.tf.example) в `variables.tf`
2. Затем нужно изменить поля в конфигурации.
3. Инициализировать конфигурацию: `terraform init` (не работает без vpn, при получении данных отдаётся 403 статус код)
4. Просмотреть конфигурацию `terraform plan`
5. Применить конфигурацию к облаку `terraform apply -auto-approve`
**Результат**:
![cloud-vm.png](./assets/cloud-vm.png)
### Задача 3
> Создать ваш первый готовый к боевой эксплуатации компонент мониторинга, состоящий из стека микросервисов.
>
> Для получения зачета, вам необходимо предоставить:
> - Скриншот работающего веб-интерфейса Grafana с текущими метриками
1. Копирование inventory файла для `ansible` из [inventory.example](./ansible/inventory.example) в `inventory`
2. Запуск `ansible`: `cd ansible && ansible-playbook provision.yml`
**Результат**:
![grafana.png](./assets/grafana.png)
### Clean up
Удаление всей инфраструктуры:
1. Удаление ВМ, сетей: `terraform destroy -auto-approve`
2. Удаление образа ОС: `yc compute image delete --id fd8oponkic4t99ecuk8k`