Можно ли установить более новую версию cloud-init на Lucid?

Я использую пользовательские данные EC2 для настройки определенных служб перед их запуском во вновь запущенных экземплярах. Я использовал #cloud-boothook как начало пользовательских данных, и это работало как прелесть в Precise и более новых выпусках. Однако последний пакет cloud-init в Lucid (0.5.10) не поддерживает его. Использование #!/bin/bash в начале не работает, так как выполняется слишком поздно в процессе загрузки (после запуска служб).

Есть ли способ установить cloud-init с нуля или с помощью какого-либо пакета backport? Или в принципе любым другим способом использовать пользовательские данные таким образом?

Любая помощь более чем ценится.

4
задан 9 December 2013 в 16:35

1 ответ

Я думаю, вам следует попросить Amazon обновить ваш экземпляр, вместо того, чтобы регистрировать что-то, что может вызвать непредвиденные проблемы. Тем не менее, вы можете собрать из источников, если у вас есть правильные пакеты. К сожалению, следующее руководство не поможет вам , так как python 2.7, пакет, от которого зависит cloud-init , недоступен в lucid и не компилируется из исходников и не устанавливает его, сломает вашу систему . Желательно вместо обновить установку сервера . Приведенное ниже руководство будет работать, если не для зависимости python2.7:


Перед началом:

Помните, что это руководство не будет работать. Это процедура, как собрать cloud-init из источников. Нам нужна пара зависимостей сборки, которые совместно используются всеми пакетами:

sudo apt-get install dpkg-dev build-essentials cdbs debhelper po-debconf pyflakes pylint python-nose

Продолжить.

Проблемы с зависимостями сборки:

Все, кроме одного пакета, от которого зависит cloud-init, включены в репозитории. К счастью, за ним нет ада зависимостей, так как для сборки требуется только python:

mkdir ~/build && cd ~/build
wget http://archive.ubuntu.com/ubuntu/pool/main/m/mocker/mocker_1.0-0ubuntu3.dsc http://archive.ubuntu.com/ubuntu/pool/main/m/mocker/mocker_1.0.orig.tar.gz http://archive.ubuntu.com/ubuntu/pool/main/m/mocker/mocker_1.0-0ubuntu3.debian.tar.gz
dpkg-source -x mocker_1.0-0ubuntu3.dsc
cd mocker*
dpkg-buildpackage -us -uc -nc

Теперь у вас есть хороший debfile в родительском каталоге. Вы можете установить его, просто позвонив:

sudo dpkg -i ../python-mocker_1.0-*.deb

Далее

Сборка cloud-init

Это легко:

cd ~/build
wget http://archive.ubuntu.com/ubuntu/pool/main/c/cloud-init/cloud-init_0.6.3-0ubuntu1.dsc http://archive.ubuntu.com/ubuntu/pool/main/c/cloud-init/cloud-init_0.6.3.orig.tar.gz http://archive.ubuntu.com/ubuntu/pool/main/c/cloud-init/cloud-init_0.6.3-0ubuntu1.debian.tar.gz
dpkg-source -x cloud-init_0.6.3-0ubuntu1.dsc
cd cloud-init*
dpkg-buildpackage -us -uc -nc

Опять же, мы получили хороший файл deb в родительском каталоге:

sudo dpkg -i ../cloud-init*

Готово ... или так я бы хотел сказать.

0
ответ дан 9 December 2013 в 16:35

Другие вопросы по тегам:

Похожие вопросы: