geerlingguy.jenkins
Rôle Ansible : Jenkins CI
Installe Jenkins CI sur les serveurs RHEL/CentOS et Debian/Ubuntu.
Exigences
Nécessite que curl
soit installé sur le serveur. De plus, les versions plus récentes de Jenkins nécessitent Java 8 ou supérieur (voir les playbooks de test dans le répertoire molecule/default
pour un exemple d'utilisation des nouvelles versions de Java pour votre système d'exploitation).
Variables de rôle
Les variables disponibles sont énumérées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
):
jenkins_package_state: présent
L'état de l'installation du paquet jenkins
. Par défaut, ce rôle installe Jenkins mais ne le met pas à jour (lors de l'utilisation d'installations basées sur des paquets). Si vous souhaitez toujours mettre à jour vers la dernière version, changez ceci en latest
.
jenkins_hostname: localhost
Le nom d'hôte du système ; généralement localhost
fonctionne bien. Cela sera utilisé lors de la configuration pour communiquer avec l'instance Jenkins en cours d'exécution via des requêtes HTTP.
jenkins_home: /var/lib/jenkins
Le répertoire personnel de Jenkins, qui est utilisé pour stocker des artefacts, des espaces de travail et des plugins. Cette variable vous permet de remplacer l'emplacement par défaut /var/lib/jenkins
.
jenkins_http_port: 8080
Le port HTTP pour l'interface web de Jenkins.
jenkins_admin_username: admin
jenkins_admin_password: admin
Identifiants du compte administrateur par défaut qui seront créés lors de la première installation de Jenkins.
jenkins_admin_password_file: ""
Fichier de mot de passe administrateur par défaut qui sera créé lors de la première installation de Jenkins sous /var/lib/jenkins/secrets/initialAdminPassword.
jenkins_jar_location: /opt/jenkins-cli.jar
L'emplacement où le fichier jenkins-cli.jar
sera conservé. Ceci est utilisé pour communiquer avec Jenkins via la CLI.
jenkins_plugins:
- blueocean
- nom: influxdb
version: "1.12.1"
Plugins Jenkins à installer automatiquement lors de l'approvisionnement. Par défaut, la liste est vide ([]
). Les éléments peuvent utiliser un nom ou un dictionnaire avec des clés nom
et version
pour fixer une version spécifique d'un plugin.
jenkins_plugins_install_dependencies: true
Indique si les plugins Jenkins à installer doivent également installer toutes les dépendances des plugins.
jenkins_plugins_state: présent
Utilisez latest
pour vous assurer que tous les plugins utilisent la version la plus à jour. Pour tout plugin ayant une version spécifique définie dans la liste jenkins_plugins
, l'état présent
sera utilisé au lieu de la valeur de jenkins_plugins_state
.
jenkins_plugin_updates_expiration: 86400
Nombre de secondes après lequel une nouvelle copie du fichier update-center.json est téléchargée. Mettez-le à 0 si aucun fichier cache ne doit être utilisé.
jenkins_updates_url: "https://updates.jenkins.io"
L'URL à utiliser pour les mises à jour des plugins Jenkins et les informations de mise à jour-center.
jenkins_plugin_timeout: 30
Le délai de connexion au serveur, en secondes, lors de l'installation des plugins Jenkins.
jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"
(Optionnel) Vous pouvez fixer la version de Jenkins à n'importe quelle version disponible sur http://pkg.jenkins-ci.org/debian/
(Debian/Ubuntu) ou http://pkg.jenkins-ci.org/redhat/
(RHEL/CentOS). Si la version de Jenkins dont vous avez besoin n'est pas disponible dans les URL de paquets par défaut, vous pouvez remplacer l'URL par la vôtre ; définissez jenkins_pkg_url
(Remarque: le rôle dépend de la même convention de nommage utilisée par http://pkg.jenkins-ci.org/
).
jenkins_url_prefix: ""
Utilisé pour définir un préfixe d'URL pour votre installation Jenkins. L'option est ajoutée comme --prefix={{ jenkins_url_prefix }}
à l'invocation java
d'initialisation de Jenkins, donc vous pouvez accéder à l'installation à un chemin comme http://www.example.com{{ jenkins_url_prefix }}
. Assurez-vous que vous commencez le préfixe par un /
(par exemple, /jenkins
).
jenkins_connection_delay: 5
jenkins_connection_retries: 60
Temps d'attente et nombre de fois à attendre lors de la connexion à Jenkins après le démarrage initial, pour vérifier que Jenkins fonctionne. Le temps total à attendre = delay
* retries
, donc par défaut, ce rôle attendra jusqu'à 300 secondes avant de délaisser.
jenkins_prefer_lts: false
Par défaut, ce rôle installera la dernière version de Jenkins en utilisant les dépôts officiels en fonction de la plateforme. Vous pouvez installer la version LTS actuelle à la place en définissant ceci sur false
.
Les dépôts par défaut (énumérés ci-dessous) peuvent également être remplacés.
# Pour 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
# Pour 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
Il est également possible d'empêcher l'ajout du fichier de dépôt en définissant jenkins_repo_url: ''
. Cela est utile si, par exemple, vous signez vos propres paquets ou exécutez une gestion de paquets interne (par exemple, Spacewalk).
jenkins_options: ""
Options supplémentaires (par exemple, définir le délai de maintien de la connexion HTTP) à transmettre à Jenkins au démarrage via JENKINS_OPTS
dans le fichier override.conf de systemd peuvent être configurées à l'aide de la variable jenkins_options
. Par défaut, aucune option n'est spécifiée.
jenkins_java_options: "-Djenkins.install.runSetupWizard=false"
Options Java supplémentaires pour la commande de lancement de Jenkins configurées via JENKINS_JAVA_OPTS
dans le fichier override.conf de systemd peuvent être définies avec la variable jenkins_java_options
. Par exemple, si vous souhaitez configurer le fuseau horaire utilisé par Jenkins, ajoutez -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York
. Par défaut, l'option pour désactiver l'assistant de configuration de Jenkins 2.0 est ajoutée.
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 }}"
Modifications apportées au fichier override.conf de systemd pour Jenkins ; l'ensemble par défaut des modifications définit le préfixe d'URL configuré, le répertoire personnel de Jenkins, le port Jenkins et ajoute les options configurées pour Jenkins et Java au démarrage de Jenkins. Vous pouvez ajouter d'autres couples option/valeur si vous avez besoin de définir d'autres options pour le fichier override.conf de systemd.
jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
- "127.0.0.1"
- "localhost"
Si vous exécutez Jenkins derrière un serveur proxy, configurez ces options en conséquence. Sinon, Jenkins sera configuré avec une connexion Internet directe.
Dépendances
Aucune.
Exemple de Playbook
- hosts: jenkins
become: true
vars:
jenkins_hostname: jenkins.example.com
java_packages:
- openjdk-8-jdk
roles:
- role: geerlingguy.java
- role: geerlingguy.jenkins
Notez que java_packages
peut nécessiter différentes versions selon votre distribution (par exemple, openjdk-11-jdk
pour Debian 10, ou java-1.8.0-openjdk
pour RHEL 7 ou 8).
Licence
MIT (Expat) / BSD
Informations sur l'auteur
Ce rôle a été créé en 2014 par Jeff Geerling, auteur de Ansible for DevOps.
ansible-galaxy install geerlingguy.jenkins