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/12/12 08:38]
val [7.5 Ansible Vault]
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   * Файл из папки \\share\student\val
Line 333: Line 360:
 stages: stages:
   - build   - build
 +  - test
   - push   - push
 #  - deploy #  - deploy
- 
-variables: 
-  DOCKER_TLS_CERTDIR:​ ""​ 
- 
-services: 
-  - name: docker:dind 
-    command: 
-      [ 
-        '​--insecure-registry=server.corpX.un:​5000',​ 
-      ] 
  
 before_script:​ before_script:​
 +  - env
   - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY   - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
  
Line 361: Line 380:
     - docker push $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:   except:
     - tags     - tags
Line 385: Line 414:
     - docker tag $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME     - docker tag $CI_REGISTRY_IMAGE:​$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME
     - docker push $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME     - docker push $CI_REGISTRY_IMAGE:​$CI_COMMIT_REF_NAME
 +
  
 #Deploy: #Deploy:
Line 400: 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 480: Line 507:
 ==== 7.5 Ansible Vault ==== ==== 7.5 Ansible Vault ====
  
-  * [[Сервис Ansible#​ansible-vault]] ​(Settings -> Repository -> Protected Branches - Add Protected Branch -> test)+  * [[Сервис Ansible#​ansible-vault]] ​и GitLab [[Инструмент GitLab#​Пример shell ansible]]
devops1._основные_инструменты.1765517909.txt.gz · Last modified: 2025/12/12 08:38 by val