{"id":614,"date":"2025-05-28T22:44:21","date_gmt":"2025-05-28T20:44:21","guid":{"rendered":"https:\/\/www.daminus.fr\/wordpress\/?p=614"},"modified":"2025-05-28T22:50:47","modified_gmt":"2025-05-28T20:50:47","slug":"jenkins-automatisation","status":"publish","type":"post","link":"https:\/\/www.daminus.fr\/wordpress\/?p=614","title":{"rendered":"Jenkins &amp; automatisations"},"content":{"rendered":"\n<p><strong><u>Installer jdk17<\/u><\/strong><\/p>\n\n\n\n<p class=\"has-vivid-red-color has-text-color has-link-color wp-elements-2a77ff810318ab9ce69bdd22b4a59a5b\"><strong>Site =&gt;&nbsp;&nbsp; <\/strong><a href=\"https:\/\/jdk.java.net\/17\/\"><strong>https:\/\/jdk.java.net\/17\/<\/strong><\/a><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>E<\/strong>xtraire l&rsquo;archive :<\/li>\n<\/ol>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-45a1bec53e728fd3b0a52a7cdc1990af\">tar -xvzf jdk-17_linux-x64_bin.tar.gz<\/p>\n\n\n\n<p>Cela va cr\u00e9er un dossier contenant les fichiers Java.<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>D\u00e9placer les fichiers dans <\/strong>\/opt<strong> pour une installation propre<\/strong> :<\/li>\n<\/ol>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-73088400ef80eb40a6b01eebcfedb3d7\">sudo mv jdk-17 \/opt\/<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>D\u00e9finir Java 17 comme la version par d\u00e9faut<\/strong> :<\/li>\n<\/ol>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-60ac1389cf68bd952733d4d27fe98969\">sudo update-alternatives &#8211;install \/usr\/bin\/java java \/opt\/jdk-17\/bin\/java 1<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-9e7191b27ae501287e07949d57b84830\">sudo update-alternatives &#8211;config java<\/p>\n\n\n\n<p>Choisis ensuite la version que tu veux utiliser. =&gt; g\u00e9n\u00e9ralement auto = 0<\/p>\n\n\n\n<p>Si tu veux ajouter Java \u00e0 ton PATH, ajoute cette ligne \u00e0 ton fichier ~\/.bashrc ou ~\/.profile :<\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-08d22345d1666ea32b5dd513870b6ee4\">export PATH=\/opt\/jdk-17\/bin:$PATH<\/p>\n\n\n\n<p class=\"has-x-large-font-size\">\ud83d\udd27 Pr\u00e9requis<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Jenkins install\u00e9 (Linux de pr\u00e9f\u00e9rence)<\/li>\n\n\n\n<li>Ansible install\u00e9 sur la machine Jenkins (<code>sudo apt install ansible<\/code>)<\/li>\n\n\n\n<li>Acc\u00e8s aux fichiers :\n<ul class=\"wp-block-list\">\n<li><code>ping.yml<\/code><\/li>\n\n\n\n<li><code>maj.yml<\/code><\/li>\n\n\n\n<li><code>host.ini<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Un agent Jenkins (ou node) configur\u00e9 (facultatif si Jenkins local)<\/li>\n\n\n\n<li>Acc\u00e8s SSH \u00e0 tes h\u00f4tes distants configur\u00e9<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcc1 Structure du d\u00e9p\u00f4t<\/h2>\n\n\n\n<p>Tu peux structurer ton d\u00e9p\u00f4t Git de la fa\u00e7on suivante :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-a95fe3da8ff5255006b57fd48e0575ec\"><strong>CopierModifier<code>ansible-project\/<br>\u251c\u2500\u2500 host.ini<br>\u251c\u2500\u2500 ping.yml<br>\u251c\u2500\u2500 maj.yml<br>\u251c\u2500\u2500 Jenkinsfile<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea Exemple des fichiers<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>host.ini<\/code> (inventaire)<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-8ce513f408c287955f246b9adee20e08\"><strong>iniCopierModifier<code>[all]<br>192.168.1.100<br>192.168.1.101<br><br>[web]<br>192.168.1.100<br><br>[db]<br>192.168.1.101<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>ping.yml<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-327f109401eb6138f54974ae4e839037\"><strong>yamlCopierModifier<code>- name: Ping all hosts<br>  hosts: all<br>  gather_facts: no<br>  tasks:<br>    - name: Ping<br>      ping:<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>maj.yml<\/code><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-e35b2fdfcf0ac62392d3271ca3f5b05c\"><strong>yamlCopierModifier<code>- name: Mise \u00e0 jour des paquets<br>  hosts: all<br>  become: true<br>  tasks:<br>    - name: Update apt<br>      apt:<br>        update_cache: yes<br>        upgrade: dist<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddf1 Jenkinsfile (pipeline)<\/h2>\n\n\n\n<p>Voici un pipeline declaratif simple dans le <code>Jenkinsfile<\/code> :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-99c2bb3fac96909954013eea14f06665\"><strong>groovyCopierModifier<code>pipeline {<br>    agent any<br><br>    environment {<br>        ANSIBLE_INVENTORY = \"host.ini\"<br>    }<br><br>    stages {<br>        stage('Checkout') {<br>            steps {<br>                git 'https:\/\/ton-depot-git.com\/ansible-project.git'<br>            }<br>        }<br><br>        stage('Ping Hosts') {<br>            steps {<br>                sh 'ansible-playbook -i ${ANSIBLE_INVENTORY} ping.yml'<br>            }<br>        }<br><br>        stage('Mise \u00e0 jour') {<br>            steps {<br>                sh 'ansible-playbook -i ${ANSIBLE_INVENTORY} maj.yml'<br>            }<br>        }<br>    }<br>}<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd10 Configuration des cl\u00e9s SSH<\/h2>\n\n\n\n<p>Pour \u00e9viter les prompts, configure les cl\u00e9s SSH de Jenkins pour qu\u2019il puisse acc\u00e9der aux h\u00f4tes cibles :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-vivid-green-cyan-color has-text-color has-link-color wp-elements-13f47be0e706e78f99dd8641a14b36d5\"><strong>bashCopierModifier<code>ssh-keygen -t rsa<br># Copier la cl\u00e9 publique sur chaque h\u00f4te distant<br>ssh-copy-id user@192.168.1.100<\/code><\/strong><code><br><\/code><\/pre>\n\n\n\n<p>Tu peux aussi g\u00e9rer cela via un <strong>Credential SSH dans Jenkins<\/strong>, puis r\u00e9f\u00e9rencer l&rsquo;identifiant dans ton pipeline si tu utilises des agents distants.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 Lancer le pipeline<\/h2>\n\n\n\n<p>Lance le build<\/p>\n\n\n\n<p>Va dans Jenkins \u2192 Nouveau Job \u2192 <em>Pipeline<\/em><\/p>\n\n\n\n<p>Configure le repo Git et Jenkinsfile<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installer jdk17 Site =&gt;&nbsp;&nbsp; https:\/\/jdk.java.net\/17\/ tar -xvzf jdk-17_linux-x64_bin.tar.gz Cela va cr\u00e9er un dossier contenant les fichiers Java. sudo mv jdk-17 \/opt\/ sudo update-alternatives &#8211;install \/usr\/bin\/java java \/opt\/jdk-17\/bin\/java 1 sudo update-alternatives &#8211;config java Choisis ensuite la version que tu veux utiliser&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":616,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-614","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=614"}],"version-history":[{"count":3,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/614\/revisions"}],"predecessor-version":[{"id":620,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/614\/revisions\/620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/616"}],"wp:attachment":[{"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.daminus.fr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}