« ESXi : créer un vib manuellement sous linux » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(6 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[category:virtualisation]] | |||
Commencez par extraire les fichiers que vous voulez placer dans le VIB (dans notre cas, smartmontools issu de http://builds.smartmontools.org/) : | |||
<pre> | <pre> | ||
tar -xf smartmontools-6.6-0-20170808-r4433.linux-x86_64-static.tar.gz | tar -xf smartmontools-6.6-0-20170808-r4433.linux-x86_64-static.tar.gz | ||
</pre> | |||
Un vib contient les fichiers dans une architecture de dossier qui seront extrait à la racine de ESXi. Nous allons placer le binaire smartctl dans /opt/smartmontools/ | |||
<pre> | |||
mkdir -p opt/smartmontools | mkdir -p opt/smartmontools | ||
</pre> | |||
Dans cet exemple, nous allons uniquement garder le binaire smartctl. | |||
<pre> | |||
mv usr/local/sbin/smartctl opt/smartmontools/ | mv usr/local/sbin/smartctl opt/smartmontools/ | ||
rm -rf usr/ | rm -rf usr/ | ||
</pre> | |||
Créez une archive nommée <code>smartctl</code> contenant notre fichier et son architecture de dossier, puis stocke sa somme SHA1 : | |||
<pre> | |||
tar -cf smartctl opt/ | tar -cf smartctl opt/ | ||
TAR_SHA1=$(sha1sum smartctl | cut -d" " -f1) | TAR_SHA1=$(sha1sum smartctl | cut -d" " -f1) | ||
</pre> | |||
Gzipez notre archive fraîchement créé, stocker son SHA256 et sa taille en bytes : | |||
<pre> | |||
gzip smartctl | gzip smartctl | ||
mv smartctl.gz smartctl | mv smartctl.gz smartctl | ||
GZIP_SHA256=$(sha256sum smartctl | cut -d" " -f1) | GZIP_SHA256=$(sha256sum smartctl | cut -d" " -f1) | ||
GZIP_SIZE=$(du --bytes smartctl | cut -f1) | GZIP_SIZE=$(du --bytes smartctl | cut -f1) | ||
</pre> | |||
Le fichier suivant contient normalement une signature, mais peut être vide dans le cas d'un paquet VIB <code>community</code> | |||
<pre> | |||
touch sig.pkcs7 | touch sig.pkcs7 | ||
</pre> | |||
Créez un fichier <code>descriptor.xml</code> qui contient les informations de notre paquet et ses fichiers. Pensez à modifier la version. | |||
<pre> | |||
cat << EOF > descriptor.xml | cat << EOF > descriptor.xml | ||
<vib version="5.0"><type>bootbank</type><name>smartctl</name><version>6.6-4433</version><vendor>smartmontools</vendor><summary>smartctl: SMART Tool</summary><description>Tool to display S.M.A.R.T data</description><release-date>2017-08-11T10:00:59.000000+00:00</release-date><urls/><relationships><depends></depends><conflicts/><replaces/><provides/><compatibleWith/></relationships><software-tags></software-tags><system-requires><maintenance-mode>false</maintenance-mode></system-requires><file-list><file>opt/smartmontools/smartctl</file></file-list><acceptance-level>community</acceptance-level><live-install-allowed>true</live-install-allowed><live-remove-allowed>true</live-remove-allowed><cimom-restart>false</cimom-restart><stateless-ready>true</stateless-ready><overlay>false</overlay><payloads><payload name="smartctl" type="tgz" size="666"><checksum checksum-type="sha-256">256000256</checksum><checksum checksum-type="sha-1" verify-process="gunzip">10001</checksum></payload></payloads> | <vib version="5.0"><type>bootbank</type><name>smartctl</name><version>6.6-4433</version><vendor>smartmontools</vendor><summary>smartctl: SMART Tool</summary><description>Tool to display S.M.A.R.T data</description><release-date>2017-08-11T10:00:59.000000+00:00</release-date><urls/><relationships><depends></depends><conflicts/><replaces/><provides/><compatibleWith/></relationships><software-tags></software-tags><system-requires><maintenance-mode>false</maintenance-mode></system-requires><file-list><file>opt/smartmontools/smartctl</file></file-list><acceptance-level>community</acceptance-level><live-install-allowed>true</live-install-allowed><live-remove-allowed>true</live-remove-allowed><cimom-restart>false</cimom-restart><stateless-ready>true</stateless-ready><overlay>false</overlay><payloads><payload name="smartctl" type="tgz" size="666"><checksum checksum-type="sha-256">256000256</checksum><checksum checksum-type="sha-1" verify-process="gunzip">10001</checksum></payload></payloads></vib> | ||
EOF | EOF | ||
</pre> | </pre> | ||
Ces trois sed vont placer les informations que nous avons recueillis plus tôt au bon endroit dans le fichier descriptor : | |||
<pre> | <pre> | ||
sed -i s/666/$GZIP_SIZE/g descriptor.xml | sed -i s/666/$GZIP_SIZE/g descriptor.xml | ||
sed -i | sed -i s/256000256/$GZIP_SHA256/g descriptor.xml | ||
sed -i s/10001/$TAR_SHA1/g descriptor.xml | sed -i s/10001/$TAR_SHA1/g descriptor.xml | ||
</pre> | </pre> | ||
Enfin, créez le paquet VIB. Notez que le fichier <code>descriptor.xml</code> doit toujours être le premier du VIB. | |||
<pre> | <pre> | ||
ar -r smartctl-6.6-4433.x86_64.vib descriptor.xml sig.pkcs7 smartctl | ar -r smartctl-6.6-4433.x86_64.vib descriptor.xml sig.pkcs7 smartctl | ||
</pre> | </pre> |
Dernière version du 12 août 2017 à 11:22
Commencez par extraire les fichiers que vous voulez placer dans le VIB (dans notre cas, smartmontools issu de http://builds.smartmontools.org/) :
tar -xf smartmontools-6.6-0-20170808-r4433.linux-x86_64-static.tar.gz
Un vib contient les fichiers dans une architecture de dossier qui seront extrait à la racine de ESXi. Nous allons placer le binaire smartctl dans /opt/smartmontools/
mkdir -p opt/smartmontools
Dans cet exemple, nous allons uniquement garder le binaire smartctl.
mv usr/local/sbin/smartctl opt/smartmontools/ rm -rf usr/
Créez une archive nommée smartctl
contenant notre fichier et son architecture de dossier, puis stocke sa somme SHA1 :
tar -cf smartctl opt/ TAR_SHA1=$(sha1sum smartctl | cut -d" " -f1)
Gzipez notre archive fraîchement créé, stocker son SHA256 et sa taille en bytes :
gzip smartctl mv smartctl.gz smartctl GZIP_SHA256=$(sha256sum smartctl | cut -d" " -f1) GZIP_SIZE=$(du --bytes smartctl | cut -f1)
Le fichier suivant contient normalement une signature, mais peut être vide dans le cas d'un paquet VIB community
touch sig.pkcs7
Créez un fichier descriptor.xml
qui contient les informations de notre paquet et ses fichiers. Pensez à modifier la version.
cat << EOF > descriptor.xml <vib version="5.0"><type>bootbank</type><name>smartctl</name><version>6.6-4433</version><vendor>smartmontools</vendor><summary>smartctl: SMART Tool</summary><description>Tool to display S.M.A.R.T data</description><release-date>2017-08-11T10:00:59.000000+00:00</release-date><urls/><relationships><depends></depends><conflicts/><replaces/><provides/><compatibleWith/></relationships><software-tags></software-tags><system-requires><maintenance-mode>false</maintenance-mode></system-requires><file-list><file>opt/smartmontools/smartctl</file></file-list><acceptance-level>community</acceptance-level><live-install-allowed>true</live-install-allowed><live-remove-allowed>true</live-remove-allowed><cimom-restart>false</cimom-restart><stateless-ready>true</stateless-ready><overlay>false</overlay><payloads><payload name="smartctl" type="tgz" size="666"><checksum checksum-type="sha-256">256000256</checksum><checksum checksum-type="sha-1" verify-process="gunzip">10001</checksum></payload></payloads></vib> EOF
Ces trois sed vont placer les informations que nous avons recueillis plus tôt au bon endroit dans le fichier descriptor :
sed -i s/666/$GZIP_SIZE/g descriptor.xml sed -i s/256000256/$GZIP_SHA256/g descriptor.xml sed -i s/10001/$TAR_SHA1/g descriptor.xml
Enfin, créez le paquet VIB. Notez que le fichier descriptor.xml
doit toujours être le premier du VIB.
ar -r smartctl-6.6-4433.x86_64.vib descriptor.xml sig.pkcs7 smartctl