lean_delivery.jenkins

Installation de Jenkins 2

License Statut de construction Statut de construction Galaxy Ansible Ansible

Résumé

Ce rôle :

  • installe Jenkins 2 sur Ubuntu, Centos7, RHEL7
  • effectue une configuration minimale (ex. configuration SMTP, installation de plugins)

Tâches du rôle


  • Installer Jenkins
  • Installer des plugins
  • Configurer des plugins via JCasC
    • Configurer les paramètres SMTP via JCasC
    • Ajouter des identifiants via JCasC
  • Configurer des plugins via des scripts Groovy
    • Configurer les paramètres SMTP via des scripts Groovy
    • Ajouter des identifiants via des scripts Groovy
  • Générer des clés SSH et les copier sur les serveurs esclaves

Exigences


  • Version minimale d'Ansible pour l'installation : 2.7
  • Java 8 Statut de construction
  • Systèmes d'exploitation pris en charge :
    • CentOS
      • 8
    • RHEL
      • 8
    • Amazon Linux 2
    • Ubuntu 18
    • Debian 9

Variables du rôle


Configuration pour Jenkins

  • jenkins2_user - Utilisateur et groupe OS utilisés pour démarrer Jenkins
    par défaut : jenkins
  • jenkins2_package_version - Nom du package pour l'installation de Jenkins
    par défaut : jenkins
  • jenkins2_release_line - Version du package à installer : stable ou dernière
    par défaut : stable
  • jenkins2_disable_gpg_check - Vérification GPG ignorée (uniquement pour yum)
    par défaut : false
  • jenkins2_key_validate_certs - Vérifier les certificats lors de l'installation de la clé (uniquement pour yum)
    par défaut : true
  • jenkins2_context_path - Chemin de contexte de Jenkins
    par défaut : ''
  • jenkins2_cli_username - Utilisateur pour la connexion CLI de Jenkins
    par défaut : admin
  • jenkins2_cli_password - Mot de passe de l'utilisateur pour la connexion CLI de Jenkins
    par défaut : admin
  • jenkins2_home_directory - Répertoire où Jenkins stocke sa configuration et ses fichiers de travail (checkouts, rapports de construction, artefacts, ...)
    par défaut : /var/lib/jenkins

Configuration des paramètres de Jenkins : utilisés dans /etc/sysconfig/jenkins ou dans /etc/default/jenkins

  • jenkins2_config_java_cmd - Exécutable Java pour exécuter Jenkins
    par défaut : ''
  • jenkins2_config_java_options - Options à passer à Java lors de l'exécution de Jenkins.
    par défaut : -Djava.awt.headless=true -Djenkins.install.runSetupWizard=false -Dmail.smtp.starttls.enable='true' -Dhudson.slaves.WorkspaceList=_
  • jenkins2_config_http_port - Port sur lequel Jenkins écoute.
    par défaut : 8080
  • jenkins2_config_listen_address - Adresse IP sur laquelle Jenkins écoute pour les requêtes HTTP. Par défaut, toutes les interfaces (0.0.0.0).
    par défaut : ''
  • jenkins2_config_debug_level - Niveau de débogage pour les journaux -- plus la valeur est élevée, plus le niveau de détail est important. 5 est INFO.
    par défaut : 5
  • jenkins2_config_enable_access_log - Autoriser ou non l'enregistrement des accès.
    par défaut : no
  • jenkins2_config_handler_max - Nombre maximum de threads de travail HTTP.
    par défaut : 100
  • jenkins2_config_handler_idle - Nombre maximum de threads de travail HTTP inactifs.
    par défaut : 20
  • jenkins2_config_args - Passer des arguments arbitraires à Jenkins. Liste complète des options : java -jar jenkins.war --help
    par défaut : ''

Activer HTTPS

  • jenkins2_https_enabled - Utiliser ou non une connexion sécurisée.
    par défaut : true
  • jenkins2_http_disabled - Désactiver la connexion non sécurisée.
    par défaut : false
  • jenkins2_config_https_port - Port de Jenkins pour la connexion sécurisée (https).
    par défaut : 8443
  • jenkins2_local_keystore - Si vrai, cherche le keystore sur l'hôte Ansible à {{ jenkins2_local_keystore_path }}. Si faux, vérifie le keystore sur l'hôte distant. par défaut : false
  • jenkins2_local_keystore_path - Chemin vers le fichier de keystore local (pour ne pas créer de certificat auto-signé)
    par défaut : {{ role_path }}/files/{{ jenkins2_ssl_key_store_name }}
  • jenkins2_ssl_configure - Configurer ou non la connexion SSL pour Jenkins.
    par défaut : true
  • jenkins2_ssl_key_store_name - Nom du fichier de keystore. Si un fichier portant ce nom existe dans le dossier des rôles/fichiers, il sera utilisé comme keystore.
    par défaut : jenkins2-ssl.keystore.jks
  • jenkins2_ssl_key_size - Taille de la clé du certificat.
    par défaut : 4096
  • jenkins2_ssl_key_store_password - Mot de passe du keystore.
    par défaut : 123456
  • jenkins2_ssl_key_store - Chemin complet vers le fichier de keystore.
    par défaut : {{ jenkins2_home_directory }}/{{ jenkins2_ssl_key_store_name }}
  • jenkins2_ssl_certificate_provider - Uniquement pour les systèmes d'exploitation Linux. https://docs.ansible.com/ansible/latest/openssl_certificate_module.html.
    par défaut : selfsigned

Certificat

  • jenkins2_ca_domain - Nom de domaine du certificat.
    par défaut : example.com
  • jenkins2_local_pkey_file_name - Nom du certificat privé.
    par défaut : {{ ansible_hostname }}.ca-pkey.pem
  • jenkins2_local_cert_file_name - Nom du certificat public.
    par défaut : {{ ansible_hostname }}.ca-cert.pem

Configuration du proxy Jenkins

  • jenkins2_proxy_url - URL du proxy pour la configuration du téléchargement des plugins
    par défaut : ''
  • jenkins2_proxy_host - Nom d'hôte du serveur proxy
    par défaut : ''
  • jenkins2_proxy_port - Port du serveur proxy
    par défaut : 0
  • jenkins2_proxy_username - Nom d'utilisateur pour la connexion au proxy
    par défaut : ''
  • jenkins2_proxy_password - Mot de passe pour la connexion au proxy
    par défaut : ''
  • jenkins2_proxy_no_proxy_hosts - Hôtes à ignorer lors de l'utilisation du proxy
    par défaut : ''

Configuration de génération de clés SSH

  • jenkins2_ssh_keys_generate - ajouter la capacité de générer des paires de clés SSH sous l'utilisateur Jenkins
    par défaut : false
  • jenkins2_ssh_keys_private_keyname - nom de la clé privée
    par défaut : id_rsa
  • jenkins2_ssh_keys_size - taille de la clé SSH RSA
    par défaut : 4096
  • jenkins2_ssh_keys_inv_slave_groupname - nom du groupe esclave dans le fichier d'inventaire
    par défaut : jenkins_ssh_slaves

Mode de configuration de Jenkins

  • jenkins2_configure_by_casc - Configurer via JCasC jenkins2_configure_by_groovy doit être = false par défaut : true
  • jenkins2_jcasc_directory - Chemin relatif où JCasC recherchera des fichiers YAML par défaut : jcasc
  • jenkins2_jcasc_config - Configuration pour JCasC qui pourrait être copiée de la configuration existante telle quelle et collée dans cette variable Parfois, la configuration copiée de l'interface Jenkins n'est pas applicable à charger, elle doit être testée d'abord

Si jenkins2_configure_by_casc a été choisi, la configuration suivante ne devrait pas être utilisée :

  - Configuration globale des outils
  - paramètres SMTP
  - configuration des plugins Jenkins
  - configuration des identifiants
  - configuration du projet Bitbucket
  - configuration de SonarQube
  - copie de fichiers personnalisés
  - configuration de Gitlab
  - configuration de GitHub
  - configuration de Jira
  - configuration du plugin EC2
  - configuration de sécurité et d'autorisation
  - Configuration par défaut du plugin `active-directory`
  - Configuration par défaut du plugin `LDAP`

Utilisez uniquement la configuration JCasC ! Veuillez voir des exemples de playbooks ci-dessous

  • jenkins2_configure_by_groovy - Configurer via Groovy, peut être utilisé si la configuration via Groovy est plus pratique jenkins2_configure_by_casc doit être = false par défaut : false

Configuration des outils globaux

  • jenkins2_globaltools_enable - activer l'autoconfiguration pour tous les outils globaux
    par défaut : false
  • jenkins2_globaltools_jdk_enable - activer l'autoconfiguration pour JDK
    par défaut : true
  • jenkins2_globaltools_jdk_version - liste des versions pour JDK (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_jdk_cred_user - nom d'utilisateur pour le dépôt Oracle
    par défaut : 'user'
  • jenkins2_globaltools_jdk_cred_password - mot de passe pour le dépôt Oracle
    par défaut : 'password'
  • jenkins2_globaltools_jdk_template - nom du fichier de modèle de configuration JDK sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\jdk.groovy
  • jenkins2_globaltools_maven_enable - activer l'autoconfiguration pour Maven
    par défaut : true
  • jenkins2_globaltools_maven_version - liste des versions pour Maven (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_maven_template - nom du fichier de modèle de configuration Maven sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\maven.groovy
  • jenkins2_globaltools_ant_enable - activer l'autoconfiguration pour Ant
    par défaut : true
  • jenkins2_globaltools_ant_version - liste des versions pour Ant (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_ant_template - nom du fichier de modèle de configuration Ant sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\ant.groovy
  • jenkins2_globaltools_nodejs_enable - activer l'autoconfiguration pour Node.js
    par défaut : true
  • jenkins2_globaltools_nodejs_version - liste des versions de Node.js (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_nodejs_template - nom du fichier de modèle de configuration Node.js sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\nodejs.groovy
  • jenkins2_globaltools_sonarscanner_enable - activer l'autoconfiguration pour SonarQube Scanner
    par défaut : true
  • jenkins2_globaltools_sonarscanner_version - liste des versions pour SonarQube Scanner (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_sonarscanner_template - nom du fichier de modèle de configuration pour SonarQube Scanner sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\sonarscanner.groovy
  • jenkins2_globaltools_sonarscannermsbuild_enable - activer l'autoconfiguration pour SonarQube Scanner pour MSBuild
    par défaut : true
  • jenkins2_globaltools_sonarscannermsbuild_version - liste des versions pour SonarQube Scanner pour MSBuild (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_sonarscannermsbuild_template - nom du fichier de modèle de configuration pour SonarQube Scanner pour MSBuild sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\sonarscannermsbuild.groovy
  • jenkins2_globaltools_gradle_enable - activer l'autoconfiguration pour Gradle
    par défaut : true
  • jenkins2_globaltools_gradle_version - liste des versions pour le Scanner SonarQube pour Gradle (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_gradle_template - nom du fichier de modèle de configuration pour Gradle sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\gradle.groovy
  • jenkins2_globaltools_docker_enable - activer l'autoconfiguration pour Docker
    par défaut : true
  • jenkins2_globaltools_docker_version - liste des versions pour Docker (définie sous forme de liste)
    par défaut : []
  • jenkins2_globaltools_docker_template - nom du fichier de modèle de configuration Docker sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle par défaut : globaltools\docker.groovy

Paramètres SMTP

  • jenkins2_smtp_enabled - pour configurer les paramètres SMTP
    par défaut : true
  • jenkins2_smtp_sysad_email - e-mail de l'administrateur Jenkins
    par défaut : [email protected]
  • jenkins2_smtp_user - e-mail de l'administrateur Jenkins
    par défaut : [email protected]
  • jenkins2_smtp_password - mot de passe de l'utilisateur SMTP
    par défaut : password
  • jenkins2_smtp_port - port du serveur SMTP
    par défaut : 587
  • jenkins2_smtp_host - nom d'hôte du serveur SMTP
    par défaut : smtp.office365.com

Configuration des plugins Jenkins

  • jenkins2_updates_url - URL du centre de mise à jour. Utilisé comme URL de base pour télécharger les plugins et le fichier JSON update-center.json.
    par défaut : https://updates.jenkins.io
  • jenkins2_plugins_timeout - délai d'expiration pour l'installation des plugins
    par défaut : 2000
  • jenkins2_plugins_list - liste des plugins (sera fusionnée avec la liste suggérée)
    par défaut : []
  • jenkins2_plugins_version - Activer pour spécifier des numéros de version. Toutes les dépendances des plugins doivent être fournies dans jenkins2_plugins_dict.
    par défaut : false
  • jenkins2_plugins_install_dependencies - Installer les dépendances des plugins si la version exacte des plugins n'est pas fournie.
    par défaut : true
  • jenkins2_plugins_dict - dictionnaire de plugins utilisés à la place des listes si la version est activée. Entourez la version de guillemets pour empêcher la valeur d'être interprétée comme un nombre flottant. Exemple : ssh-slaves: '1.30.0' par défaut : {}
    jenkins2_plugins_version: false

Configuration des identifiants

  • jenkins2_credentials_enabled - pour ajouter des identifiants
    par défaut : true
  • jenkins2_credentials - carte des identifiants

Configuration des bibliothèques de pipeline

  • jenkins2_pipeline_libraries_enabled - pour configurer les bibliothèques de pipeline globales
    par défaut : false
  • jenkins2_pipeline_libraries_name - Nom de la bibliothèque à utiliser dans l'annotation @Library
    par défaut : Pipeline_Libraries
  • jenkins2_pipeline_libraries_url - URL du dépôt distant
    par défaut : ''
  • jenkins2_pipeline_libraries_version - Une version par défaut de la bibliothèque à charger si un script ne sélectionne pas une autre version. Cela pourrait être un nom de branche, une balise, un hash de commit, etc., selon le SCM.
    par défaut : 'master'

Configuration du projet Bitbucket

  • jenkins2_bitbucket_project_enabled - pour configurer l'équipe/projet Bitbucket
    par défaut : false
  • jenkins2_bitbucket_project_owner - Nom de l'équipe Bitbucket ou compte utilisateur Bitbucket. Cela pourrait également être un projet Bitbucket, si vous utilisez Bitbucket Server. Dans ce cas (Bitbucket Server) : Utilisez la clé de projet, pas le nom du projet. Si vous utilisez un compte utilisateur au lieu d'un projet, ajoutez un caractère "" avant le nom d'utilisateur, c'est-à-dire "joe".
    par défaut : Bitbucket_Project_Owner
  • jenkins2_bitbucket_project_repo_regexp - Expression régulière Java pour restreindre les noms des dépôts. Les noms de dépôts qui ne correspondent pas à l'expression régulière fournie seront ignorés.
    par défaut : ''
  • jenkins2_bitbucket_project_discover_branches_strategy - Détermine quelles branches sont découvertes. 1 - Exclure les branches qui sont également déposées en tant que PR, 2 - Seulement les branches qui sont également déposées en tant que PR, 3 - Toutes les branches.
    par défaut : 1
  • jenkins2_bitbucket_project_discover_pr_strategy - Détermine comment les demandes de tirage sont découvertes. 1 - Fusionner la demande de tirage avec la révision actuelle de la branche cible, 2 - La révision actuelle de la demande de tirage, 3 - La révision actuelle de la demande de tirage et la demande de tirage fusionnée avec la révision actuelle de la branche cible.
    par défaut : 1
  • jenkins2_bitbucket_project_scan_interval - La durée maximale depuis la dernière indexation qui est autorisée à s'écouler avant qu'une indexation ne soit déclenchée. par défaut : 60
  • jenkins2_bitbucket_project_autobuild_branches - Les branches correspondantes seront déclenchées automatiquement.
    par défaut : 'master|develop|PR-[0-9]+'

Configuration de SonarQube

  • jenkins2_sonarqube_enabled - pour ajouter une configuration SonarQube
    par défaut : false
  • jenkins2_sonarqube_name - Nom de SonarQube
    par défaut : SonarQube
  • jenkins2_sonarqube_url - URL du serveur SonarQube
    par défaut : http://localhost:9000
  • jenkins2_sonarqube_token - Jeton d'authentification SonarQube. Obligatoire lorsque l'accès anonyme est désactivé.
    par défaut : ''
  • jenkins2_sonarqube_maven_plugin - Version du sonar-maven-plugin. Si non spécifié, l'objectif sera sonar:sonar.
    par défaut : ''
  • jenkins2_sonarqube_arguments - Arguments supplémentaires en ligne de commande à passer au scanner SonarQube. Par exemple, -X.
    par défaut : ''
  • jenkins2_sonarqube_analysis_properties - Propriétés d'analyse supplémentaires sous forme de paires clé-valeur. Par exemple, sonar.analysis.mode=issues.
    par défaut : ''

Copie de fichiers personnalisés

  • jenkins2_custom_files_enabled - pour copier des fichiers personnalisés vers Jenkins
    par défaut : false
  • jenkins2_custom_files - carte avec les paramètres de fichiers
    par défaut : log_parser: src: '{{ role_path }}/files/pipeline_error_in_init_console' dest: '{{ jenkins2_home_directory }}' owner: '{{ jenkins2_user }}' group: '{{ jenkins2_user }}' mode: '0755'

Configuration de Gitlab

  • jenkins2_gitlab_enabled - pour activer la configuration de Gitlab
    par défaut : false
  • gitlab_external_url - URL externe de Gitlab
    par défaut : https://localhost
  • jenkins2_gitlab_token_cred - ID de jeton Gitlab (des identifiants : gitlabtoken dans l'exemple ci-dessous)
    par défaut : gitlab_token

Configuration de GitHub

  • jenkins2_github_enabled - pour activer la configuration de GitHub
    par défaut : false
  • github_external_url - URL externe de GitHub
    par défaut : https://localhost
  • github_manage_hooks - gérer les hooks GitHub
    par défaut : true
  • github_client_cache_size - taille du cache client GitHub
    par défaut : 20
  • jenkins2_github_token_cred - ID de jeton GitHub (des identifiants : secrettext dans l'exemple ci-dessous)
    par défaut : github_token

Configuration de Jira

  • jenkins2_jira_enabled - pour activer la configuration de Jira
    par défaut : false
  • jenkins2_jira_url - URL de Jira
    par défaut : https://jira.example.com
  • jenkins2_jira_alternative_url - URL alternative de Jira
    par défaut : https://jira.example.com
  • jenkins2_jira_use_http_auth - Cette option force Jenkins à se connecter à JIRA en utilisant l'authentification basique HTTP, au lieu de se connecter par RPC
    par défaut : true
  • jenkins2_jira_support_wiki_notation - si vrai, JIRA prend en charge les notations Wiki dans les commentaires. Si vrai, Jenkins postera des commentaires qui tirent parti de la notation Wiki. Si faux, Jenkins ne postera que des commentaires en texte brut
    par défaut : true
  • jenkins2_jira_record_scm_changes - Si vrai, les changements SCM seront enregistrés dans JIRA : lien vers le navigateur de dépôts scm et chemins de changement
    par défaut : false
  • jenkins2_jira_disable_changelog_annotations - Désactiver la création d'hyperliens JIRA dans le changelog
    par défaut : false
  • jenkins2_jira_issue_pattern - Vous pouvez définir votre propre modèle pour rechercher les identifiants de problèmes JIRA dans les journaux SCM
    par défaut : PATTERN.*
  • jenkins2_jira_update_relevant_issues - Si faux, les problèmes ne seront mis à jour que si la construction est réussie ou instable. Si vrai, les problèmes JIRA liés seront toujours mis à jour, quelle que soit le résultat de la construction
    par défaut : true
  • jenkins2_jira_credentials_id - ID des identifiants Jenkins pour Jira
    par défaut : jirauser
  • jenkins2_jira_connection_timeout - Délai d'attente de connexion pour les appels API REST de JIRA (en secondes)
    par défaut : 10
  • jenkins2_jira_read_timeout - Délai d'attente de lecture pour les appels API REST de JIRA (en secondes)
    par défaut : 30
  • jenkins2_jira_thread_executor_size - Taille du pool de threads Executor pour interroger Jira
    par défaut : 10
  • jenkins2_jira_visible_for_group - Indiquez le nom du groupe JIRA qui a le droit de voir le commentaire, laissez le champ vide pour rendre le commentaire accessible à tous les utilisateurs JIRA
    par défaut : ``
  • jenkins2_jira_visible_for_project_role - Indiquez le nom du rôle de projet JIRA qui a le droit de voir le commentaire, laissez le champ vide pour rendre le commentaire accessible à tous les utilisateurs JIRA
    par défaut : ``
  • jenkins2_jira_add_timestamps_for_comments - Si vrai, les entrées de changement SCM et la date et heure des commentaires seront enregistrées dans JIRA
    par défaut : true
  • jenkins2_jira_timestamp_format - Voir la documentation pour SimpleDateFormat pour obtenir de l'aide. Si non défini, DateFormat.SHORT pour la locale actuelle sera utilisé.
    par défaut : EEE, d MMM yyyy HH:mm:ss Z

Activer le plugin de sécurité des scripts permissif

  • jenkins2_permissive_script_enabled - activer la sécurité de script permissif.
    par défaut : true

Configuration du travail de semence

Plus d'infos sur le DSL https://jenkinsci.github.io/job-dsl-plugin/ https://github.com/jenkinsci/job-dsl-plugin

  • jenkins2_seed_job_enable - activer le travail de semence Jenkins
    par défaut : false
  • jenkins2_seed_job_template - nom du fichier de modèle DSL sans .j2. N'oubliez pas de configurer toutes les variables nécessaires pour le modèle Pour le modèle par défaut, il faut les variables suivantes : gitlab_external_url, gitlab_project_group, gitlab_project_name, ci_test_jenkins_slave_label, feature_verification_jenkins_slave_label
    par défaut : dsl_hybris_create_job.groovy
  • jenkins2_seed_job_ignore_existing - ignorer les travaux existants et ne pas les réécrire
    par défaut : true
  • jenkins2_seed_job_name - Nom du travail de semence Jenkins
    par défaut : 'seed_job'

Utilisez la variable jenkins2_credentials pour définir les propriétés des identifiants

Pour définir les identifiants AWS, définissez les variables :

  • aws_access_key
  • aws_secret_key

Pour établir une connexion Gitlab, merci de définir :

  • gitlab_master_password
  • gitlab_master_username
  • gitlab_master_token

Pour établir une connexion GitHub, merci de définir :

  • github_master_token
jenkins2_credentials_enabled: true # Définissez sur false pour désactiver la configuration des identifiants
jenkins2_credentials:
  slave:
    type: 'password'
    id: 'ci_slave'
    description: 'identifiants pour le serveur esclave Jenkins'
    username: 'user'
    password: 'password'
  jira:
    type: 'password'
    id: 'jirauser'
    description: 'nom d'utilisateur et mot de passe pour Jira'
    username: 'jiraUser'
    password: 'JiraUserPassword'
  pipeline_libraries:
    type: 'password'
    id: 'pipeline_libraries'
    description: 'nom d'utilisateur et mot de passe pour les bibliothèques de pipeline'
    username: 'pipelineLibrariesUser'
    password: 'pipelineLibrariesPassword'
  sshconnection:
    type: 'key'
    keySource: 0
    key: >
      -----BEGIN RSA PRIVATE KEY-----
      Ici pourrait être placée votre clé privée, 
      mais nous recommandons fortement de garder les clés privées dans un service de coffre-fort, 
      comme Ansible-vault ou Hashicorp-vault, etc.
      -----END RSA PRIVATE KEY-----
    id: 'sshagent'
    username: 'hybris'
    passphrase: ''
    description: 'identifiants pour l'utilisateur hybris afin de se connecter à distance'
  cidbsysuser:
    type: 'password'
    id: 'ciDBsysUser'
    description: 'utilisateur sys pour la base de données CI'
    username: 'root'
    password: 'Qwerty_123'
  fqa1dbuser:
    type: 'password'
    id: 'fqa1DBuser'
    description: 'utilisateur de base de données fqa1'
    username: 'fqa1user'
    password: 'fqa1password'
  dbtempuser:
    type: 'password'
    id: 'tempDBuser'
    description: 'utilisateur de base de données pour la découpe de données'
    username: 'DB_TEMP'
    password: 'DB_TEMP'
  gitlab_creds:
    type: 'password'
    id: 'GIT_CREDENTIALS'
    description: 'identifiants Gitlab nom d'utilisateur avec mot de passe'
    username: '{{ gitlab_master_username | default("admin") }}'
    password: '{{ gitlab_master_password | default("password") }}'
  jenkinshttpconnectionuser:
    type: 'password'
    id: 'Jenkins_http_connection'
    description: 'pour la connexion via CLI Jenkins ; utilisé pour vérifier la syntaxe du pipeline'
    username: '{{ jenkins2_cli_username }}'
    password: '{{ jenkins2_cli_password }}'
  gitlabusertoken:
    type: 'password'
    id: 'GIT_CREDENTIALS_TOKEN'
    description: 'à utiliser avec GL10.2+ mais pourrait être utilisé avec des versions antérieures'
    username: '{{ gitlab_master_username | default("admin") }}'
    password: '{{ gitlab_master_token | default("ToKen12345") }}'
  aws_credentials:
    type: 'password'
    id: 'AWS_CREDENTIALS'
    description: 'pour les opérations dans AWS'
    username: '{{ aws_access_key | default("AWSaccessKey") }}'
    password: '{{ aws_secret_key | default("AWSsecretKey") }}'
  gitlabtoken:
    type: 'gitlabtoken'
    id: 'gitlab_token'
    description: 'connexion Gitlab avec jeton'
    token: '{{ gitlab_master_token | default("ToKen12345") }}'
  githubtoken:
    type: 'secrettext'
    id: 'github_token'
    description: 'connexion GitHub avec jeton'
    token: '{{ github_master_token | default("ToKen12345") }}'
  aws_ec2_credentials:
    type: 'aws_creds'
    id: 'AWS_EC2_CREDS'
    description: 'pour le plugin EC2 afin de créer des instances EC2 pour les esclaves'
    access_key: '{{ aws_access_key | default("AWSaccessKey") }}'
    sec_key: '{{ aws_secret_key | default("AWSsecretKey") }}'
  bitbucket_project:
    type: 'password'
    id: 'bitbucket_project'
    description: 'nom d'utilisateur et mot de passe pour le projet Bitbucket'
    username: 'bitbucketProjectUser'
    password: 'bitbucketProjectPassword'

type a les options disponibles :

  1. key - si vous souhaitez configurer la clé privée SSH
  2. password - si vous souhaitez configurer un ensemble nom d'utilisateur/mot de passe
  3. gitlabtoken - si vous souhaitez configurer un jeton Gitlab (le plugin Gitlab doit être installé)
  4. aws_creds - si vous souhaitez configurer les identifiants EC2 (le plugin EC2 doit être installé)
  5. secrettext - si vous souhaitez configurer un jeton de type texte secret (utilisé par le plugin GITHUB, le jeton doit être enregistré avec les autorisations "admin:repo_hook", "repo", "repo:status")

keySource spécifie la méthode de fourniture de la clé privée :

  • 0 - DirectEntryPrivateKeySource. Si cette valeur est définie, vous devez placer votre clé privée dans la variable key en texte clair.
  • 1 - FileOnMasterPrivateKeySource. Si cette valeur est définie, vous devez placer le chemin absolu vers votre clé privée dans la variable key.
  • 2 - UsersPrivateKeySource. Si cette valeur est définie, Jenkins utilisera les clés privées par défaut de ~/.ssh.

Configuration du plugin EC2

jenkins2_ec2_cloud_parameters:
  cloud_name: 'AWS_cloud'
  credentials_id: 'AWS_EC2_CREDS'
  ssh_keys_credentials_id: 'SSH_CREDS'
  instance_cap_str: '2'
  private_key: |
    -----BEGIN RSA PRIVATE KEY-----
    Ici pourrait être placée votre clé privée, 
    mais nous recommandons fortement de garder les clés privées dans un service de coffre-fort, 
    comme Ansible-vault ou Hashicorp-vault, etc.
    -----END RSA PRIVATE KEY-----
  region: 'us-east-1'
  use_instance_profile_for_credentials: false
  role_arn: ''
  role_session_name: ''
jenkins2_ec2_ami_list:
  ci_ami:
    ami: 'ami-AAAAAAAA'
    associatePublicIp: false
    connectBySSHProcess: true
    connectUsingPublicIp: false
    customDeviceMapping: ''
    deleteRootOnTermination: true
    description: 'Esclave Jenkins pour CI'
    ebsOptimized: false
    iamInstanceProfile: ''
    idleTerminationMinutes: '5'
    initScript: ''
    instanceCapStr: '5'
    jvmopts: ''
    labelString: 'ci_slaves'
    launchTimeoutStr: ''
    numExecutors: '1'
    remoteAdmin: 'ec2-user'
    remoteFS: '/opt/jenkins'
    securityGroups: 'sg-11111111'
    stopOnTerminate: false
    subnetId: 'subnet-SSSSSSSS'
    tags:
      - {name: 'Name', value: 'Esclave CI'}
      - {name: 'Name2', value: 'Esclave CI2'}
    tmpDir: ''
    type: 't2.medium'
    useEphemeralDevices: true
    usePrivateDnsName: true
    userData: ''
    zone: 'us-east-1a,us-east-1b'
    monitoring: false
    SpotConfiguration:
      enabled: true
      useBidPrice: true
      spotMaxBidPrice: '0.0139'
      spotBlockReservationDuration: '0'
      fallbackToOndemand: false
    t2Unlimited: false
  fv_ami:
    ami: 'ami-BBBBBBBB'
    associatePublicIp: false
    connectBySSHProcess: true
    connectUsingPublicIp: false
    customDeviceMapping: ''
    deleteRootOnTermination: true
    description: 'Esclave Jenkins pour FV'
    ebsOptimized: false
    iamInstanceProfile: ''
    idleTerminationMinutes: '5'
    initScript: ''
    instanceCapStr: '5'
    jvmopts: ''
    labelString: 'ci_slaves'
    launchTimeoutStr: ''
    numExecutors: '1'
    remoteAdmin: 'ec2-user'
    remoteFS: '/opt/jenkins'
    securityGroups: 'sg-11111111'
    stopOnTerminate: false
    subnetId: 'subnet-SSSSSSSS'
    tags:
      - {name: 'Name', value: 'Esclave FV'}
    tmpDir: ''
    type: 't2.medium'
    useEphemeralDevices: true
    usePrivateDnsName: true
    userData: ''
    zone: 'us-east-1a,us-east-1b'
    monitoring: false
    SpotConfiguration:
      enabled: false
      useBidPrice: true
      spotMaxBidPrice: '0.0139'
      spotBlockReservationDuration: '0'
      fallbackToOndemand: false
    t2Unlimited: false

Configuration de la sécurité et de l'autorisation

  • jenkins2_security_enable: activer la sécurité Jenkins.
    par défaut : true

  • jenkins2_security_realm: Sélectionner le type de sécurité Jenkins. Disponibles : basic, ldap, active-directory par défaut : 'basic'

    Configuration par défaut du plugin active-directory

    jenkins2_active_directory_domain_name: 'domain.com'
    jenkins2_active_directory_domain_controller: 'server.domain.com:3268'
    jenkins2_active_directory_site: 'null'
    jenkins2_active_directory_bind_name: '[email protected]'
    jenkins2_active_directory_bind_pass: 'password'
    jenkins2_active_directory_start_tls: true
    jenkins2_active_directory_remove_irrelevant_groups: false
    

    Configuration par défaut du plugin LDAP

    jenkins2_ldap_server: 'ldap.server.com:3268'
    jenkins2_ldap_root_dn: 'dc=server,dc=com'
    jenkins2_ldap_user_search_base: ''
    jenkins2_ldap_user_search: 'mail={0}'
    jenkins2_ldap_group_search_base: ''
    jenkins2_ldap_group_search_filter: ''
    jenkins2_ldap_group_membership_filter: 'null'
    jenkins2_ldap_manager_dn: 'CN=User,OU=Auto Users,OU=Service,OU=Managed by Enterprise Admins,DC=server,DC=com'
    jenkins2_ldap_manager_password: 'Pa$$word'
    jenkins2_ldap_inhibit_infer_root_dn: true
    jenkins2_ldap_disable_mail_address_resolver: false
    jenkins2_ldap_display_name_attribute_name: 'displayname'
    jenkins2_ldap_mail_address_attribute_name: 'mail'
    
  • jenkins2_authorization_strategy_configure: activer la configuration de la stratégie d'autorisation
    par défaut : true

  • jenkins2_authorization_strategy: type de stratégie d'autorisation. Disponibles : logged-in, matrix-based
    par défaut : "logged-in"

  • jenkins2_authorization_strategy_logged_in_allow_anonymous_read: autoriser l'accès de lecture anonyme
    par défaut : false

=======

  • jenkins2_ssh_keys_slave_hosts - dictionnaire qui décrit les hôtes esclaves avec des utilisateurs SSH distants, ex :

    jenkins2_ssh_keys_slave_hosts:

    • host: test-jenkins-s1 users:
      • user1
      • user2

    vars: jenkins2_ssh_keys_slave_hosts: - {host: 'test-jenkins-s1', users: ['user1', 'user2']}

Exemple d'inventaire


[jenkins] server.example.com

[jenkins_ssh_slaves] slave1.example.com slave2.example.com

Exemple de playbook


- name: Installer et configurer Jenkins
  hosts: jenkins
  vars:
    jenkins2_ssh_keys_generate: true
    jenkins2_ssh_keys_slave_hosts:
      - {host: 'slave1.example.com', users: ['root', 'jenkins']}
      - {host: 'slave2.example.com', users: ['root', 'jenkins']}
  roles:
    - role: lean_delivery.java
      java_distribution: openjdk
      java_major_version: 11
      transport: repositories
    - role: lean_delivery.jenkins

Licence


Apache License

Information sur l'auteur


auteurs :

À propos du projet

Jenkins installation and configuration

Installer
ansible-galaxy install lean_delivery.jenkins
Licence
apache-2.0
Téléchargements
27k
Propriétaire
Simplify by using!