User Tools

Site Tools


devops1._основные_инструменты

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devops1._основные_инструменты [2025/09/20 19:36]
val [7.4 Развертывание инфраструктуры с использованием Terraform]
devops1._основные_инструменты [2026/02/10 11:40] (current)
val [Теория]
Line 19: Line 19:
  
   * [[https://​landscape.cncf.io/​]]   * [[https://​landscape.cncf.io/​]]
 +  * [[https://​habr.com/​ru/​companies/​nixys/​articles/​514098/​|С чего начать DevOps?]]
   * [[https://​dzen.ru/​a/​ZVIBk2kT0ntemhwK|Дорожная карта DevOps-инженера в 2023 году]]   * [[https://​dzen.ru/​a/​ZVIBk2kT0ntemhwK|Дорожная карта DevOps-инженера в 2023 году]]
   * Ссылки в разделе [[Сервис Git]]   * Ссылки в разделе [[Сервис Git]]
Line 120: Line 121:
 === 2.1 Собираем docker контейнер === === 2.1 Собираем docker контейнер ===
  
-  * [[Технология Docker#​Установка]] Docker из базового репозитория на **server** и из репозитория вендора на **gate**+  * [[Технология Docker#​Установка]] Docker из базового репозитория на **server** и из репозитория вендора на **gate** ​(!!! Обратитесь к преподавателю по поводу версии !!!)
  
 !!! Методическая рекомендация,​ запустить установку Golang на gate из этой лабораторной работы 2.1.3 !!! Методическая рекомендация,​ запустить установку Golang на gate из этой лабораторной работы 2.1.3
Line 324: Line 325:
   * [[Технология Docker#​Обзор и удаление]] (преподавателю можно всех) образов c gate   * [[Технология Docker#​Обзор и удаление]] (преподавателю можно всех) образов c gate
   * Отключаем [[Технология Docker#​Insecure Private Registry]]   * Отключаем [[Технология Docker#​Insecure Private Registry]]
 +  * Для загрузки docker:dind может понадобиться [[Технология Docker#​Настройка registry-mirrors]] хоста на котором работает gitlab-runner
  
   * Повторяем [[Инструмент GitLab#​Установка в виде контейнера]] gitlab-runner на gate   * Повторяем [[Инструмент GitLab#​Установка в виде контейнера]] gitlab-runner на gate
   * Используем [[Инструмент GitLab#​Регистрация DinD]] для добавления runner в проект gowebd   * Используем [[Инструмент GitLab#​Регистрация DinD]] для добавления runner в проект gowebd
   * Добавляем необходимые для DinD элементы конфигурации в [[Инструмент GitLab#​Пример CI с использованием контейнеров]]   * Добавляем необходимые для DinD элементы конфигурации в [[Инструмент GitLab#​Пример CI с использованием контейнеров]]
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod5_pract.mp4|Запись практикума]] (длительность:​ 23 минуты)
 +
 +<​code>​
 +gate#
 +
 +docker stop gitlab-runner
 +
 +apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
 +
 +apt autoremove
 +
 +rm /​etc/​apt/​sources.list.d/​docker.sources
 +
 +apt update
 +
 +apt install docker.io
 +
 +docker run -d --name gitlab-runner --restart always \
 +  -v /​srv/​gitlab-runner/​config:/​etc/​gitlab-runner \
 +  -v /​var/​run/​docker.sock:/​var/​run/​docker.sock \
 +  gitlab/​gitlab-runner:​latest
 +</​code>​
 +
 +  * Файл из папки \\share\student\val
 +<​code>​
 +stages:
 +  - build
 +  - test
 +  - push
 +#  - deploy
 +
 +before_script:​
 +  - env
 +  - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
 +
 +Build:
 +  stage: build
 +  script:
 +    - docker pull $CI_REGISTRY_IMAGE:​latest || true
 +    - >
 +      docker build
 +      --pull
 +      --cache-from $CI_REGISTRY_IMAGE:​latest
 +      --tag $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA
 +      .
 +    - docker push $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA
 +
 +  except:
 +    - tags
 +
 +Smoke test:
 +  stage: test
 +  script:
 +    - MY_ID=$(docker run -d --rm $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA)
 +    - MY_IP=$(docker inspect -f '​{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'​ $MY_ID)
 +    - docker run --rm alpine/curl -sS $MY_IP
 +    - docker stop $MY_ID
 +  except:
 +    - tags
 +
 +Push latest:
 +  variables:
 +    GIT_STRATEGY:​ none
 +  stage: push
 +  only:
 +    - main
 +  script:
 +    - docker pull $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA
 +    - docker tag $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:​latest
 +    - docker push $CI_REGISTRY_IMAGE:​latest
 +
 +Push tag:
 +  variables:
 +    GIT_STRATEGY:​ none
 +  stage: push
 +  only:
 +    - tags
 +  script:
 +    - docker pull $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA
 +    - docker tag $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME
 +    - docker push $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME
 +
 +
 +#Deploy:
 +#  variables:
 +#    VER: "​$CI_COMMIT_REF_NAME"​
 +#  stage: deploy
 +#  only:
 +#    - tags
 +#  trigger:
 +#    project: student/​gowebd-k8s
 +</​code>​
   * Увеличиваем версию и наблюдаем сборку образа с тэгом commit hash   * Увеличиваем версию и наблюдаем сборку образа с тэгом commit hash
   * Можно продемонстрировать Lint test, добавив лишнюю переменную в коде   * Можно продемонстрировать Lint test, добавив лишнюю переменную в коде
Line 333: Line 430:
   * Используем Git тэги ([[Сервис Git#​Обновление сетевого репозитория из локального]] или Code->​Tags) для указания версии Docker образов (практикум,​ в конце запустить установку MiniKube)   * Используем Git тэги ([[Сервис Git#​Обновление сетевого репозитория из локального]] или Code->​Tags) для указания версии Docker образов (практикум,​ в конце запустить установку MiniKube)
  
-===== Практикум ===== 
- 
-  * [[https://​val.bmstu.ru/​~val/​pract/​dev1/​dev1_mod5_pract.mp4|Запись практикума]] (длительность:​ 23 минуты) 
  
 ==== Вопросы ==== ==== Вопросы ====
Line 413: Line 507:
 ==== 7.5 Ansible Vault ==== ==== 7.5 Ansible Vault ====
  
-  * [[Сервис Ansible#​ansible-vault]]+  * [[Сервис Ansible#​ansible-vault]] и GitLab [[Инструмент GitLab#​Пример shell ansible]]
devops1._основные_инструменты.1758386193.txt.gz · Last modified: 2025/09/20 19:36 by val