User Tools

Site Tools


самый_простой_пример_ci_cd

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
самый_простой_пример_ci_cd [2023/02/12 19:42]
val [Шаг 2. Разворачиваем сервис Squid]
самый_простой_пример_ci_cd [2023/02/13 08:46] (current)
val
Line 1: Line 1:
 ====== Самый простой пример CI/CD ====== ====== Самый простой пример CI/CD ======
 +
 +  * [[https://​habr.com/​ru/​post/​716454/​]]
  
 Однажды подслушано:​ Однажды подслушано:​
Line 33: Line 35:
 В настройках системы назначьте не менее 4096 МБ основной памяти (4GB RAM), подключите сетевой адаптер "​мостом"​ к сетевой карте Вашего компьютера (хост системы),​ и запустите VM. В настройках системы назначьте не менее 4096 МБ основной памяти (4GB RAM), подключите сетевой адаптер "​мостом"​ к сетевой карте Вашего компьютера (хост системы),​ и запустите VM.
  
-Проведите инсталляцию системы,​ в большинстве экранов можно оставить значения по умолчанию (GUI не обязателен) установите сервис ​ssh. Можно оставить вариант автоматического (через сервис dhcp) назначения ip параметров. После финальной перезагрузки,​ подключитесь к консоли системы и узнайте назначенный ей ip адрес командой ip a.+Проведите инсталляцию системы,​ в большинстве экранов можно оставить значения по умолчанию (GUI не обязателен) установите сервис ​SSH. Можно оставить вариант автоматического (через сервис dhcp) назначения ip параметров. После финальной перезагрузки,​ подключитесь к консоли системы и узнайте назначенный ей ip адрес командой ip a.
  
-Если используете мой образ, то нужно подключиться к VM после запуска (учетная запись student/​password),​ поднять привилегии,​ настроить получение ip параметров по dhcp и активировать интерфейс,​ выполнив команды:​+Если используете мой образ, то нужно подключиться к VM после запуска (учетная запись student/​password),​ поднять привилегии,​ настроить получение ip параметров по dhcpактивировать интерфейс ​и выяснить назначенный системе ip, выполнив команды:​
  
 <​code>​ <​code>​
Line 53: Line 55:
 </​code>​ </​code>​
  
-Последняя инструкция дана ​"на всякий случай", ​для исключения ​возможных ​предупреждений о невозможности получить ip по hostname (выполнить ее можно на 2-м шаге, скопировав после подключения к VM по SSH).+Последняя инструкция дана для исключения предупреждений о невозможности получить ip по hostname ​сервисов sudo и proxy Squid (выполнить ее можно на 2-м шаге, скопировав после подключения к VM по SSH).
  
  
 ===== Шаг 2. Разворачиваем сервис Squid ===== ===== Шаг 2. Разворачиваем сервис Squid =====
  
-Для удобства копирования команд из статьи,​ подключитесь к VM используя ​ssh клиент. Если у Вас Windows на домашнем компьютере,​ можно использовать PuTTY:+Для удобства копирования команд из статьи,​ подключитесь к VM используя ​SSH клиент. Если у Вас Windows на домашнем компьютере,​ можно использовать PuTTY:
  
 https://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​latest.html https://​www.chiark.greenend.org.uk/​~sgtatham/​putty/​latest.html
  
  
-Установите Squid, отредактируйте файлы конфигурации (для нашего примера будет удобно использовать вариант,​ при котором proxy будет "​пускать"​ только на определенные сайты, что позволит легко протестировать работу сервиса), ​проверьте отсутствие синтаксических ошибок и перезапустите сервис,​ выполнив команды:​+Установите Squid, отредактируйте файлы конфигурации (для нашего примера будет удобно использовать вариант,​ при котором proxy будет "​пускать"​ только на определенные сайты, что позволит легко протестировать работу сервиса), ​убедитесь в отсутствии синтаксических ошибок и перезапустите сервис,​ выполнив команды:​
  
 <​code>​ <​code>​
Line 87: Line 89:
 </​code>​ </​code>​
  
-Для тестирования сервиса настройте браузер на хост системе,​ например Firefox ​+Для тестирования сервиса настройте браузер на хост системе,​ напримерFirefox ​
  
 https://​www.mozilla.org/​ru/​firefox/​new/​ https://​www.mozilla.org/​ru/​firefox/​new/​
Line 99: Line 101:
 ===== Шаг 3. Устанавливаем GitLab =====  ===== Шаг 3. Устанавливаем GitLab ===== 
  
-Установите GitLab используя официальное руководство+Установите GitLabиспользуя официальное руководство
  
 https://​about.gitlab.com/​install/#​debian https://​about.gitlab.com/​install/#​debian
Line 113: Line 115:
 </​code>​ </​code>​
  
-Подключаемся к GitLab в браузере с хост машины по указанному при инсталляции EXTERNAL_URL учетной запись root и паролем,​ который нужно скопировать из этого ​файла:+Подключаемся к GitLab в браузере с хост машиныпо указанному при инсталляции EXTERNAL_URLучетной записью root и паролем,​ который нужно скопировать из файла:
  
 <​code>​ <​code>​
Line 127: Line 129:
 </​code>​ </​code>​
  
-Для упрощения примера не будем настраивать электронную почту в VM, поэтому,​ сразу после создания ("​Create User") учетной записи,​ перейдите в ее редактирования ("​Edit"​),​ придумайте,​ запомните и дважды укажите пароль (потребуют хороший пароль:​) после чего, сохраните изменения ("Save сhanges"​)+Для упрощения примеране будем настраивать электронную почту в VM, поэтому,​ сразу после создания ("​Create User") учетной записи,​ перейдите в ее редактирования ("​Edit"​),​ придумайте,​ запомните и дважды укажите пароль (потребуют хороший пароль:​) после чего, сохраните изменения ("Save сhanges"​)
  
 Подключитесь новой учётной записью (на предложение указать новый пароль можно ввести предыдущий) Подключитесь новой учётной записью (на предложение указать новый пароль можно ввести предыдущий)
Line 135: Line 137:
 Создаем новый проект "​Create a project"​->"​Create blank project"​ Создаем новый проект "​Create a project"​->"​Create blank project"​
  
-Указываем Project name: squid project и убираем "​галочку"​ "​Initialize repository with a README",​ поскольку будем загружать репозиторий,​ который создадим на следующем шаге+Указываем Project name: squid project и убираем "​галочку"​ "​Initialize repository with a README",​ поскольку будем загружать репозиторий,​ который создадим на следующем шаге.
  
 Выполняем инструкции из подсказки в разделе "Push an existing folder",​ задав в начале git параметр user.email Выполняем инструкции из подсказки в разделе "Push an existing folder",​ задав в начале git параметр user.email
Line 155: Line 157:
 </​code>​ </​code>​
  
-"​Щелкнув"​ по названию проекта убедитесь,​ что все файлы из каталога /etc/squid появились в GitLab. Для изменения файлов конфигурации теперь можно не подключаться через ​ssh к VM с сервисом Squid а отредактировать прямо здесь через "Web IDE". Остается вопрос,​ как эти изменения попадут в VM с сервисом Squid?+"​Щелкнув"​ по названию проекта убедитесь,​ что все файлы из каталога /etc/squid появились в GitLab. Для изменения файлов конфигурации теперь можно не подключаться через ​SSH к VM с сервисом Squidа отредактировать ​их прямо здесь через "Web IDE". Остается вопрос,​ как эти изменения попадут в VM с сервисом Squid?
  
 ===== Шаг 5. GitLab Runner ===== ===== Шаг 5. GitLab Runner =====
  
-Установите GitLab Runner используя официальное руководство:​+Установите GitLab Runnerиспользуя официальное руководство:​
  
 https://​docs.gitlab.com/​runner/​install/​linux-manually.html https://​docs.gitlab.com/​runner/​install/​linux-manually.html
Line 177: Line 179:
 </​code>​ </​code>​
  
-Разрешим пользователю gitlab-runner выполнять команды с повышенными привилегиями,​ необходимые для тестирования,​ копирования и применения новой конфигурации proxy.+Разрешим пользователю gitlab-runner выполнять команды с повышенными привилегиями,​ необходимые для тестирования,​ копирования и применения новой конфигурации proxy:
 <​code>​ <​code>​
 debian:~# nano /​etc/​sudoers.d/​squid-sudo debian:~# nano /​etc/​sudoers.d/​squid-sudo
Line 184: Line 186:
 </​code>​ </​code>​
  
-Проверим,​ все ли работает, для этого добавьте домен какого нибудь сайта в файл permit_domains.txt используя “Web IDE” в GitLab и выполните Commit изменений в ветку main. Далее, с правами пользователя gitlab-runner склонируйте проект,​ зайдите в его каталог и выполните команды тестирования,​ копирования и применения новой конфигурации:​+Проверим,​ все ли работает. Для этого добавьте домен какого-нибудь сайта в файл permit_domains.txt используя “Web IDE” в GitLab и выполните Commit изменений в ветку main. Далее, с правами пользователя gitlab-runnerсклонируйте проект,​ зайдите в его каталог и выполните команды тестирования,​ копирования и применения новой конфигурации:​
  
 <​code>​ <​code>​
Line 280: Line 282:
 </​code>​ </​code>​
  
-и нажмите на кнопку "​Commit Changes"​+и нажмите на кнопку "​Commit Changes"​.
  
-Добавьте домен еще какого нибудь сайта в файл permit_domains.txt используя “Web IDE” в GitLab и выполните Commit изменений в ветку main+Добавьте домен еще какого-нибудь сайта в файл permit_domains.txt используя “Web IDE” в GitLab и выполните Commit изменений в ветку main
 + 
 +Убедитесь,​ что в разделе CI/​CD->​Pipelines проекта значение Status установилось в passed, в браузере открывается новый сайт, а добавленный домен присутствует в файле:  
 + 
 +<​code>​ 
 +debian:~# cat /​etc/​squid/​permit_domains.txt 
 +</​code>​
  
-Убедитесь,​ что в разделе CI/​CD->​Pipelines провекта значение Status установилось в passed и убедитесь,​ что в браузере открывается новый сайт. ​Если так, поздравляю,​ Вы только что написали свой первый CI/CD Pipeline!+Если так, поздравляю,​ Вы только что написали свой первый CI/CD Pipeline!
 ===== Итоги ===== ===== Итоги =====
  
самый_простой_пример_ci_cd.1676220140.txt.gz · Last modified: 2023/02/12 19:42 by val