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 > /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 > /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 > /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 > /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>