Я использовал шаблон ubuntu-cloud в качестве контейнеров LXC, и все они работали нормально. Недавно я перешел на использование libvirt-lxc
и следовал инструкциям в Документ Ubuntu, но образ инициализирован иначе, чем LXC:
Пытался подключиться к серверу метаданных AWS и получил ошибки:
2013-02-05 00:55:48,209 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [50/120s]: url error [timed out]
Пароль по умолчанию не сработал. Мне нужно включить пароль, изменив rootfs ' /etc/shadow
потому что пароль по умолчанию для учетной записи "ubuntu" был заблокирован.
Я думаю, что LXC заранее справится с cloud-init
проблемы и скормить ему некоторые пользовательские данные и метаданные. Я пытался найти, как это сделать вручную, но cloud-init
страница документа не помогла, потому что это все примеры для euca-tools
.
И еще я заметил, что lxc-start
есть возможность -C
:«Параметр -C создает облачный контейнер, настроенный для использования со службой метаданных». Но я просто не знал, как сопоставить этот параметр и все связанные с ним настройки libvirt_lxc
.
Как правильно инициализировать образ / rootfs?
Хорошо, после нескольких дней поиска решения cloud-init
проблемы, я обнаружил, что могу подготовить seed
диск для монтирования в гостевой системе, чтобы позволить cloud-init
загрузка с. В деталях:
libvirt
XML домена с LXC rootfsmeta-data
и user-data
файлы только следующие эта ссылкаВместо создания файла ISO мы можем добавить параметр монтирования в XML нашего домена для заполнения файлов в cloud-init
:
<!-- language: lang-xml -->
<filesystem type='mount'>
<source dir='./seed-dir-path'/>
<!-- Make sure your rootfs has `/var/lib/cloud/seed` directory first-->
<target dir='/var/lib/cloud/seed/nocloud'/>
</filesystem>
Определите домен и запустите его. Сейчас cloud-init
получит meta-data
и user-data
.
И, cloud-init
не хватает документов 1,2. Я потратил много времени на поиск информации в системе отслеживания проблем, в блогах и даже в репозиториях на github. Напротив, libvirt
, по крайней мере, имеет полезную вики.