Статьи

Установка и защита Jenkins

Ранее в этом году я написал статью о PHP-CI, которую вы можете использовать в качестве инструмента непрерывной интеграции для своих проектов PHP. В этой статье я указал, что мне по-прежнему нравится Дженкинс больше всего как инструмент КИ. Пришло время погрузиться в Jenkins и посмотреть, как мы можем настроить это для нашего проекта PHP.

Введение в Дженкинс

Список вещей, которые Jenkins может предложить, огромен из-за богатой системы плагинов. По сути, Jenkins — это всего лишь инструмент, который объединяет различные инструменты и плагины для создания отчета. Например, он может запустить PHPUnit и показать вам результаты в виде графика с течением времени. Он может проверить ваш PHP-код на наличие ошибок, запустив php -l . Однако вы также можете позволить Jenkins создать проект и вывести zip-файл, который вы можете использовать для развертывания своего приложения. Преимущество этого заключается в том, что вы получаете полный zip-файл для обновления вашего производственного приложения без необходимости запуска инструментов, таких как Composer или NPM, на ваших производственных серверах.

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

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

В основном мы сосредоточимся на качестве кода PHP, но в конце мы также кратко рассмотрим анализ наших HTML, CSS и JavaScript, которые работают в тесной гармонии с PHP.

Установка Дженкинс

Вы можете установить Jenkins на любую популярную операционную систему. Для этой статьи мы собираемся установить Jenkins на Ubuntu Server 14.04 LTS. Если вы используете другую операционную систему, вы можете проверить здесь инструкции по установке для каждой операционной системы. Чтобы установить Jenkins в Ubuntu, проще всего было бы выполнить эту команду.

 sudo apt - get  install jenkins 

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

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

Теперь мы запускаем следующую команду, чтобы добавить Jenkins в файл sources.list .

 deb http : //pkg.jenkins-ci.org/debian binary/ 

Теперь мы готовы установить Jenkins.

 sudo apt - get  update sudo apt - get  install jenkins 

После завершения Jenkins успешно установлен на вашем сервере.

Теперь вы можете связаться с Jenkins через браузер, добавив порт 8080 в конец URL-адреса. Итак, представьте, что мой сервер называется ci.myserver.com вы можете связаться с Дженкинсом по ci.myserver.com:8080 .

Jenkins ,

Обеспечение Дженкинс

Первое, что вы должны заметить, это то, что Дженкинс полностью открыт. Любой, кто сейчас идет по этому URL, может выполнять все виды различных задач, поэтому первое, что мы собираемся сделать, это обеспечить его безопасность. Мы начнем с нажатия на Manage Jenkins в боковом меню. где нас встретит уведомление от Jenkins, рекомендующее защитить CI-сервер.

Jenkins

Нажмите кнопку « Setup Security , чтобы продолжить. На следующей странице enable security флажок « enable security как отмеченный. Следующие шаги крайне важны для правильного выполнения, потому что легко запереться в Дженкинс. Если это произойдет, вы можете выполнить следующие действия, чтобы получить доступ снова.

Первое, что вам нужно сделать, это установить область безопасности. Самый простой из них — иметь Jenkins собственную базу данных пользователей, установив флажок напротив Jenkins' own user database . Убедитесь, что опция allow users to sign up также включена. Теперь сохраните вашу конфигурацию, нажав save .

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

Вернитесь к настройкам безопасности, нажав « Manage Jenkins а затем — « Configure Global Security . Теперь вы должны снять флажок « allow users to sign up чтобы убедиться, что новые учетные записи не могут быть созданы без вашего разрешения.

Далее мы собираемся установить авторизацию. Наилучшими вариантами для вас являются либо matrix based security либо Project-based Matrix Authorization Strategy . Это позволяет вам установить для каждого пользователя, какие действия они могут и не могут выполнять. Если вы выберете последний вариант, вы сможете даже установить его для каждого проекта. Сейчас я собираюсь выбрать matrix based security .

Таблица с разрешениями теперь отображается. Вы увидите только одну строку таблицы, в которой вы можете определить, что может делать анонимный пользователь. Однако мы хотим установить разрешения для нашей учетной записи. Поэтому введите свое имя пользователя в поле ниже и нажмите кнопку Add . Чтобы убедиться, что у вас есть доступ ко всему, вы можете проверить их все.

В конце концов это то, на что это похоже.

Jenkins

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

При сохранении вы автоматически выйдете из системы. Обратите внимание, что вы больше ничего не видите, кроме формы входа. После входа в систему вы должны иметь доступ ко всему, как раньше. Если вы получили ошибку разрешения, вы допустили ошибку, и вам нужно либо изменить настройки, либо вы были заблокированы из Jenkins. В последнем случае см. Ссылку выше.

Готовим Дженкинс

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

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

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

  • Checkstyle
  • cloverphp
  • crap4j
  • сухой
  • htmlpublisher
  • jdepend
  • участок
  • программно-методическая документация
  • нарушения
  • XUnit

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

В Jenkins перейдите в Manage Jenkins а затем в Manage Plugins . Нажмите на вкладку с именем available . Здесь вы увидите полный список всех доступных плагинов. С фильтром в правом верхнем углу вы можете быстро найти любой плагин. Убедитесь, что вы установили полный список плагинов, упомянутых выше, установив флажки.

Jenkins

Установите флажок перед Restart Jenkins when installation is complete and no jobs are running чтобы перезапустить Jenkins, когда все будет сделано. После перезагрузки все необходимые плагины были установлены правильно.

Создание шаблона

Когда Jenkins настроен, мы обычно начинаем с создания проекта, иногда называемого работой. Проект — это, как правило, один PHP-проект, который вы получили. В рамках проекта у вас будет несколько сборок. Вы можете настроить Jenkins для анализа (построения) вашего кода в определенные моменты. Это могут быть запланированные интервалы или, например, по запросу от участников. Таким образом, проект содержит несколько сборок с течением времени, каждая из которых представляет собой отдельный анализ вашего кода. Благодаря установленным плагинам, вы сможете увидеть результаты этих сборок в симпатичных графиках. На этих графиках вы можете быстро определить, повлияла ли определенная сборка на качество вашего проекта. Мы также можем увидеть, где нам нужно улучшить наш код в соответствии со всеми нашими инструментами.

Теперь мы можем создать новый проект. Однако нам также необходимо настроить этот проект. Например, мы можем настроить, чтобы каждый раз при запуске PHPUnit создавалась страница покрытия кода, чтобы мы могли видеть, какой код тестируется, а какой код не тестируется. Нам нужно настроить множество тестов для нового проекта, и это, вероятно, потребует много времени. К счастью, Себастьян Бергманн также создал шаблон, который мы собираемся использовать.

Нам нужно открыть командную строку, чтобы установить этот шаблон. Самый простой способ — загрузить инструмент CLI, предоставленный Jenkins. Проблема, однако, заключается в том, что мы обеспечили нашу установку Jenkins ранее. Это означало бы, что мы должны открыть безопасность обратно анонимному или подключить открытый / закрытый ключ к нашей учетной записи.

В этом случае мы будем использовать альтернативный способ установки шаблона. Сначала войдите в систему как пользователь Jenkins в командной строке и перейдите в домашний каталог.

 sudo su jenkins cd ~ 

В домашнем каталоге перейдите в каталог jobs и создайте новый каталог с именем php-template .

 cd jobs mkdir php - template 

Теперь мы собираемся войти в этот каталог и добавить файл конфигурации.

 cd php - template wget https : //raw.github.com/sebastianbergmann/php-jenkins-template/master/config.xml 

Теперь нам нужно, чтобы Дженкинс перезагрузил свою конфигурацию. Вы можете сделать это, вернувшись в веб-интерфейс, щелкнув « Manage Jenkins и нажав « Reload Configuration from Disk . Дженкинс теперь перезагрузит свою конфигурацию. Когда вы закончите, вы должны увидеть проект php-template на главной странице обзора.

Jenkins

Дженкинс теперь готов. Мы можем создавать новые проекты на основе этого шаблона.

Вывод

В этой статье мы установили, защитили и подготовили Jenkins к анализу нашего PHP-проекта. В следующей части мы добавим наш проект, подготовим его и, конечно, проанализируем.