This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
самый_простой_пример_ci_cd [2023/02/12 19:44] 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 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! |
===== Итоги ===== | ===== Итоги ===== | ||