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

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

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

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

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*

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

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