jenkins

Ansible Роль: Jenkins CI

CI

Устанавливает Jenkins CI на серверах RHEL/CentOS и Debian/Ubuntu.

Требования

Необходимо установить curl на сервере. Также более новые версии Jenkins требуют Java 8+ (смотрите тестовые плейбуки в директории molecule/default для примера, как использовать новые версии Java для вашей ОС).

Переменные Роли

Доступные переменные перечислены ниже с их значениями по умолчанию (см. defaults/main.yml):

jenkins_package_state: present

Состояние установки пакета jenkins. По умолчанию эта роль устанавливает Jenkins, но не обновляет его (при использовании установок на основе пакетов). Если вы хотите всегда обновлять до последней версии, измените это на latest.

jenkins_hostname: localhost

Имя хоста системы; обычно localhost работает нормально. Это будет использоваться во время настройки для связи с работающим экземпляром Jenkins через HTTP-запросы.

jenkins_home: /var/lib/jenkins

Домашняя директория Jenkins, которая используется для хранения артефактов, рабочих пространств и плагинов. Эта переменная позволяет переопределить расположение по умолчанию /var/lib/jenkins.

jenkins_http_port: 8080

HTTP-порт для веб-интерфейса Jenkins.

jenkins_admin_username: admin
jenkins_admin_password: admin

Учетные данные для учетной записи администратора, которые будут созданы в первый раз при установке Jenkins.

jenkins_admin_password_file: ""

Файл с паролем администратора, который будет создан в первый раз при установке Jenkins как /var/lib/jenkins/secrets/initialAdminPassword.

jenkins_jar_location: /opt/jenkins-cli.jar

Расположение, где будет храниться файл jenkins-cli.jar. Это используется для связи с Jenkins через CLI.

jenkins_plugins:
  - blueocean
  - name: influxdb
    version: "1.12.1"

Плагины Jenkins, которые будут установлены автоматически во время развертывания. По умолчанию список пуст ([]). Элементы могут использовать название или словарь с ключами name и version, чтобы зафиксировать конкретную версию плагина.

jenkins_plugins_install_dependencies: true

Должны ли устанавливаемые плагины Jenkins также устанавливать все зависимости плагинов.

jenkins_plugins_state: present

Используйте latest, чтобы убедиться, что все плагины работают с самой последней версией. Для любого плагина, который имеет конкретную версию, установленную в списке jenkins_plugins, будет использоваться состояние present вместо значения jenkins_plugins_state.

jenkins_plugin_updates_expiration: 86400

Количество секунд, после которого загружается новая копия файла update-center.json. Установите 0, если кэш-файл не должен использоваться.

jenkins_updates_url: "https://updates.jenkins.io"

URL для обновлений плагинов Jenkins и информации об update-center.

jenkins_plugin_timeout: 30

Тайм-аут соединения с сервером, в секундах, при установке плагинов Jenkins.

jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"

(Необязательно) Версия Jenkins может быть зафиксирована на любую доступную версию на http://pkg.jenkins-ci.org/debian/ (Debian/Ubuntu) или http://pkg.jenkins-ci.org/redhat/ (RHEL/CentOS). Если нужная версия Jenkins недоступна по умолчанию, вы можете переопределить URL своим; установите jenkins_pkg_url (Примечание: роль зависит от той же схемы именования, которую использует http://pkg.jenkins-ci.org/).

jenkins_url_prefix: ""

Используется для установки префикса URL для вашей установки Jenkins. Опция добавляется как --prefix={{ jenkins_url_prefix }} к команде инициализации Jenkins java, чтобы вы могли получить доступ к установке по пути, например, http://www.example.com{{ jenkins_url_prefix }}. Убедитесь, что вы начинаете префикс с / (например, /jenkins).

jenkins_connection_delay: 5
jenkins_connection_retries: 60

Время ожидания и количество попыток подключения к Jenkins после первичного запуска, чтобы проверить, что Jenkins работает. Общее время ожидания = delay * retries, поэтому по умолчанию эта роль будет ждать до 300 секунд перед таймаутом.

jenkins_prefer_lts: false

По умолчанию эта роль будет устанавливать последнюю версию Jenkins, используя официальные репозитории в зависимости от платформы. Вы можете установить текущую LTS-версию, установив это значение в false.

Также можно переопределить стандартные репозитории (перечислены ниже).

# Для RedHat/CentOS:
jenkins_repo_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.repo
jenkins_repo_key_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key

# Для Debian/Ubuntu:
jenkins_repo_url: deb https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }} binary/
jenkins_repo_key_url: https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key

Также можно предотвратить добавление файла репозитория, установив jenkins_repo_url: ''. Это полезно, если, например, вы подписываете свои собственные пакеты или используете внутреннее управление пакетами (например, Spacewalk).

jenkins_options: ""

Дополнительные опции (например, установка таймаута HTTP keep alive), которые можно передать Jenkins при запуске через JENKINS_OPTS в файле systemd override.conf, можно настроить с помощью переменной jenkins_options. По умолчанию опции не указаны.

jenkins_java_options: "-Djenkins.install.runSetupWizard=false"

Дополнительные Java-опции для команды запуска Jenkins, настраиваемые через JENKINS_JAVA_OPTS в файле systemd override.conf, можно задать с помощью переменной jenkins_java_options. Например, если вы хотите настроить временную зону, используемую Jenkins, добавьте -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York. По умолчанию добавляется опция для отключения мастера настройки Jenkins 2.0.

jenkins_init_changes:
  - option: "JENKINS_OPTS"
    value: "{{ jenkins_options }}"
  - option: "JAVA_OPTS"
    value: "{{ jenkins_java_options }}"
  - option: "JENKINS_HOME"
    value: "{{ jenkins_home }}"
  - option: "JENKINS_PREFIX"
    value: "{{ jenkins_url_prefix }}"
  - option: "JENKINS_PORT"
    value: "{{ jenkins_http_port }}"

Изменения, внесенные в файл systemd override.conf Jenkins; стандартный набор изменений устанавливает настроенный префикс URL, домашнюю директорию Jenkins, порт Jenkins и добавляет настроенные опции Jenkins и Java для запуска Jenkins. Вы можете добавить другие пары опция/значение, если вам нужно установить другие опции для файла systemd override.conf Jenkins.

jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
  - "127.0.0.1"
  - "localhost"

Если вы запускаете Jenkins за прокси-сервером, настройте эти параметры соответственно. В противном случае Jenkins будет настроен на прямое подключение к Интернету.

Зависимости

Нет.

Пример плейбука

- hosts: jenkins
  become: true
  
  vars:
    jenkins_hostname: jenkins.example.com
    java_packages:
      - openjdk-8-jdk

  roles:
    - role: geerlingguy.java
    - role: geerlingguy.jenkins

Обратите внимание, что для различных дистрибутивов могут потребоваться разные версии java_packages (например, openjdk-11-jdk для Debian 10 или java-1.8.0-openjdk для RHEL 7 или 8).

Лицензия

MIT (Expat) / BSD

Информация об авторе

Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.

Установить
ansible-galaxy install geerlingguy/ansible-role-jenkins
Лицензия
mit
Загрузки
2397931
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns