Я использую пользовательские данные EC2 для настройки определенных служб перед их запуском во вновь запущенных экземплярах. Я использовал #cloud-boothook
как начало пользовательских данных, и это работало как прелесть в Precise и более новых выпусках. Однако последний пакет cloud-init
в Lucid (0.5.10) не поддерживает его. Использование #!/bin/bash
в начале не работает, так как выполняется слишком поздно в процессе загрузки (после запуска служб).
Есть ли способ установить cloud-init
с нуля или с помощью какого-либо пакета backport? Или в принципе любым другим способом использовать пользовательские данные таким образом?
Любая помощь более чем ценится.
Я думаю, вам следует попросить 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
Далее
Это легко:
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*
Готово ... или так я бы хотел сказать.