geerlingguy.jenkins

Rôle Ansible : Jenkins CI

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.

Installer
ansible-galaxy install geerlingguy.jenkins
Licence
mit
Téléchargements
2.7M
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns