В частности, с инструментами CLI - не с открытым стеком.
Я смотрю на то, как может выглядеть локальная установка dev с lxd, но я подхожу с пустыми руками, когда дело доходит до настройки новых контейнеров.
Существуют ли идиоматические (или иные) способы настройки контейнеров lxd? Должен ли я смотреть на что-то более неизменное, как изображения в докере?
Спасибо. Любые ресурсы или указатели будут оценены.
Один лайнер, с которым я пошел сегодня, устанавливает его в профиль по умолчанию для новых контейнеров:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc profile set default user.user-data -
Этот устанавливает его в существующий контейнер, но будьте осторожны, он не будет работать с контейнерами, которые уже были загружены, поскольку работа с ключами SSH выполняется только при первой загрузке:
echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc config set CONTAINER_NAME user.user-data -
источник
У меня был немного более конкретный вопрос, чем у ОП, но мне потребовалось время, чтобы понять, что я делаю неправильно. Я думал, что выложу это здесь, чтобы помочь кому-то еще стать таким же тупым.
Я хотел статические сетевые настройки для контейнера LXC / LXD Ubuntu 16.04, размещенного в Ubuntu 16.04. Я начал с того, что попробовал то, что написал Стефан, но это не сработало. Все, что я закончил, это контейнер по умолчанию для попыток DHCP с локальной ссылкой IPv6, так как в моей конфигурации не обслуживается DHCP.
Мой первоначальный YAML выглядел (как-то) примерно так (взято из документа cloud-init ).
И я загружал это
user.user-data
как описано выше.Только когда я нашел документацию Стефана в источнике LXC / LXD , я понял, что мне нужно загрузить это значение
user.network-config
.Так что мой последний YAML выглядел (как-то) так.
Затем я загрузил это
user.network-config
вместо.Похоже, мне нужно будет хранить два разных файла для каждого контейнера: один для загрузки сетевых настроек
user.network-config
; и один для другой конфигурации, чтобы загрузить в,user.user-data
если я не могу найти способ использовать единственный файл для всего.Еще одна проблема, которую я обнаружил и которая была для меня совсем не очевидна, - это попытка автоматически настроить не сетевые компоненты.
Следующий YAML, примененный с помощью приведенной выше команды (несмотря на то, что он выглядел корректно
lxc config show CONTAINER
), ничего не создал внутри моего контейнера.Подсказка скрыта в Форматах ввода пользовательских данных, пункт 5: Данные конфигурации облака гласят:
Я не верю, что эта документация очень ясна. Я не смог заставить что-либо работать, используя форму «Content-Type: text / cloud-config», но я обнаружил, что если вы поместите
#cloud-config
в первую строку, YAML анализируется. Я могу только предположить, что что-то не так, или мое понимание, или чье-то программирование. Для меня нет смысла, что YAML, который вы явно загрузили в качестве значения ключа,user.user-data
следует использовать как что-либо кроме данных конфигурации облака. Зачем кому-то еще делать это, если это не предназначено для облачной конфигурации, и поэтому зачем требовать комментарий (который даже не использует обычный синтаксис Шебанга) ?Итак, не говоря о чепухе, синтаксис, который работал для
user.user-data
:источник