HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#подборки</a></p>
1 <p><a>#подборки</a></p>
2 <ul><li>19 мар 2024</li>
2 <ul><li>19 мар 2024</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Разгоняем свой конвейер по сборке приложений.</p>
4 </ul><p>Разгоняем свой конвейер по сборке приложений.</p>
5 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
5 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
6 <p>Давным-давно, когда IT ещё только зарождались, программисты ездили в офис с огромными стопками перфокарт, чтобы закоммитить изменения. Те времена давно в прошлом, и теперь новые фичи вносятся в код непрерывно и почти сразу доставляются пользователям. Во многом это стало возможным благодаря системам потоковой сборки - таким, например, как Jenkins.</p>
6 <p>Давным-давно, когда IT ещё только зарождались, программисты ездили в офис с огромными стопками перфокарт, чтобы закоммитить изменения. Те времена давно в прошлом, и теперь новые фичи вносятся в код непрерывно и почти сразу доставляются пользователям. Во многом это стало возможным благодаря системам потоковой сборки - таким, например, как Jenkins.</p>
7 <p>Из этой статьи вы узнаете:</p>
7 <p>Из этой статьи вы узнаете:</p>
8 <ul><li><a>что такое CI/CD</a>;</li>
8 <ul><li><a>что такое CI/CD</a>;</li>
9 <li><a>что такое Jenkins</a>;</li>
9 <li><a>что такое Jenkins</a>;</li>
10 <li><a>чем он хорош</a>;</li>
10 <li><a>чем он хорош</a>;</li>
11 <li><a>как его установить</a></li>
11 <li><a>как его установить</a></li>
12 </ul><ul><li><a>на Windows</a>;</li>
12 </ul><ul><li><a>на Windows</a>;</li>
13 <li><a>на Ubuntu</a>;</li>
13 <li><a>на Ubuntu</a>;</li>
14 </ul><ul><li><a>как настроить Jenkins</a>.</li>
14 </ul><ul><li><a>как настроить Jenkins</a>.</li>
15 </ul><p><strong>Эксперт</strong></p>
15 </ul><p><strong>Эксперт</strong></p>
16 <p>CTO Flocktory, программный директор профессии "<a>DevOps-инженер</a>" в Skillbox, директор программного комитета<a>DevOpsConf</a>.</p>
16 <p>CTO Flocktory, программный директор профессии "<a>DevOps-инженер</a>" в Skillbox, директор программного комитета<a>DevOpsConf</a>.</p>
17 <p>В основе работы Jenkins лежит подход непрерывной разработки. Это значит, что разработчики добавляют новые функции в код постоянно, как бы собирая воедино кусочки пазла. Другой подход - итеративный, когда сначала пишется полноценная версия программы, а уже потом тестируется и публикуется.</p>
17 <p>В основе работы Jenkins лежит подход непрерывной разработки. Это значит, что разработчики добавляют новые функции в код постоянно, как бы собирая воедино кусочки пазла. Другой подход - итеративный, когда сначала пишется полноценная версия программы, а уже потом тестируется и публикуется.</p>
18 <p>Непрерывная разработка состоит из двух частей:</p>
18 <p>Непрерывная разработка состоит из двух частей:</p>
19 <ul><li><strong>CI (continuous integration)</strong> - непрерывная интеграция. Идея в том, что все новшества в коде сразу добавляются в мастер-ветку проекта.</li>
19 <ul><li><strong>CI (continuous integration)</strong> - непрерывная интеграция. Идея в том, что все новшества в коде сразу добавляются в мастер-ветку проекта.</li>
20 <li><strong>CD (continuous delivery)</strong> - непрерывная доставка. Результаты работы программистов доставляются на сервер приложения или в тестовую среду, где их проверяют тестировщики.</li>
20 <li><strong>CD (continuous delivery)</strong> - непрерывная доставка. Результаты работы программистов доставляются на сервер приложения или в тестовую среду, где их проверяют тестировщики.</li>
21 </ul><p>Оба понятия обычно используются вместе, отсюда и название подхода - CI/CD. Есть и другие практики бесперебойной доставки кода - если хотите узнать о них больше, почитайте наш вводный гайд по методологии DevOps.</p>
21 </ul><p>Оба понятия обычно используются вместе, отсюда и название подхода - CI/CD. Есть и другие практики бесперебойной доставки кода - если хотите узнать о них больше, почитайте наш вводный гайд по методологии DevOps.</p>
22 <p>Коротко шаги CI/CD-конвейера можно описать так:</p>
22 <p>Коротко шаги CI/CD-конвейера можно описать так:</p>
23 <ul><li><strong>Сборка.</strong>Разработчик пишет код по заданию и добавляет его к основному ПО в репозитории с помощью CI-инструментов (о них расскажем чуть позже).</li>
23 <ul><li><strong>Сборка.</strong>Разработчик пишет код по заданию и добавляет его к основному ПО в репозитории с помощью CI-инструментов (о них расскажем чуть позже).</li>
24 <li><strong>Тестирование.</strong>Команда QA-инженеров проверяет код ручными или автоматическими способами. Если найдётся баг или дефект, код возвращают программистам на доработку.</li>
24 <li><strong>Тестирование.</strong>Команда QA-инженеров проверяет код ручными или автоматическими способами. Если найдётся баг или дефект, код возвращают программистам на доработку.</li>
25 <li><strong>Релиз.</strong>Заказчик смотрит на продукт и, если его всё устраивает, направляет его конечным пользователям.</li>
25 <li><strong>Релиз.</strong>Заказчик смотрит на продукт и, если его всё устраивает, направляет его конечным пользователям.</li>
26 <li><strong>Обратная связь и доработка.</strong>Пользователи оставляют свои отзывы о работе программы. На основе этих данных составляют новые ТЗ для программистов, и наш конвейер запускается снова.</li>
26 <li><strong>Обратная связь и доработка.</strong>Пользователи оставляют свои отзывы о работе программы. На основе этих данных составляют новые ТЗ для программистов, и наш конвейер запускается снова.</li>
27 </ul><p>Плюс такого подхода в том, что можно быстро доставлять новые фичи пользователям, не дожидаясь финального релиза. Но есть и обратная сторона: чтобы обслуживать конвейер, нужен целый штат тестировщиков и DevOps-инженеров, что может быть затратно для небольших компаний.</p>
27 </ul><p>Плюс такого подхода в том, что можно быстро доставлять новые фичи пользователям, не дожидаясь финального релиза. Но есть и обратная сторона: чтобы обслуживать конвейер, нужен целый штат тестировщиков и DevOps-инженеров, что может быть затратно для небольших компаний.</p>
28 <p><strong>Jenkins</strong>- это фреймворк для непрерывной разработки, написанный на Java. Слово "фреймворк" означает, что вы можете гибко настраивать систему под свои нужды с помощью плагинов и расширений - например, подключить систему контроля версий, Yandex Cloud, Jira и многое другое.</p>
28 <p><strong>Jenkins</strong>- это фреймворк для непрерывной разработки, написанный на Java. Слово "фреймворк" означает, что вы можете гибко настраивать систему под свои нужды с помощью плагинов и расширений - например, подключить систему контроля версий, Yandex Cloud, Jira и многое другое.</p>
29 <p>Даже самые базовые функции в Jenkins - это, по сути, плагины, которые отвечают за разные этапы работы конвейера: от сборки до тестирования. Называется такой набор pipeline, и доступен он прямо "из коробки". Если нужны ещё расширения - их можно скачать из <a>маркетплейса Jenkins</a>.</p>
29 <p>Даже самые базовые функции в Jenkins - это, по сути, плагины, которые отвечают за разные этапы работы конвейера: от сборки до тестирования. Называется такой набор pipeline, и доступен он прямо "из коробки". Если нужны ещё расширения - их можно скачать из <a>маркетплейса Jenkins</a>.</p>
30 <p>Работает Jenkins по распределённой системе: есть ведущий мастер-сервер, который управляет всеми процессами и распределяет задачи, а есть слейв-серверы - агенты, которые снимают с мастера лишнюю нагрузку.</p>
30 <p>Работает Jenkins по распределённой системе: есть ведущий мастер-сервер, который управляет всеми процессами и распределяет задачи, а есть слейв-серверы - агенты, которые снимают с мастера лишнюю нагрузку.</p>
31 <p>Обычно в проекте есть несколько слейв-серверов для разных задач: один - для разработки, второй - для тестирования, третий - для обработки запросов пользователей. Технически, пока приложение ещё не разрослось, его можно разрабатывать и на одном сервере. Но, если он вдруг упадёт, пострадают сразу все: и пользователи, и тестировщики, и программисты.</p>
31 <p>Обычно в проекте есть несколько слейв-серверов для разных задач: один - для разработки, второй - для тестирования, третий - для обработки запросов пользователей. Технически, пока приложение ещё не разрослось, его можно разрабатывать и на одном сервере. Но, если он вдруг упадёт, пострадают сразу все: и пользователи, и тестировщики, и программисты.</p>
32 <em>Инфографика: Оля Ежак для Skillbox Media</em><p>Ещё это полезно, если вы хотите написать несколько версий приложения под разные системы - например, одно под "Винду", а другое - под Linux или macOS. Тогда вполне уместно будет взять несколько слейв-серверов и на каждый из них накатить своё окружение.</p>
32 <em>Инфографика: Оля Ежак для Skillbox Media</em><p>Ещё это полезно, если вы хотите написать несколько версий приложения под разные системы - например, одно под "Винду", а другое - под Linux или macOS. Тогда вполне уместно будет взять несколько слейв-серверов и на каждый из них накатить своё окружение.</p>
33 <p>Перечислим главные киллер-фичи этой системы.</p>
33 <p>Перечислим главные киллер-фичи этой системы.</p>
34 <ul><li><strong>Кросс-платформенность.</strong>Есть версии приложения для Linux, macOS и Windows.</li>
34 <ul><li><strong>Кросс-платформенность.</strong>Есть версии приложения для Linux, macOS и Windows.</li>
35 <li><strong>Философия Open Source.</strong>Приложение можно использовать бесплатно, а его код доступен для изучения всем желающим.</li>
35 <li><strong>Философия Open Source.</strong>Приложение можно использовать бесплатно, а его код доступен для изучения всем желающим.</li>
36 <li><strong>Интеграция с облачными решениями</strong>: Azure, Google Cloud, DigitalOcean, Yandex Cloud и другими.</li>
36 <li><strong>Интеграция с облачными решениями</strong>: Azure, Google Cloud, DigitalOcean, Yandex Cloud и другими.</li>
37 <li><strong>Развитое сообщество.</strong>Решение возможных проблем облегчается поиском уже решённых похожих случаев.</li>
37 <li><strong>Развитое сообщество.</strong>Решение возможных проблем облегчается поиском уже решённых похожих случаев.</li>
38 <li><strong>Много плагинов.</strong>В одном только маркетплейсе Jenkins их около 2000.</li>
38 <li><strong>Много плагинов.</strong>В одном только маркетплейсе Jenkins их около 2000.</li>
39 <li><strong>Подходит для сложных проектов.</strong>Но это можно отнести и к минусам, так как Jenkins может показаться "тяжеловатым" для мелких задач.</li>
39 <li><strong>Подходит для сложных проектов.</strong>Но это можно отнести и к минусам, так как Jenkins может показаться "тяжеловатым" для мелких задач.</li>
40 </ul><p>А теперь настало время запустить наш Jenkins-конвейер.</p>
40 </ul><p>А теперь настало время запустить наш Jenkins-конвейер.</p>
41 <p>Так как Jenkins - это Java-приложение, для его установки нам потребуется соответствующая среда. Это комплект разработчика приложений на базе Java от Oracle -<strong>JDK</strong>(Java Development Kit).</p>
41 <p>Так как Jenkins - это Java-приложение, для его установки нам потребуется соответствующая среда. Это комплект разработчика приложений на базе Java от Oracle -<strong>JDK</strong>(Java Development Kit).</p>
42 <p>Устанавливать будем на две системы - Windows 11 и Ubuntu 22.04. Начнём с "оконной" ОС.</p>
42 <p>Устанавливать будем на две системы - Windows 11 и Ubuntu 22.04. Начнём с "оконной" ОС.</p>
43 <p>Для начала подготовим окружение. Скачиваем последнюю модификацию комплекта JDK с <a>официального сайта</a>, в нашем случае это jdk-21_windows-x64_bin.exe.</p>
43 <p>Для начала подготовим окружение. Скачиваем последнюю модификацию комплекта JDK с <a>официального сайта</a>, в нашем случае это jdk-21_windows-x64_bin.exe.</p>
44 Страница Oracle для выбора файла JDK<em>Скриншот:<a>Oracle</a>/ Skillbox Media</em><p>Загрузка может занять до одного часа. После этого запускаем установочный файл.</p>
44 Страница Oracle для выбора файла JDK<em>Скриншот:<a>Oracle</a>/ Skillbox Media</em><p>Загрузка может занять до одного часа. После этого запускаем установочный файл.</p>
45 Запуск установочного файла JDK на Windows<em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>Запоминаем или копируем путь установки: C:\Program Files\Java\jdk-21\, он нам ещё пригодится. Дожидаемся конца установки.</p>
45 Запуск установочного файла JDK на Windows<em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>Запоминаем или копируем путь установки: C:\Program Files\Java\jdk-21\, он нам ещё пригодится. Дожидаемся конца установки.</p>
46 Завершение установки JDK на Windows<em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>Готово! Закрываем окошко, JDK установлен.</p>
46 Завершение установки JDK на Windows<em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>Готово! Закрываем окошко, JDK установлен.</p>
47 <p>Теперь переходим к установке непосредственно Jenkins. Для этого переходим на <a>страницу загрузки</a>, выбираем Windows, скачиваем дистрибутив и запускаем установщик.</p>
47 <p>Теперь переходим к установке непосредственно Jenkins. Для этого переходим на <a>страницу загрузки</a>, выбираем Windows, скачиваем дистрибутив и запускаем установщик.</p>
48 Запуск Jenkins на Windows и выбор способа входа в систему<em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>В окне установки меняем способ входа в систему с дефолтного Run service as local or domain user на Run service as LocalSystem. Поля авторизации при этом деактивируются, но ничего страшного - логин и пароль мы введём позже.</p>
48 Запуск Jenkins на Windows и выбор способа входа в систему<em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>В окне установки меняем способ входа в систему с дефолтного Run service as local or domain user на Run service as LocalSystem. Поля авторизации при этом деактивируются, но ничего страшного - логин и пароль мы введём позже.</p>
49 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Порт, на котором будет работать Jenkins, оставляем дефолтный - 8080.</p>
49 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Порт, на котором будет работать Jenkins, оставляем дефолтный - 8080.</p>
50 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Тестируем порт, нажимая кнопку Test Port.</p>
50 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Тестируем порт, нажимая кнопку Test Port.</p>
51 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Тестирование прошло успешно, на следующем шаге нам пригодится сохранённый ранее путь к JDK - у нас это C:\Program Files\Java\jdk-21\. Вводим путь к директории в окошко и жмём Next.</p>
51 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Тестирование прошло успешно, на следующем шаге нам пригодится сохранённый ранее путь к JDK - у нас это C:\Program Files\Java\jdk-21\. Вводим путь к директории в окошко и жмём Next.</p>
52 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>На следующем шаге соглашаемся на установку предлагаемых компонентов.</p>
52 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>На следующем шаге соглашаемся на установку предлагаемых компонентов.</p>
53 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Установка Jenkins завершена!</p>
53 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Установка Jenkins завершена!</p>
54 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Закрываем установщик и проверяем, появился ли нужный процесс в диспетчере задач.</p>
54 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Закрываем установщик и проверяем, появился ли нужный процесс в диспетчере задач.</p>
55 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Готово! Как подготовить программу к работе, мы расскажем в следующем разделе. А пока - разберёмся с Ubuntu.</p>
55 <em>Скриншот:<a>Jenkins</a>/ Skillbox Media</em><p>Готово! Как подготовить программу к работе, мы расскажем в следующем разделе. А пока - разберёмся с Ubuntu.</p>
56 <p>Перед началом установки проверим, есть ли в системе пакет Java - без него Jenkins не будет работать. Чтобы это сделать, заходим в терминал (сочетанием клавиш<strong>Ctrl</strong>+<strong>Alt</strong>+<strong>T</strong>или через поиск) и вводим такую команду:</p>
56 <p>Перед началом установки проверим, есть ли в системе пакет Java - без него Jenkins не будет работать. Чтобы это сделать, заходим в терминал (сочетанием клавиш<strong>Ctrl</strong>+<strong>Alt</strong>+<strong>T</strong>или через поиск) и вводим такую команду:</p>
57 java -version<p>Если в ответ получаем 'java' not found, значит, пакета Java в системе нет.</p>
57 java -version<p>Если в ответ получаем 'java' not found, значит, пакета Java в системе нет.</p>
58 <p>Инструкция, как установить Java на Ubuntu</p>
58 <p>Инструкция, как установить Java на Ubuntu</p>
59 <p>1. Первым делом зайдём на <a>официальный сайт</a>Oracle и скачаем пакет JDK для Linux. Нам нужен установочный файл x64 Compressed Archive.</p>
59 <p>1. Первым делом зайдём на <a>официальный сайт</a>Oracle и скачаем пакет JDK для Linux. Нам нужен установочный файл x64 Compressed Archive.</p>
60 <em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>2. Копируем ссылку на скачивание файла и, используя команду wget, копируем установочный файл напрямую на наш компьютер.</p>
60 <em>Скриншот: <a>Oracle</a>/ Skillbox Media</em><p>2. Копируем ссылку на скачивание файла и, используя команду wget, копируем установочный файл напрямую на наш компьютер.</p>
61 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz<p>3. Создадим папку, в которую распакуем наш архив.</p>
61 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz<p>3. Создадим папку, в которую распакуем наш архив.</p>
62 sudo mkdir -p /usr/lib/наша_папка<p>4. Вместо наша_папка подставляем своё название. Теперь в эту директорию распаковываем архив.</p>
62 sudo mkdir -p /usr/lib/наша_папка<p>4. Вместо наша_папка подставляем своё название. Теперь в эту директорию распаковываем архив.</p>
63 tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/lib/наша_папка<p>5. JDK будем устанавливать с помощью PPA (Personal Package Archive), добавляем его в список репозитория.</p>
63 tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/lib/наша_папка<p>5. JDK будем устанавливать с помощью PPA (Personal Package Archive), добавляем его в список репозитория.</p>
64 add-apt-repository ppa:linuxuprising/java<p>6. Обновляем список пакетов.</p>
64 add-apt-repository ppa:linuxuprising/java<p>6. Обновляем список пакетов.</p>
65 sudo apt update<p>7. Теперь устанавливаем непосредственно наш JDK 21.</p>
65 sudo apt update<p>7. Теперь устанавливаем непосредственно наш JDK 21.</p>
66 sudo apt update<p>8. В процессе соглашаемся с правилами использования.</p>
66 sudo apt update<p>8. В процессе соглашаемся с правилами использования.</p>
67 <p>9. Готово! Проверяем успешность установки, запросив версию Java.</p>
67 <p>9. Готово! Проверяем успешность установки, запросив версию Java.</p>
68 java -version<p>Если язык установлен успешно, консоль покажет версию Java. В нашем случае это 21-я.</p>
68 java -version<p>Если язык установлен успешно, консоль покажет версию Java. В нашем случае это 21-я.</p>
69 <p>1. Сначала получаем ключ шифрования GPG с помощью команды curl. Ключ нужен для проверки подлинности пакетов, загружаемых из репозитория Jenkins. Чтобы два раза не вставать, установим ключ в систему командой sudo tee.</p>
69 <p>1. Сначала получаем ключ шифрования GPG с помощью команды curl. Ключ нужен для проверки подлинности пакетов, загружаемых из репозитория Jenkins. Чтобы два раза не вставать, установим ключ в систему командой sudo tee.</p>
70 curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ /usr/share/keyrings/jenkins-keyring.asc &gt; /dev/null<p>2. После этого добавим репозиторий Jenkins в список пакетов Ubuntu.</p>
70 curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ /usr/share/keyrings/jenkins-keyring.asc &gt; /dev/null<p>2. После этого добавим репозиторий Jenkins в список пакетов Ubuntu.</p>
71 echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list &gt; /dev/null<p>Корректность ввода адресов путей можно проверить на <a>странице загрузки</a>.</p>
71 echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list &gt; /dev/null<p>Корректность ввода адресов путей можно проверить на <a>странице загрузки</a>.</p>
72 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>3. Снова обновляем список пакетов.</p>
72 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>3. Снова обновляем список пакетов.</p>
73 sudo apt update<p>4. Настало время установить Jenkins.</p>
73 sudo apt update<p>4. Настало время установить Jenkins.</p>
74 sudo apt install jenkins<p>5. После установки запускаем сервис.</p>
74 sudo apt install jenkins<p>5. После установки запускаем сервис.</p>
75 sudo apt install jenkins<p>6. Проверяем статус работы.</p>
75 sudo apt install jenkins<p>6. Проверяем статус работы.</p>
76 sudo service jenkins status<p>В качестве ответа должна быть строка Active: active (running)…</p>
76 sudo service jenkins status<p>В качестве ответа должна быть строка Active: active (running)…</p>
77 <p>7. И последний штрих. Чтобы Jenkins нормально работал, нужно открыть ему сетевой порт 8080 в брандмауэре. Для этого откроем SSH.</p>
77 <p>7. И последний штрих. Чтобы Jenkins нормально работал, нужно открыть ему сетевой порт 8080 в брандмауэре. Для этого откроем SSH.</p>
78 sudo ufw allow OpenSSH<p>8. Запустим брандмауэр.</p>
78 sudo ufw allow OpenSSH<p>8. Запустим брандмауэр.</p>
79 sudo ufw enable<p>9. Откроем порт, необходимый для работы Jenkins.</p>
79 sudo ufw enable<p>9. Откроем порт, необходимый для работы Jenkins.</p>
80 sudo ufw allow 8080<p>10. Проверяем, что всё действительно открылось.</p>
80 sudo ufw allow 8080<p>10. Проверяем, что всё действительно открылось.</p>
81 sudo ufw status<p>В качестве ответа должны быть строки, содержащие allow и Anywhere.</p>
81 sudo ufw status<p>В качестве ответа должны быть строки, содержащие allow и Anywhere.</p>
82 <p>Вы восхитительны! Теперь Jenkins крутится на вашем сервере.</p>
82 <p>Вы восхитительны! Теперь Jenkins крутится на вашем сервере.</p>
83 <p>Чтобы начать настройку Jenkins, введите:</p>
83 <p>Чтобы начать настройку Jenkins, введите:</p>
84 <ul><li>http://ip_сервера:8080 - для Ubuntu;</li>
84 <ul><li>http://ip_сервера:8080 - для Ubuntu;</li>
85 <li>http://localhost:8080 - для Windows.</li>
85 <li>http://localhost:8080 - для Windows.</li>
86 </ul><p>В остальном настройка будет выглядеть почти идентично на обеих системах. Мы будем рассматривать настройку под Windows.</p>
86 </ul><p>В остальном настройка будет выглядеть почти идентично на обеих системах. Мы будем рассматривать настройку под Windows.</p>
87 <p>1. После перехода по ссылке откроется окно разблокировки Jenkins. Здесь видим, пожалуй, единственное различие в системах - адрес файла с паролем. Для Ubuntu он будет отличаться от "виндового".</p>
87 <p>1. После перехода по ссылке откроется окно разблокировки Jenkins. Здесь видим, пожалуй, единственное различие в системах - адрес файла с паролем. Для Ubuntu он будет отличаться от "виндового".</p>
88 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>2. Вводим адрес в окошко Administrator password и нажимаем Продолжить.</p>
88 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>2. Вводим адрес в окошко Administrator password и нажимаем Продолжить.</p>
89 <p>3. Откроется окно с предложением установить плагины. Можно скачать дефолтный набор или выбрать плагины самому. Выбираем первый вариант.</p>
89 <p>3. Откроется окно с предложением установить плагины. Можно скачать дефолтный набор или выбрать плагины самому. Выбираем первый вариант.</p>
90 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>4. Начинается загрузка.</p>
90 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>4. Начинается загрузка.</p>
91 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>5. Если что-то пошло не так и какой-то плагин не загрузился, нажимаем кнопку Retry и повторяем попытку.</p>
91 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>5. Если что-то пошло не так и какой-то плагин не загрузился, нажимаем кнопку Retry и повторяем попытку.</p>
92 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>6. После установки плагинов вводим данные авторизации: имя пользователя и пароль.</p>
92 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>6. После установки плагинов вводим данные авторизации: имя пользователя и пароль.</p>
93 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>7. Сохраняем и получаем сообщение об успехе - Jenkins готов к работе!</p>
93 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>7. Сохраняем и получаем сообщение об успехе - Jenkins готов к работе!</p>
94 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>8. Нажимаем кнопку Start using Jenkins и переходим в интерфейс программы.</p>
94 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>8. Нажимаем кнопку Start using Jenkins и переходим в интерфейс программы.</p>
95 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>Profit! Установка и настройка Jenkins закончена. Теперь он готов к выполнению наших задач.</p>
95 <em>Скриншот: <a>Jenkins</a>/ Skillbox Media</em><p>Profit! Установка и настройка Jenkins закончена. Теперь он готов к выполнению наших задач.</p>
96 <a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>
96 <a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>