mirror of
https://github.com/Dannecron/netology-devops-gw-infra.git
synced 2025-12-25 23:32:35 +03:00
91 lines
3.4 KiB
Markdown
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.
|