Запустить команду оболочки в jenkins от имени пользователя root?

Введение

При наличии повторяющихся технических задач подобрать действительно работающее решение автоматизации не так просто. Сервер автоматизации Jenkins с открытым исходным кодом позволяет эффективно управлять разнообразными задачами от сборки до развертывания программного обеспечения. Сервер Jenkins написан на Java и может устанавливаться из пакетов Ubuntu или с помощью загрузки и запуска архива веб-приложения (WAR), содержащего набор файлов полноценного веб-приложения для запуска на сервере.

В этом обучающем модуле мы выполним установку Jenkins в Ubuntu 20.04, запустим сервер разработки и создадим пользователя с правами администратора, чтобы лучше познакомиться с возможностями Jenkins. После прохождения этого обучающего модуля у вас будет готовый к использованию сервер разработки, но для его защиты и использования в производственной среде рекомендуется выполнить указания руководства «Настройка Jenkins с помощью SSL с использованием обратного прокси-сервера Nginx в Ubuntu 18.04».

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 20.04 с пользователем без прав root и с привилегиями sudo и брандмауэр, настроенный согласно нашему руководству по первоначальной настройке сервера Ubuntu 20.04. Мы рекомендуем использовать минимум 1 ГБ оперативной памяти. Ознакомьтесь с документом «Рекомендации по аппаратном обеспечению» для Jenkins, чтобы лучше спланировать параметры системы Jenkins производственного уровня.
  • Комплект Oracle JDK 11, установленный в соответствии с руководством по .

Введение

J

В этой статье мы установим Jenkins, добавив его в репозиторий пакетов Debian, а затем с помощью этого репозитория, установим пакет с помощью .

Предпосылки

Для выполнения этого вам потребуется:

Один 16,04 сервера Ubuntu сконфигурирован с внекорневым пользователем  и брандмауэром, данную конфигурацию можно посмотреть в первоначальной настройке сервера Ubuntu 16.04. Мы рекомендуем начать с не менее 1 Гб оперативной памяти. См в руководстве по выбору подходящего аппаратного обеспечения для мастеров при планировании потенциала производственной установки Jenkins.

Когда сервер настроен, вы готовы следовать.

Использование агента docker

Переходим к настройке нашего задания или создаем новое и приводим Groovy-код к такому виду:

pipeline {
    agent { docker { image ‘python:latest’ } }
    stages {
        stage(‘Подготовка’) {
            steps {
                sh «python —version»
            }
        }
        stage(‘Сборка’) {
            steps {
                echo ‘Выполняем команды для сборки’
            }
        }
        stage(‘Тестирование’) {
            steps {
                echo ‘Тестируем нашу сборку’
            }
        }
        stage(‘Развертывание’) {
            steps {
                echo ‘Переносим код в рабочую среду или создаем артефакт’
            }
        }
    }
}

* обратите внимание, мы изменили агента на docker с указанием образа, в котором будет выполняться обработка — в данном примере, с помощью python (последней версии). Также мы добавили этап Подготовка, в котором просто выведем на экран версию python

Первый запуск будет выполняться долго, так как необходимо будет загрузить образ. В конечном итоге, мы должны получить, примерно, следующую картину:

Для подробного просмотра хода процесса (или решения проблем в случае их возникновения), кликаем по стрелке справа от названия задания и переходим к сборке:

Переходим к консоли:

Если задание выполнено успешно, среди логов мы должны увидеть версию используемого в контейнере Docker python:

Обработка в Docker

Jenkins может выполнять задание внутри Docker. Таким образом, мы можем использовать контейнеры с настроенной средой, необходимой для тестирования и сборки кода и получения необходимых артефактов.

Рассмотрим настройку сервера для возможности использовать Docker и пример кода на Groovy.

Подготовка системы

Мы должны выполнит ряд действий:

  • Установку плагина для работы Jenkins с Docker.
  • Установку сервиса Docker в системе.
  • Настройку привилегий.

1. Начнем с установки плагина. На главной странице Jenkins переходим в настройки:

Кликаем по разделу Управление плагинами:

Среди списка плагинов находим «Docker Pipeline» и отмечаем его для установки:

Переходим к установке:

… и доживаемся ее окончания.

2. Подключаемся к консоли по SSH и выполняем Установку Docker.

3. Чтобы можно было подключиться к Docker из Jenkins, необходимо, чтобы пользователь jenkins входил в группу docker — для этого выполняем команду:

usermod -a -G docker jenkins

После необходимо перезапустить дженкинс:

systemctl restart jenkins

Среда готова для работы с контейнерами.

Установка

Запустить сервис

Jenkins прослушивает порт 8080 по умолчанию под centos7 Запустите службу: настроен на запуск службы при загрузке: Аналогично: status — это статус просмотра остановка для прекращения службы Проверьте, был ли запуск успешным: Проверьте, отслеживается ли порт 8080

Начальная конфигурация

Мой ip 10.0.0.12, то есть откройте браузер и введите 10.0.0.12::8080, чтобы войти на страницу конфигурации jenkins Согласно подсказке мы нашли пароль администратора в этом каталоге

Когда мы заходим на страницу установки плагина, нажмите x, чтобы отменить автоматическую установку. Поскольку плагин необходимо скачать с официального сайта, скорость очень низкая, мы принимаем метод ручной установки

Введите интерфейс Мы можем войти в систему управления — «Управление пользователями -» изменить пароль администратора

Способ 1: установить напрямую

Нажмите на дополнительный плагин, чтобы выбрать соответствующий плагин Если загрузка плагина происходит слишком медленно, вы можете установить прокси-сервер: Advanced- «Настройки прокси»

Первичная настройка

Здесь нужно определить, как вы хотите аутентифицироваться в системе: через учётные записи, которые хранятся в самом Jenkins или через внешний сервис (Bitbucket, Github, и т.п.). Если вы планируете использовать внешний сервис — нужно поставить его плагин. В случае с Bitbucket, это плагин «Bitbucket OAuth Plugin». Если нет — просто пропустите установку плагина и читайте дальше.

Установка плагина на примере Bitbucket

Для установки плагина перейдите в «Manage Jenkins» — «Manage Plugins» — «Available» и выберите нужный плагин. Рекомендую воспользоваться фильтром для быстрого поиска.

Нажимаем «Download now and install after restart» для чистой установки плагина с перезапуском. В появившемся окне установки включаем галочку «Restart Jenkins when installation is complete and no jobs are running» и ждём установки с перезагрузкой. Страница должна сама обновиться. После установки можно возвращаться на главную страницу и продолжать настройки.

Настройка аутентификации и прав доступа

Наш Jeknins всё ещё доступен первому зашедшему, о чём предупреждает нас сообщением

Поэтому давайте настроим права доступа и механизм входа в систему. Для этого нам нужно снова перейти в «Manage Jenkins», а там нажать кнопку «Setup Security» в правом верхнем углу. В появившемся окне настроек включаем настройки безопасности галочкой «Enable security». Далее нам нужно выбрать, каким способом будет происходить аутентификация пользователей. По умолчанию доступны несколько способов. Нас интересует «Jenkins’ own user database», если мы хотим входить с данными, которые хранятся в самом Jenkins или «Bitbucket OAuth Plugin», если мы хотим входить через Bitbucket.

Аутентификация через встроенную базу данных Jenkins

Здесь особо ничего настраивать не нужно. Разве что, возможно, стоит запретить регистрацию пользователей сняв галку «Allow users to sign up».

Аутентификация через Bitbucket

Для этого же способа нам потребуется сходить в настройки своего аккаунта Bitbucket и зарегистрировать приложение. Для этого заходим на страницу своего аккаунта, нажимаем «Manage account» и переходим в раздел «OAuth». Здесь добавляем приложение кнопкой «Add consumer». После чего получаем «Key», который прописываем в «Client ID» и «Secret», который копируем в «Client Secret».

Подготовка системы

В качестве предварительной настройки обновим список пакетов, зададим корректное время сервера и настроим брандмауэр.

Для возможности установки свежих пакетов, выполняем команду:

apt-get update

Настройка времени

Для настройки времени зададим часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Установим службу для синхронизации времени:

apt-get install chrony

Разрешим ее автозапуск: 

systemctl enable chrony

Настройка брандмауэра

По умолчанию в Ubuntu настроены разрешающие правила и конфигурирование брандмауэра не требуется. Однако, если в нашей системе применяются правила, необходимо открыть порт 8080, на котором работает Jenkins:

iptables -A INPUT -p tcp —dport 8080 -j ACCEPT

И сохраняем правило:

apt-get install iptables-persistent

netfilter-persistent save

Настройка Jenkins

Чтобы настроить новую установку Jenkins, откройте браузер, введите свой домен или IP-адрес, а затем порт , .

Отобразится страница, подобная следующей, с предложением ввести пароль администратора, созданный во время установки:

Используйте чтобы отобразить пароль на терминале:

Вы должны увидеть 32-значный буквенно-цифровой пароль, как показано ниже:

Скопируйте пароль с терминала, вставьте его в поле «Пароль администратора» и нажмите «Продолжить».

На следующем экране мастер установки спросит вас, хотите ли вы установить предлагаемые плагины или выбрать определенные плагины.

Щелкните поле «Установить предлагаемые плагины», и процесс установки начнется немедленно.

После установки плагинов вам будет предложено настроить первого пользователя-администратора. Заполните всю необходимую информацию и нажмите «Сохранить и продолжить».

На следующей странице вас попросят установить URL-адрес для вашего экземпляра Jenkins. Поле будет заполнено автоматически сгенерированным URL.

Подтвердите URL-адрес, нажав кнопку « завершить», и процесс настройки будет завершен.

Нажмите кнопку « , и вы будете перенаправлены на панель управления Jenkins, в которую вошли как администратор, которого вы создали на одном из предыдущих шагов.

На этом этапе вы успешно установили Jenkins на свой сервер.

Новая сборка

Вы можете использовать его после установки и настройки jenkins и плагинов

Войдите на главную страницу

Файл проекта хранится в / var / lib / jenkins / jobs Рабочий каталог проекта / var / lib / jenkins / workspace Результат выполнения помещается в этот файл Имя проекта: после подтверждения имени проекта лучше не изменять его, поскольку исходный файл в заданиях не будет удален после изменения

Откажитесь от старой сборки

Construct

Мы можем построить. На вкладке создайте сценарий оболочки

нота

В сценарии оболочки, если вы выполняете системные команды, у вас нет полномочий. jenkins по умолчанию запускается как пользователь jenkins. Если вы хотите выполнить именование системы, есть два решения: 1. Ручная авторизация, дайте разрешение jenkins 2. Запустите как пользователь root

Введите файл конфигурации измените файл, измените это перезапустите службу

тест

Затем выберите сборку сейчас, и затем мы можем просмотреть запись сборки в левом нижнем углу

Посмотреть вывод консоли

Рабочий каталог / var / lib / jenkins / workspace / jobs name builds: сохраняет последнюю сборку и последнюю успешную сборку config.xml записывает информацию о конфигурации сборки

Шаг 1 — Установка Jenkins

Версия Jenkins, содержащаяся в стандартных пакетах Ubuntu, часто отличается от последней доступной версии проекта. Чтобы гарантированно получить последние функции и исправления, используйте для установки Jenkins пакеты, поддерживаемые проектом.

Во-первых, добавьте ключ репозитория в систему:

После добавления ключа система выводит сообщение .

Затем добавьте в адрес репозитория пакетов Debian в сервера:

После ввода обеих команд мы запустим команду , чтобы использовал новый репозиторий.

В заключение мы установим Jenkins и его зависимости.

Теперь, когда Jenkins и его зависимости готовы, мы запустим сервер Jenkins.

Configuring agents with Docker

Jenkins agents can be launched in physical machines, virtual machines, Kubernetes clusters, and with Docker images.
This section connects Docker agents to Jenkins with SSH.

Environment

To run this guide you will need a machine with:

  • Java installation

  • Jenkins installation

  • Docker installation

  • SSH key pair

If you need help to install Java, Jenkins and Docker please visit the section Installing Jenkins.

Generating an SSH key pair

  1. In a terminal window run the command:

  2. Provide a passphrase to use with the key

  3. Confirm the output looks something like this:

Create a Jenkins SSH credential

  1. Go to your Jenkins dashboard;

  2. Go to option in main menu and click on credentials button;

  3. select the drop option from the global item;

  4. Fill the form:

    • Kind: SSH Username with private key;

    • id: jenkins

    • description: The jenkins ssh key

    • username: jenkins

    • Private Key: select and press the Add button to insert your private key from

    • Passphrase: fill your passphrase used to generate the SSH key pair and then press OK

Creating your Docker agent

On Linux

Here we will use the docker-ssh-agent image to create the agent containers.

  1. run the command to start your first agent:

  2. Now run the following command to update the container environment:

    The step 2 is necessary because the image is configured to reject changes to environment variables.
    when the issue #33 is fixed, we can ignore this step.

  3. Now the container is running.
    Hint: the command can be used to check if the container is running as expected.

On Windows

Here we will use the docker-ssh-agent image to create the agent containers.

  1. run the command to start your first agent:

    • Remember to replace the tag for your own SSH public key.

    • Your public key in this example is:

  2. Now the container is running.
    Hint: the command can be used to check if the container is running as expected.
    Additionally, the command can be used to see the Host to be set in Jenkins for the agent.

Setup up the agent1 on jenkins.

  1. Go to your Jenkins dashboard;

  2. Go to option in main menu;

  3. Go to item;

  4. Go to option in side menu;

  5. Fill the Node/agent name and select the type; (e.g. Name: agent1, Type: Permanent Agent)

  6. Now fill the fields:

    • Remote root directory; (e.g.: /home/jenkins )

    • label; (e.g.: agent1 )

    • usage; (e.g.: only build jobs with label expression…​)

    • Launch method; (e.g.: Launch agents by SSH )

      • Host; (e.g.: localhost or your IP address )

      • Credentials; (e.g.: jenkins )

      • Host Key verification Strategy; (e.g.: Manually trusted key verification …​ )

  7. Press the button save and the agent1 will be registered, but offline. Click on it.

  8. Now press the button and wait some seconds, then you should receive
    the message: on the last log line.

  1. Go to your jenkins dashboard;

  2. Select on side menu;

  3. Enter a name. (e.g.: First Job to Agent1)

  4. Select the and press OK;

  5. Check the option: ;

  6. Fill the field: label with the agent1 label; (e.g.: agent1)

    Be careful with white spaces before or after the label.

  7. Now Select the option at Build Section;

  8. Add the command: in the field of the step and the name
    of the agent will be printed inside the log when this job is run;

  9. press the save button and then select the option ;

  10. Wait some seconds and then go to page

  11. you should receive output similar to:

Установка Jenkins

Чтобы установить Jenkins в вашей системе Ubuntu, выполните следующие действия:

  1. Установите Java.

    Поскольку Jenkins — это приложение Java, первым делом необходимо установить Java. Обновите индекс пакета и установите пакет Java 8 OpenJDK с помощью следующих команд:

    Текущая версия Jenkins пока не поддерживает Java 10 (и Java 11). Если на вашем компьютере установлено несколько версий Java, убедитесь, что Java 8 является версией Java по умолчанию .

  2. Добавьте репозиторий Jenkins Debian.

    Импортируйте ключи GPG репозитория Jenkins с помощью следующей команды:

    Приведенная выше команда должна выводиться, что означает, что ключ был успешно импортирован и пакеты из этого репозитория будут считаться доверенными.

    Затем добавьте в систему репозиторий Jenkins:

  3. Установите Jenkins.

    После включения репозитория Jenkins обновите список пакетов и установите последнюю версию Jenkins, набрав:

    Служба Jenkins автоматически запустится после завершения процесса установки. Вы можете проверить это, распечатав статус службы:

    Вы должны увидеть что-то подобное:

Установка Jenkins в Unix/Linux

Как я говорил ранее, я буду использовать докер для установки дженкинса. ОС которую я использую — Mac OS X. Многие скажует, да какая разница, ты же запускаешь в докере. Но на самом деле — докер немного по разному работает на разных Unix/Linux ОС. Немного пришлось поплясать с бубном, чтобы зависти все это чудо на маке.

Мой docker-compose.yml файл выглядит следующим образом:

Кто работает с докер-компос, тот сможет прочитать данный файл и понять в чем дело

Но если кто-то не знает, я немного расскажу на что стоит заострить внимание. И так:

Я данным сервисом запускаю 3 контейнера, — gitlab, jenkins (master) и socat. Gitlab — система управления репозиториями кода для Git. данные конфиг делался универсальным и чтобы он работал в любом месте и на Unix/Linux системах. Если что-то не будет работать, то стоит рассмотреть поле DNS (в данном поле прописаны ДНС-ы которые служат резолвом в самих докер-контейнера. Иногда это уместно, когда на работе или дома используются свои ДНС, а остальные блокируются).

Можно заюзать статью чтобы проверить, какие ДНС-ы используются:

PS: Для данного поля стоит использовать, ТОЛЬКО 3 DNS ЗАПИСИ, не более! Иначе, они просто не будут работать и моугт сломать контейнер(ы).

Многие посмотрет на «socat» конейнер и спросят, а зачем он тут вообще упал? Так вот, он тут служит перенаправлением данных с порта (2375) на Unix сокет (/var/run/docker.sock). И сново могут полететь вопросы, а зачем?

Да дело в том, что докер-прогеры «не смогли» запилить «docker_opts»/»hosts» переменную в докер под Mac OS X. Данная переменная выполняет собственно аналогичные действия, но нативным спообом. Выглядит это вот так (на стороне Linux):

Т.е данную команду нужно прописать в конфиг докера, или можно запустить демон следующим образом:

На все это дело, я потратил около 7 часов времени и мне не очень было понятно почему не работает. Но в интернете нашелся пример моего бедствия. Я взял идею и опробовал ее — костыльненько, но а что поделать!

Самое интересно, то, что я в своей реализации заюзал «Docker in Docker», т.е пробросил Docker с Mac OS X на Docker хост с jenkins. Иначе , я хз как это должно работать. Если кто-то знает — расскажите

Собственно, gitlab + jenkins — готовы к использованию. Перейдем к настройке jenkins-slave.

Создание и настойка задания

На главной странице Jenkins кликаем по Создать Item:

Даем название нашей задаче и ниже выбираем Pipeline:

Нажимаем кнопку OK:

Прокручиваем страницу вниз до подраздела «Pipeline» — сюда мы пишем скрипт на Groovy:

Также у нас есть возможность использовать репозиторий Git в качестве источника файла Jenkinsfile, выбрав в подразделе «Definition» Pipeline script from SCM и Git:

… но мы в данной инструкции будем рассматривать написание кода напрямую в Jenkins.

Для начала, напишем приветствие:

pipeline {
    agent any
    stages {
        stage(‘Hello’) {
            steps {
                echo ‘Hello World’
            }
        }
    }
}

Существует 2 способа написания pipeline — скриптовый и декларативный. В нашем примере используется последний. Благодаря строгому синтаксису, он проще читается — в декларативном пайплайне обязательно должны быть:

  1. Директива pipeline. В нее мы оборачиваем наш код.
  2. Определение агента. В нашем примере пока не задан конкретный (agent any), но ниже мы рассмотрим запуск конвейера в docker.
  3. Необходима директива stages, в которой, в свою очередь, определены стадии (stage).
  4. Обязательно указываем steps, в котором и будет наш код.

А также:

  • Экранирование некоторых символов можно сделать с помощью обратного слеша — \
  • Блок текста, например для его написания в несколько строк, можно обернуть в три одинарные кавычки — »’
  • Оставить комментарий на одну строку можно двумя прямыми слешами — //
  • Блок комментария делаем так — /* комментарий */

И нажимаем Сохранить:

* наш скрипт на Groovy будет сохранен в так называемый Jenkinsfile — это файл, в котором мы описываем этапы выполнения нашего задания с использованием pipeline.

Нас перекинет на страницу задания — слева кликаем по Собрать сейчас:

Конвейер немного поработает и выдаст результат, состоящий из одного шага:

Созданное задание работает — попробуем его усложнить.

Настройка Jenkins

Чтобы настроить новую установку Jenkins, откройте браузер, введите свой домен или IP-адрес, а затем порт , и отобразится экран, подобный следующему:

    Во время установки установщик Jenkins создает исходный буквенно-цифровой пароль длиной 32 символа. Используйте следующую команду, чтобы распечатать пароль на вашем терминале:

    Скопируйте пароль со своего терминала, вставьте его в поле пароля администратора и нажмите .

    На следующем экране мастер установки спросит вас, хотите ли вы установить предлагаемые плагины или выбрать определенные плагины. Щелкните поле, и процесс установки начнется немедленно.

    После установки плагинов вам будет предложено настроить первого пользователя-администратора. Заполните всю необходимую информацию и нажмите .

    На следующей странице вас попросят установить URL-адрес для вашего экземпляра Jenkins. Поле будет заполнено автоматически сгенерированным URL.

    Подтвердите URL-адрес, нажав кнопку, и процесс настройки будет завершен.

    Нажмите кнопку, и вы будете перенаправлены на панель управления Jenkins, в которую вошли как администратор, которого вы создали на одном из предыдущих шагов.

Подготовление к запуску #maven

Мавен делает сборки проектов. Делается это через командную строку. Чтобы мавен знал что и как собрать, а так же что туда добавить (например зависимости — dependencies) мы все это описываем в файле pom.xml который лежит в корне проекта.

Для облегчения процесса сборки и создания файла для эклипса был создан плагин m2eclipse. Установить m2eclipse можно прямо с эклипса в окне Install New Software (Help).

Будем работать через этот плагин, он фактически является графическим интерпретатором кода который заносится в pom.xml.

Итак, установили m2e плагин, теперь делаем из проекта — мавен проект — правой кнопкой на проект Configure — Convert to #maven project.

Заполняем форму и получаем pom.xml файл в корне папки проекта.

Dependency

Так как в нашем проекте есть как минимум две зависимости (dependency) это и необходимо их внести в пом файл.
Для этого заходим в него (двойной клик) и выбираем вкладку
и там начинаем вводить в третей строчке для поиска — “testng”, находим нужный нам () и добавляем. Так же находим и селениум написав “selenium java” и выбрали последний билд.

И n -после его добавления внимательно проверить чтобы этот плагин в пом файле разместился внутри тега , а не в депенденси тегах.

Обновляем пом файл чтобы оно видело testng.xml который покажет какие методы запускать.

вставить нужно такой код:

Готовый pom.xml файл

Итак у нас есть готовый пом файл, проверим на всякий случай его исходник чтобы быть увереными что все в нем есть:

нам для запуска необходимо иметь минимум два плагина maven-compiler-plugin и maven-surefire-plugin (в тегах которого мы прописали наш testng.xml), а так же для нашего проекта подключенные две зависимости тестэнджи и селениум, +.

Получился такой код pom.xml:

Инсталляция Jenkins

Как было сказано выше, мы установим openjava, сервис Jenkins и завершим развертывания на портале. Итого, 3 этапа.

1. Установка openjdk

Выполняем команду:

apt-get install default-jdk

Выбираем реализацию java по умолчанию с помощью утилиты update-alternatives:

update-alternatives —config java

Скорее всего, мы увидим сообщение:

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
Nothing to configure.

Это значит, что в системе установлена только одна реализация java. Но если их несколько, на запрос:

  Selection    Command
————————————————
*+ 1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java)

… выбираем вариант с подходящей версией, например, последней:

Enter to keep the current selection, or type selection number: 1

Готово. Смотрим версию установленной java:

java -version

Мы должны увидеть что-то на подобие:

openjdk version «11.0.10» 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

2. Установка Jenkins

Для установки сервиса Jenkins добавляем репозиторий:

vi /etc/apt/sources.list.d/jenkins.list

deb https://pkg.jenkins.io/debian-stable binary/

Импортируем публичный ключ для подключения к репозиторию:

wget -q -O — https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add —

Обновляем список пакетов:

apt-get update

Устанавливаем jenkins:

apt-get install jenkins

Разрешаем автозапуск сервиса:

systemctl enable jenkins

3. Завершение установки

Открываем браузер и переходим по адресу http://<IP-адреса сервера Jenkins>:8080 — откроется окно «Unlock Jenkins». В нем будет путь до файла, в котором нужно взять парольную фразу для разблокировки портала:

И так, на сервере вводим команду:

cat /var/lib/jenkins/secrets/initialAdminPassword

* где /var/lib/jenkins/secrets/initialAdminPassword — полный путь до файла, который отображен на стартовой странице установки.

Мы должны увидеть что-то на подобие:

# cat /var/lib/jenkins/secrets/initialAdminPassword
35635dce8b014707a2ec90937763cfe3

Используем данный пароль и вставляем его в поле Administrator password:

В следующем окне выбираем вариант установки плагинов — рекомендованные или по выбору:

* если мы не слишком хорошо знакомы с продуктом, выбираем рекомендованные плагины.

Начнется процесс развертывания Jenkins:

После создаем учетную запись для администратора:

На последней странице мы можем задать URL-адрес для нашего портала (или оставить IP-адрес):

Установка завершена.

Настройка Jenkins

Чтобы настроить новую установку Jenkins, откройте браузер, введите Ваш домен или IP – адрес с последующим портом 8080, http://your_ip_or_domain:8080.

Появится страница, подобная следующей, с предложением ввести пароль администратора, созданный во время установки.

Используйте catдля отображения пароля на терминале:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Вы должны увидеть буквенно-цифровой пароль длиной 32 символа, как показано ниже:

06cbf25d811a424bb236c76fd6e04c47

Скопируйте пароль из терминала, вставьте его в поле «Пароль администратора» и нажмите «Продолжить».

На следующем экране мастер установки спросит вас, хотите ли вы установить предлагаемые плагины или вы хотите выбрать определенные плагины.

Нажмите на поле «Установить предложенные плагины», и процесс установки начнется немедленно.

После установки плагинов вам будет предложено настроить первого пользователя-администратора. Заполните всю необходимую информацию и нажмите «Сохранить и продолжить».

На следующей странице вас попросят установить URL для вашего экземпляра Jenkins. Поле будет заполнено автоматически сгенерированным URL.

Подтвердите URL, нажав на кнопку Сохранить и закончить, и процесс установки будет завершен.

Нажмите на Start using Jenkinsкнопку, и вы будете перенаправлены на панель управления Jenkins, в которой вы зарегистрированы как администратор, созданный вами на одном из предыдущих шагов.

На данный момент вы успешно установили Jenkins на свой сервер.

Шаг 1 – Установка Jenkins

Версия Jenkins включена по умолчанию в пакеты Ubuntu не самой последней доступной версии от самого проекта. Для того, чтобы воспользоваться преимуществами последних исправлений и функций, мы будем использовать пакеты для проекта поддерживающие установку Jenkins.

Во-первых, мы добавим ключ репозитория в системе.

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

При добавлении ключа, система вернется . Далее мы добавляем адрес пакета в репозиторий Debian для удостоверения сервера :

echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

Далее, мы запустим так, что будет использовать новое хранилище:

sudo apt-get update

Наконец, мы установим Jenkins и его зависимости, в том числе Java:

sudo apt-get install jenkins

Теперь, когда Jenkins и его зависимость установились, мы запустим сервер Jenkins.

Создайте свое первое задание

  1. На домашней странице Jenkins выберите Create a job (Создание задания).

  2. Введите имя задания , выберите ) и нажмите кнопку ОК.

  3. Перейдите на вкладку Управление исходным кодом . Включите Git и введите следующий URL-адрес для значения URL репозитория : . Затем измените спецификатор ветви на .

  4. Выберите вкладку Build (Создание), нажмите Add build step (Добавление шага сборки).

  5. Из раскрывающегося меню выберите Invoke Gradle script (Вызов сценария Gradle).

  6. Выберите использовать оболочку Gradle, а затем введите в окне Расположение упаковщика и для задач.

  7. Выберите Дополнительно и введите в поле корневой скрипт сборки .

  8. Прокрутите к нижней части страницы и выберите Сохранить.

Установка плагина

При установке Jenkins система по умолчанию предлагает установить плагин pipeline. Вероятно, в нашей системе он есть. Но если плагин не установлен, переходим на стартовой странице веб-интерфейса Jenkins в раздел Настроить Jenkins:

Кликаем по Управление плагинами:

Переходим на вкладку Доступные и ищем нужный нам плагин по слову «pipeline». Мы получим большое количество результатов — нам нужен плагин с названием «Pipeline»:

Внизу экрана нажимаем Install without restart:

Мы увидим полный список компонентов, которые нужно будет установить для плагина — дожидаемся окончания процесса (мы должны увидеть «Успешно» или «Success»):

* в процессе установки плагина могут появиться сообщения об ошибках. Проблемы могут быть связаны с расхождением версий зависимых компонентов или необходимостью перезагрузки. Так или иначе, просматриваем такие сообщения и самостоятельно пытаемся в них разобраться.

После завершения установки, можно вернуться на главную страницу, кликнув по одноименной ссылке:

Наша система готова для создания конвейера.

Первый билд (джоба) на Jenkins-е

Создаем проект под свои нужды. Потом, создаем «Pipeline» проект, например:

Тестовый pipeline projec для Java

Нажимаем на «OK» и сейчас создадим все необходимое.

Находим «Run the build inside Docker containers» и ставим чекбокс. В поле «Docker Image» ставим наш образ, у меня — «jenkinsci/jnlp-slave:latest». Так же, можно прописать «Advanced settings» опции и выставить использовании по памяти. У меня все имеет вид:

Идем дальше, находим «Pipeline» вкладку и заполняем ее под свои нужды. У меня все приведено и имеет вид:

Т.е я заюзал свой гитлаб сервер. В нем есть репозиторий с проектом. Так же, добавил подключение к гитлабу. Собственно, все готово, можно нажимать на «SAVE»!

Слева вверху, нажимаем на «Build Now» и смотрим что получилось!

Если открыть «Manage Jenkins» -> «Manage Nodes», то появится jenkins-slave:

Видно что поднялся слейв и запустил джобу. Можно открыть ее и поглядеть статус выполнения:

Я думаю что на этом пока все, статья «Установка Jenkins и Jenkins-slave в Unix/Linux» завершена.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: