Der Beitrag ist im September 2017 erschienen
Nur für mich kurz zur Erinnerung: Es kann sinnvoll sein, das Release eines SmartOS-Images zu ermitteln (z. B. wenn es Security Advisories gibt, die ein bestimmtes Release voraussetzen). Und das geht so: Zunächst muss man die UUID des aktiven Images herausbekommen. Als Beispiel versuchen wir hier mal die aktuelle Version des Docker-Images herauszufinden. Als erstes brauchen wir die UUID der aktuellen Docker-Zone:
[root@headnode (de-gt-1) ~]# sdc-role list | grep docker
docker0 headnode 1b6785af-8cd2-44ed-8af5-4b8ab99f39cc 4096 running docker 10.64.244.40
Damit können wir die Zoneninformationen abrufen:
[root@headnode (de-gt-1) ~]# vmadm get 1b6785af-8cd2-44ed-8af5-4b8ab99f39cc |grep image_uuid
"image_uuid": "a54e9126-8e14-11e7-bbdd-37fad5806e08",
Mit der Image-UUID können wir dann die Release-Informationen zu diesem Image ermitteln:
[root@headnode (de-gt-1) ~]# updates-imgadm get -C release a54e9126-8e14-11e7-bbdd-37fad5806e08
{
"v": 2,
"uuid": "a54e9126-8e14-11e7-bbdd-37fad5806e08",
"owner": "00000000-0000-0000-0000-000000000000",
"name": "docker",
"version": "release-20170831-20170831T060953Z-g171148a",
"state": "active",
"disabled": false,
"public": false,
"published_at": "2017-08-31T06:18:36.707Z",
"type": "zone-dataset",
"os": "smartos",
"files": [
{
"sha1": "ba22f21953232bb726b78296fdebbf94a9f61395",
"size": 187569427,
"compression": "gzip"
}
],
"description": "SDC",
"requirements": {
"min_platform": {
"7.0": "20141030T081701Z"
},
"networks": [
{
"name": "net0",
"description": "admin"
}
]
},
"origin": "18b094b0-eb01-11e5-80c1-175dac7ddf02",
"tags": {
"smartdc_service": true
},
"channels": [
"staging",
"release"
]
}
Hier liegt also das Release release-20170831-20170831T060953Z-g171148a
vor wobei g171148a
der Output von "git describe" für den Build ist, aus dem dieses Docker-Image entstanden ist.