https://dev-eole.ac-dijon.fr/https://dev-eole.ac-dijon.fr/favicon.ico2020-02-11T12:59:38ZEnsemble Ouvert Libre ÉvolutifDistribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1414972020-02-11T12:59:38ZEmmanuel GARETTE
<ul><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>En cours</i></li></ul> Distribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1415022020-02-11T13:00:37ZEmmanuel GARETTE
<ul><li><strong>Assigné à</strong> mis à <i>Emmanuel GARETTE</i></li></ul> Distribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1415252020-02-12T10:37:44ZEmmanuel GARETTE
<ul></ul><p>Sur ma machine si je regarde les variables disponibles j'ai :</p>
<pre>
root@ip-192-168-0-110:~# cloud-init query --all
{
"_beta_keys": [
"subplatform"
],
"availability_zone": null,
"base64_encoded_keys": [],
"cloud_name": "opennebula",
"ds": {
"_doc": "EXPERIMENTAL: The structure and format of content scoped under the 'ds' key may change in subsequent releases of cloud-init.",
"meta_data": {
"CONTEXT": "true",
"DISK_ID": "2",
"ETH0_CONTEXT_FORCE_IPV4": "",
"ETH0_DNS": "192.168.232.2",
"ETH0_EXTERNAL": "",
"ETH0_GATEWAY": "192.168.0.1",
"ETH0_GATEWAY6": "",
"ETH0_IP": "192.168.0.110",
"ETH0_IP6": "",
"ETH0_IP6_PREFIX_LENGTH": "",
"ETH0_IP6_ULA": "",
"ETH0_MAC": "02:00:c0:a8:00:6e",
"ETH0_MASK": "255.255.255.0",
"ETH0_MTU": "",
"ETH0_NETWORK": "192.168.0.0",
"ETH0_SEARCH_DOMAIN": "",
"ETH0_VLAN_ID": "365",
"ETH0_VROUTER_IP": "",
"ETH0_VROUTER_IP6": "",
"ETH0_VROUTER_MANAGEMENT": "",
"IMAGE": "Contexte",
"NETWORK": "YES",
"TARGET": "hda",
"VM_CONFIGURATION": "default",
"VM_DAEMON": "once",
"VM_HOSTNAME": "eolebase",
"VM_ID": "323819",
"VM_MACHINE": "aca.eolebase",
"VM_MAJAUTO": "DEV",
"VM_METHODE": "instance",
"VM_NAME": "aca.eolebase-2.8.0a0-instance-default",
"VM_ONE": "one",
"VM_OWNER": "emmanuel",
"VM_VERSION": "2.8.0a0",
"VM_VERSIONMAJEUR": "2.8.0",
"instance_id": "iid-dsopennebula",
"local_hostname": "192.168.0.110"
}
},
"instance_id": "iid-dsopennebula",
"local_hostname": "ip-192-168-0-110",
"platform": "opennebula",
"public_ssh_keys": [],
"region": null,
"sensitive_keys": [],
"subplatform": "config-disk (/dev/sr0)",
"userdata": "",
"v1": {
"_beta_keys": [
"subplatform"
],
"availability_zone": null,
"cloud_name": "opennebula",
"instance_id": "iid-dsopennebula",
"local_hostname": "ip-192-168-0-110",
"platform": "opennebula",
"public_ssh_keys": [],
"region": null,
"subplatform": "config-disk (/dev/sr0)"
},
"vendordata": ""
}
</pre>
<p>Une bonne partie des variables disponibles concernent l'environnement OpenNebula (je pense à l'IP, DNS, ...). Il n'est pas possible, de ce que je vois, d'avoir un code générique pour tous les hyperviseurs.</p>
<p>Les variables génériques sont :</p>
<pre>
root@ip-192-168-0-110:~# cloud-id --json
{
"_beta_keys": [
"subplatform"
],
"availability-zone": null,
"availability_zone": null,
"cloud-name": "opennebula",
"cloud_id": "opennebula",
"cloud_name": "opennebula",
"instance-id": "iid-dsopennebula",
"instance_id": "iid-dsopennebula",
"local-hostname": "ip-192-168-0-110",
"local_hostname": "ip-192-168-0-110",
"platform": "opennebula",
"public_ssh_keys": [],
"region": null,
"subplatform": "config-disk (/dev/sr0)"
}
</pre>
<p>Seul le nom de domaine est une donnée intéressante et récupérable.</p> Distribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1415272020-02-12T14:29:42ZEmmanuel GARETTE
<ul></ul><p>Comme on voit ci-dessus la variable hostname n'est pas la bonne.</p>
<p>Après analyse, il semble que la valeur ne sera jamais celle spécifié par l'utilisateur.<br />Il faut lancer un nombre paire de fois le script pour que cela tombe sur la bonne valeur :</p>
<pre>
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "eolebase",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "ip-192-168-0-110",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "eolebase",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "ip-192-168-0-110",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "eolebase",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "ip-192-168-0-110",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "eolebase",
root@ip-192-168-0-110:~# cloud-init clean; cloud-init init --local; cloud-id --json|grep local-hostname
"local-hostname": "ip-192-168-0-110",
[...]
</pre>
<p>Le problème c'est que la 1er fois c'est un nombre impaire, donc la valeur n'est pas bonne.</p>
<p>Le choix du nom de la variable HOSTNAME n'est pas une bonne idée puisque cette valeur existe déjà dans un shell standard.</p>
<p>Si dans /usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenNebula.py ligne 433 on change HOSTNAME par VM_HOSTNAME tout est ok.</p>
<p>La seule valeur exploitable via cloud-init est donc inexploitable.</p> Distribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1416482020-02-19T10:29:03ZEmmanuel GARETTE
<ul><li><strong>Statut</strong> changé de <i>En cours</i> à <i>Résolu</i></li><li><strong>% réalisé</strong> changé de <i>0</i> à <i>100</i></li></ul> Distribution EOLE - Tâche #29598: Récupérer les valeurs des variables dans cloud-inithttps://dev-eole.ac-dijon.fr/issues/29598?journal_id=1420132020-03-05T13:54:33ZJoël Cuissinatjoel.cuissinat@ac-dijon.fr
<ul><li><strong>Statut</strong> changé de <i>Résolu</i> à <i>Fermé</i></li><li><strong>Restant à faire (heures)</strong> mis à <i>0.0</i></li></ul>