Посчастливилось познакомиться с LX Branded Zones, благополучно перекочевавшими в OmniOS из SmartOS.
Знакомство началось с выковыривания UUID’а нужного образа из простыни JSON и ручной его подстановкой в URL для последующего скачивания и развертывания.
В SmartOS для этих целей существует утилита imgadm. К сожалению, в OmniOS подобного инструмента нет и, видимо, пока не предвидится.
Кругом разруха#
UPD: невероятно и внезапно, но такой инструмент всё же есть, и есть он прямо в составе zadm, утилиты для управления зонами OmniOS.
pkg install zadm
zadm list-images [--refresh] [--verbose] [-b <brand>] [-p <provider>]
Конкретнее:
zadm list-images --verbose -b lx -p smartos
Почему вместо её использования по первой ссылке этого поста предлагается пройтись по такому ненужному алгоритму – остаётся загадкой. Почему на той же странице по ссылке нам предоставили такое “подробное” описание этой утилиты – тоже. Вероятно, автор тех статей на их написании (и/или последующем обновлении) явно желал сэкономить своё время в ущерб чужому, чтобы осталось больше на портирование драйверов.
А всё, что было написано и сделано мной дальше, я просто оставлю для истории и понимания масштаба тупняка. Чтобы своё время не потратил впустую ещё кто-нибудь, можно не читать. ;)
Найди образ#
https://images.smartos.org/images – зайди сюда и найди в простыне то, что нужно.
{
"v": 2,
"uuid": "50c86f0f-e25e-485c-80ca-8cf8e5640ce6",
"owner": "00000000-0000-0000-0000-000000000000",
"name": "almalinux-9",
"version": "20250120",
"state": "active",
"disabled": false,
"public": true,
"published_at": "2025-01-20T19:24:01Z",
"type": "lx-dataset",
"os": "linux",
"files": [
{
"sha1": "9f90ca1d99365d84b11ba20728b5fe25be6a1afa",
"size": 134733634,
"compression": "gzip"
}
],
"description": "Container-native AlmaLinux 9.5 (Teal Serval) 64-bit image. Built to run on containers with bare metal speed, while offering all the services of a typical unix host.",
"homepage": "https://docs.tritondatacenter.com/public-cloud/instances/infrastructure/images",
"requirements": {
"brand": "lx",
"min_platform": {
"7.0": "20220407T001427Z"
},
"networks": [
{
"description": "public",
"name": "net0"
}
]
},
"tags": {
"kernel_version": "5.10.0",
"role": "os"
}
}
Подставь найденный UUID в URL#
https://images.smartos.org/images/<UUID>/file
Загрузи образ, не забыв про формат#
curl -o /tmp/almalinux95.zss.gz https://images.smartos.org/images/50c86f0f-e25e-485c-80ca-8cf8e5640ce6/file
Но лучше, конечно,..#
даже корявенький, но bash-скрипт с jq, sed… и так далее.
#!/bin/bash
if ! command -v jq &>/dev/null; then
echo
echo -e " \e[91mОшибка: приложение jq не установлено.\e[0m" >&2
echo
exit 1
fi
echo && echo " В публичном репозитории SmartOS доступны следующие образы:"
echo
echo ' Название,ОС,Тип,Описание,>,Дата,URL,Формат,SHA1' > /tmp/sOS.lst
curl -s -S https://images.smartos.org/images | \
jq -r -c '.[] | [ ( .name | .[0:15] ), .os, .type, ( .description | .[0:40] ), ">", ( .published_at | .[0:10] ), "https://images.smartos.org/images/", .uuid, "/file", ( .files[] | .compression, .sha1 ) ]' | \
sed -e 's/^/ /;s/\[//g;s/\]//g;s/"//g;s/https\:\/\/images.smartos.org\/images\/\,/https\:\/\/images.smartos.org\/images\//;s/\,\/file/\/file/' | sort -t . -n -k 1,1n -k 2,2n -k 3,3n -k 4,4n >> /tmp/sOS.lst
column -t -s ',' < /tmp/sOS.lst | more
rm -f /tmp/sOS.lst
exit 0 ## что бы ни произошло, нужно верить в лучшее...


…Запустить неглядя#
bash <(curl -s https://raw.githubusercontent.com/tape-quotes/it.tpqt.ru/refs/heads/main/content/bin/getimgs.sh)
