Files
netology-devops-gw-infra/readme.md

92 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Дипломная работа
Репозиторий содержит конфигурацию terraform для поднятия инфраструктуры для выполнения [дипломной работы](https://github.com/Dannecron/netology-devops/blob/main/src/graduate_work/readme.md).
## Использование
Необходимо последовательно выполнить все шаги, описанные ниже. Каждый ansible-playbook описывает один шаг.
### Инициализация конфигурации terraform
* [ansible playbook `terraform_init.yml`](/terraform_init.yml)
* [ansible inventory](/ansible/terraform_init)
Запуск:
```shell
ansible-playbook --ask-vault-pass -i ansible/terraform_init terraform_init.yml
```
После этого возможно использование команд `terraform` из директории [terraform](/terraform).
__NOTES__:
* время жизни токена ограничено, поэтому при истечении данного времени необходимо заново запустить данный playbook.
### Деплой инфраструктуры
Из директории [terraform](./terraform):
```shell
terraform plan
terraform apply
```
### Инициализация конфигурации kubespray
* [ansible playbook `kubespray_init.yml`](/kubespray_init.yml)
* [ansible inventory](/ansible/kubespray_init)
Запуск:
```shell
ansible-playbook -i ansible/kubespray_init kubespray_init.yml
```
### Запуск kubespray: установка кластера kubernetes
* [ansible playbook `vendor/kubespray/cluster.yml`](/vendor/kubespray/cluster.yml) (будет создан на этапе конфигурации kubespray)
* [ansible inventory](/ansible/kubespray) (сам файл `inventory.ini` будет создан на этапе конфигурации kubespray)
Запуск:
```shell
ansible-playbook -i ansible/kubespray/inventory.ini vendor/kubespray/cluster.yml
```
### Инициализация конфигурации kubectl
* [ansible playbook `kubectl_init.yml`](/kubectl_init.yml)
* [ansible inventory](/ansible/kubectl_init) (сам файл `inventory` будет создан на этапе конфигурации kubespray)
Запуск:
```shell
ansible-playbook -i ansible/kubectl_init kubectl_init.yml
```
### Деплой сервисов
* [kube-prometheus-stack](https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack)
```shell
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install monitoring prometheus-community/kube-prometheus-stack -f k8s/helm/kube-prometheus-stack/values.yml
```
* [приложение](https://github.com/Dannecron/parcel-example-neko)
```shell
helm install simple-app k8s/helm/simple-app
```
или, если чарт уже задеплоен
```shell
helm upgrade simple-app k8s/helm/simple-app
```
* [atlantis](https://www.runatlantis.io)
```shell
helm install --set "atlantis.config.github.user=<access_token>" --set "atlantis.config.github.token=<token_secret>" --set "atlantis.config.github.secret=<webhook_secret>" atlantis k8s/helm/atlantis
```
где `<access_token>`, `<token_secret>` - это данные персонального access-токена, созданного на github,
а `<webhook_secret>` - строка, которая должна совпадать в конфигурации webhook и atlantis.