!!! CECI EST UN BROUILLON !!!
Sur Jenkins j’ai mis le bon plugins : Libvirt Slaves
C’est pour l’instant en projet … mais j’essaye de faire une installation propre afin de facilité la validation automatique :
$ apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin
$ apt install libguestfs-tools
On télécharge pour une cible armhfp :
$ curl -O https://dl.fedoraproject.org/pub/fedora/linux/releases/30/Spins/armhfp/images/Fedora-Minimal-armhfp-30-1.2-sda.raw.xz
$ unxz Fedora-Minimal-armhfp-30-1.2-sda.raw.xz
$ sudo virt-builder -v -x --get-kernel Fedora-Minimal-armhfp-30-1.2-sda.raw
command line: virt-builder -v -x --get-kernel Fedora-Minimal-armhfp-30-1.2-sda.raw
virt-get-kernel --verbose -x --add 'Fedora-Minimal-armhfp-30-1.2-sda.raw'
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: add_drive "Fedora-Minimal-armhfp-30-1.2-sda.raw" "readonly:true" "protocol:file"
libguestfs: creating COW overlay to protect original drive content
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: disk_create "/tmp/libguestfsEd6WdG/overlay1" "qcow2" -1 "backingfile:/home/farias/Fedora-Minimal-armhfp-30-1.2-sda.raw"
…
$ sudo mv Fedora-Minimal-armhfp-30-1.2-sda.raw initramfs-5.0.9-301.fc30.armv7hl.img vmlinuz-5.0.9-301.fc30.armv7hl /var/lib/libvirt/images/.
$ sudo virt-install -v --name Fedora-Minimal-armhfp-30-1.2-sda.raw --ram 4096 --arch armv7l --import --os-variant fedora22 \
--disk /var/lib/libvirt/images/Fedora-Minimal-armhfp-30-1.2-sda.raw \
--boot kernel=/var/lib/libvirt/images/vmlinuz-5.0.9-301.fc30.armv7hl,initrd=/var/lib/libvirt/images/initramfs-5.0.9-301.fc30.armv7hl.img,kernel_args="console=ttyAMA0 rw root=LABEL=_/ rootwait"
File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in
SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'
Pour fixer ce problème :
Je me fais un petit mémo pour l’update de Jenkins :
jenkins:~$ sudo wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
--2019-09-04 08:08:33-- http://mirrors.jenkins-ci.org/war/latest/jenkins.war
Resolving mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)... 52.202.51.185
Connecting to mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ftp-chi.osuosl.org/pub/jenkins/war/2.193/jenkins.war [following]
--2019-09-04 08:08:34-- http://ftp-chi.osuosl.org/pub/jenkins/war/2.193/jenkins.war
Resolving ftp-chi.osuosl.org (ftp-chi.osuosl.org)... 64.50.236.52, 2600:3402:200:227::2
Connecting to ftp-chi.osuosl.org (ftp-chi.osuosl.org)|64.50.236.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 78246752 (75M) [application/x-java-archive]
Saving to: ‘jenkins.war’
jenkins.war 100%[=====================================================================================>] 74.62M 1.80MB/s in 45s
2019-09-04 08:09:19 (1.66 MB/s) - ‘jenkins.war’ saved [78246752/78246752]
jenkins:~$ sudo systemctl stop jenkins
jenkins:~$ cp /usr/share/jenkins/jenkins.war jenkins.war.old
jenkins:~$ sudo mv jenkins.war /usr/share/jenkins/jenkins.war
jenkins:~$ sudo systemctl start jenkins
J’adore Jenkins :)
Ce qui est dommage c’est que le plugin n’indique pas quel est l’erreur … il y a seulement une exception sur un pointeur NULL. ( https://wiki.jenkins.io/display/JENKINS/Confluence+Publisher+Plugin )
ERROR: Build step failed with exception
java.lang.NullPointerException
at rocks.inspectit.releaseplugin.releasenotes.ConfluenceReleaseNotesPublisher.perform(ConfluenceReleaseNotesPublisher.java:99)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
at hudson.model.Build$BuildExecution.build(Build.java:206)
at hudson.model.Build$BuildExecution.doRun(Build.java:163)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
at hudson.model.Run.execute(Run.java:1818)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Build step 'Publish Release Notes on Confluence' marked build as failure
Misère.
J’ai donc eu l’erreur : “/usr/bin/cat: cannot execute binary file” , pour voir l’erreur j’ai demandé les logs sur le container lancé par Jenkins.
$ docker logs f5e6fcc16971b888f8609f6436e18fbb8e313114878a15b916eeedd6b780f979
/usr/bin/cat: /usr/bin/cat: cannot execute binary file
Ensuite j’ai essayé de comprendre le problème dans ma pipeline ….
A la base j’avais :
pipeline {
agent {
docker {
image 'my_image'
args ' --name jenkins_my_image -u root --privileged=true -v /home/BUILD:/root/BUILD'
}
}
....
Et il fallait mettre :