Files
netology-devops-gw-infra/readme.md
2023-03-22 10:31:17 +07:00

91 lines
3.4 KiB
Markdown

## Дипломная работа
Репозиторий содержит конфигурацию 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.token=<access_token>" --set "atlantis.config.github.secret=<token_secret>" atlantis k8s/helm/atlantis
```
где `<access_token>`, `<token_secret>` - это данные персонального access-токена, созданного на github.