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

4.6 KiB
Raw Blame History

Дипломная работа

Репозиторий содержит конфигурацию terraform для поднятия инфраструктуры для выполнения дипломной работы.

Использование

Необходимо последовательно выполнить все шаги, описанные ниже. Каждый ansible-playbook описывает один шаг.

Инициализация конфигурации terraform

Запуск:

ansible-playbook --ask-vault-pass -i ansible/terraform_init terraform_init.yml

После этого возможно использование команд terraform из директории terraform.

NOTES:

  • время жизни токена ограничено, поэтому при истечении данного времени необходимо заново запустить данный playbook.

Деплой инфраструктуры

Из директории terraform:

terraform plan
terraform apply

Инициализация конфигурации kubespray

Запуск:

ansible-playbook -i ansible/kubespray_init kubespray_init.yml

Запуск kubespray: установка кластера kubernetes

Запуск:

ansible-playbook -i ansible/kubespray/inventory.ini vendor/kubespray/cluster.yml

Инициализация конфигурации kubectl

Запуск:

ansible-playbook -i ansible/kubectl_init kubectl_init.yml

Деплой сервисов

Приложение

репозиторий

helm upgrade -i simple-app k8s/helm/simple-app

kube-prometheus-stack

helm-чарт

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm upgrade -i monitoring prometheus-community/kube-prometheus-stack -f k8s/helm/kube-prometheus-stack/values.yml

Atlantis

документация

helm upgrade -i --set "config.github.user=<access_token>" --set "config.github.token=<token_secret>" --set "config.github.secret=<webhook_secret>" atlantis k8s/helm/atlantis

где <access_token>, <token_secret> - это данные персонального access-токена, созданного на github, а <webhook_secret> - строка, которая должна совпадать в конфигурации webhook и atlantis.

Jenkins

документация

helm upgrade -i --set "docker.dockerHubUser=<dockerHubUser>" --set "docker.dockerHubPassword=<dockerHubPassword>" jenkins k8s/helm/jenkins

Необходимые плагины:

Необходимая конфигурация:

  • Автоматически прописывать known_hosts
  • Добавить секрет с названием github-key с именем пользователя и ssh-ключом к github
  • Настроить облачную конфигурацию воркеров для kubernetes и убрать запуск воркеров на master-ноде
  • Создать новый pipeline-проект для обработки push-эвентов по всем git-веткам со скриптом jenkins/ref.jenkinsfile.
  • Создать новый pipeline-проект для обработки создания git-тэгов со скриптом jenkins/tag.jenkinsfile.