jenkins
Ansible Роль: Jenkins 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