Как передать облачную конфигурацию в LXD?
Я посещал бесчисленное множество сайтов, включая этот, пытаясь выяснить, как заставить LXD запускать облачную конфигурацию при запуске контейнера LXD. В некоторых местах рекомендуют настроить профиль (не сработало). Другие рекомендуют перенаправить файл YAML в команду lxc (не сработало), а другие рекомендуют использовать команду
Мой обновленный «простой пример», который пытается установить дерево и пытается коснуться /run/cloud-config-did-run:
lxc delete -f x
cat << EOF >config.yml
#cloud-config
output: {all: '| tee -a /var/log/my-cloud-init-output.log'}
package_update: true
package_upgrade: true
package_reboot_if_required: true
packages:
- tree
runcmd:
- touch /run/cloud-config-did-run
EOF
lxc launch ubuntu: x --config=user.user-data="$(cat config.yml)"
sleep 5
lxc exec x -- bash -c "ls /run"
lxc exec x -- bash -c "tree /etc"
Выход ДЕЙСТВИТЕЛЬНО направляется на
Может отступ неправильный? Или конфиг не в том поддереве? Или не хватает какой-то магической ценности? Версия LXD, где это не работает? (Я использую версию 4.20). Я занимаюсь этим уже 10 часов, и что бы я ни делал, моя облачная конфигурация полностью игнорируется (никаких ошибок, никаких журналов, никаких записей о том, что что-то выполняется, никаких записей о том, что я когда-либо давал ему какие-либо указания сделать что-либо, кроме стандартный кейген ssh, который, по-видимому, встроен). Может ли кто-нибудь превратить приведенное выше в рабочий пример, который гарантированно запустится, если я просто вставлю его в оболочку?