Chapitre 1. Configuration des images Jenkins
Le service OpenShift Red Hat sur AWS fournit une image de conteneur pour exécuter Jenkins. Cette image fournit une instance de serveur Jenkins, qui peut être utilisée pour configurer un flux de base pour les tests, l’intégration et la livraison en continu.
L’image est basée sur le Red Hat Universal Base Images (UBI).
Le service Red Hat OpenShift sur AWS suit la version LTS de Jenkins. Le service OpenShift Red Hat sur AWS fournit une image contenant Jenkins 2.x.
Le service OpenShift Red Hat sur les images AWS Jenkins est disponible sur Quay.io ou register.redhat.io.
À titre d’exemple:
podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>
$ podman pull registry.redhat.io/ocp-tools-4/jenkins-rhel8:<image_tag>
Afin d’utiliser ces images, vous pouvez y accéder directement à partir de ces registres ou les pousser dans votre service Red Hat OpenShift sur le registre des images conteneur AWS. En outre, vous pouvez créer un flux d’images qui pointe vers l’image, que ce soit dans votre registre d’images conteneur ou à l’emplacement externe. Le Red Hat OpenShift Service sur les ressources AWS peut ensuite faire référence au flux d’images.
Cependant, pour plus de commodité, Red Hat OpenShift Service sur AWS fournit des flux d’images dans l’espace de noms openshift pour l’image principale de Jenkins ainsi que l’exemple des images Agent fournies pour Red Hat OpenShift Service sur l’intégration AWS avec Jenkins.
1.1. Configuration et personnalisation Copier lienLien copié sur presse-papiers!
Il est possible de gérer l’authentification Jenkins de deux manières:
- Authentification Red Hat OpenShift sur AWS OAuth fournie par Red Hat OpenShift Service sur AWS Login plugin.
- Authentification standard fournie par Jenkins.
1.1.1. Authentification Red Hat OpenShift sur AWS OAuth Copier lienLien copié sur presse-papiers!
L’authentification OAuth est activée en configurant des options sur le panneau Configurer la sécurité globale dans l’interface utilisateur de Jenkins, ou en définissant la variable d’environnement OPENSHIFT_ENABLE_OAUTH sur la configuration de déploiement Jenkins à autre chose que fausse. Cela active le Red Hat OpenShift Service sur AWS Login plugin, qui récupère les informations de configuration à partir des données de pod ou en interagissant avec le service Red Hat OpenShift sur le serveur API AWS.
Les informations d’identification valides sont contrôlées par le service Red Hat OpenShift sur le fournisseur d’identité AWS.
Jenkins prend en charge l’accès navigateur et non navigateur.
Les utilisateurs valides sont automatiquement ajoutés à la matrice d’autorisation Jenkins lors de la connexion, où Red Hat OpenShift Service sur les rôles AWS dicte les autorisations spécifiques Jenkins que les utilisateurs ont. Les rôles utilisés par défaut sont l’administrateur, l’édition et la vue prédéfinis. Le plugin de connexion exécute des requêtes auto-SAR contre ces rôles dans le projet ou l’espace de noms dans lesquels Jenkins est en cours d’exécution.
Les utilisateurs ayant le rôle d’administrateur ont les autorisations administratives traditionnelles d’utilisateur Jenkins. Les utilisateurs avec le rôle d’édition ou de vue ont progressivement moins d’autorisations.
Le Red Hat OpenShift Service par défaut sur AWS admin, éditer et afficher les rôles et les autorisations Jenkins que ces rôles sont attribués dans l’instance Jenkins sont configurables.
Lors de l’exécution de Jenkins dans un service OpenShift Red Hat sur AWS pod, le plugin de connexion recherche une carte de configuration nommée openshift-jenkins-login-plugin-config dans l’espace de noms dans lequel Jenkins est en cours d’exécution.
Lorsque ce plugin trouve et peut lire dans cette carte de configuration, vous pouvez définir le rôle à Jenkins Permission mappings. En particulier:
- Le plugin de connexion traite les paires de clés et de valeur dans la carte de configuration comme l’autorisation Jenkins de Red Hat OpenShift Service sur les cartographies de rôles AWS.
- La clé est l’ID court du groupe d’autorisations Jenkins et l’ID court d’autorisation Jenkins, les deux étant séparés par un caractère de trait d’union.
- Dans le cas où vous souhaitez ajouter l’autorisation globale d’administration Jenkins à un service OpenShift Red Hat sur le rôle AWS, la clé devrait être l’administrateur général.
- Afin d’obtenir une idée des groupes d’autorisation et des identifiants d’autorisation disponibles, accédez à la page d’autorisation de matrice de la console Jenkins et des ID pour les groupes et les autorisations individuelles dans la table qu’ils fournissent.
- La valeur de la paire clé et valeur est la liste de Red Hat OpenShift Service sur les rôles AWS auxquels l’autorisation devrait s’appliquer, chaque rôle étant séparé par une virgule.
- Dans le cas où vous souhaitez ajouter l’autorisation d’administration globale Jenkins aux rôles d’administrateur et d’édition par défaut, ainsi qu’à un nouveau rôle Jenkins que vous avez créé, la valeur de la clé Administrateur général serait admin,edit,jenkins.
L’utilisateur admin qui est pré-rempli dans le service Red Hat OpenShift sur l’image AWS Jenkins avec des privilèges administratifs ne reçoit pas ces privilèges lorsque Red Hat OpenShift Service sur AWS OAuth est utilisé. Afin d’accorder ces autorisations, le service Red Hat OpenShift sur l’administrateur du cluster AWS doit définir explicitement cet utilisateur dans le service Red Hat OpenShift sur le fournisseur d’identité AWS et attribuer le rôle d’administrateur à l’utilisateur.
Les autorisations des utilisateurs de Jenkins qui sont stockées peuvent être modifiées après que les utilisateurs ont été initialement établis. Le Red Hat OpenShift Service sur AWS Login plugin sonde le service OpenShift Red Hat sur le serveur de l’API AWS pour les autorisations et met à jour les autorisations stockées dans Jenkins pour chaque utilisateur avec les autorisations récupérées à partir de Red Hat OpenShift Service sur AWS. Lorsque l’interface utilisateur de Jenkins est utilisée pour mettre à jour les autorisations d’un utilisateur Jenkins, les modifications d’autorisation sont annulées la prochaine fois que le plugin sonde Red Hat OpenShift Service sur AWS.
Contrôlez la fréquence à laquelle le sondage se produit avec la variable d’environnement OPENSHIFT_PERMISSIONS_POLL_INTERVAL. L’intervalle de sondage par défaut est de cinq minutes.
La façon la plus simple de créer un nouveau service Jenkins en utilisant l’authentification OAuth est d’utiliser un modèle.
1.1.2. Authentification Jenkins Copier lienLien copié sur presse-papiers!
L’authentification Jenkins est utilisée par défaut si l’image est exécutée directement, sans utiliser de modèle.
La première fois que Jenkins démarre, la configuration est créée avec l’utilisateur administrateur et le mot de passe. Les identifiants d’utilisateur par défaut sont admin et mot de passe. Configurez le mot de passe par défaut en définissant la variable d’environnement JENKINS_PASSWORD lorsque vous utilisez et uniquement lorsque vous utilisez l’authentification Jenkins standard.
Procédure
Créez une application Jenkins qui utilise l’authentification standard Jenkins en entrant la commande suivante:
oc new-app -e \ JENKINS_PASSWORD=<password> \ ocp-tools-4/jenkins-rhel8
$ oc new-app -e \ JENKINS_PASSWORD=<password> \ ocp-tools-4/jenkins-rhel8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow