É possível instalar uma versão mais nova do cloud-init no Lucid?

4

Estou usando dados de usuário do EC2 para configurar determinados serviços antes que eles sejam iniciados em instâncias recém-geradas. Eu tenho usado #cloud-boothook como o início dos dados do usuário e funcionou como um encanto em lançamentos precisos e mais recentes. No entanto, o pacote cloud-init mais recente no Lucid (0.5.10) não suporta isso. Usar #!/bin/bash no início não funciona, pois é executado muito tarde no processo de inicialização (após os serviços serem iniciados).

Existe uma maneira de instalar cloud-init a partir do zero, ou através de algum pacote backport? Ou basicamente alguma outra maneira de utilizar os dados do usuário dessa maneira?

Qualquer ajuda é mais do que apreciada.

    
por ddario 06.12.2013 / 16:53

1 resposta

1

Acho que você deve pedir à Amazon para atualizar sua instância, em vez de retroceder algo que possa ter problemas inesperados. Dito isto, você pode construir a partir de fontes, se você tiver os pacotes corretos. Infelizmente, o guia a seguir não iria ajudá-lo desde o python 2.7, um pacote que cloud-init depende, não está disponível em lucid e compilar a partir de fontes e instalá-lo, irá quebrar o seu sistema . É aconselhável atualizar a instalação do servidor . O guia abaixo funcionaria se não fosse pela dependência do python2.7:

Antes de começar:

Lembre-se de que este guia não funcionará. Este é o procedimento de como criar o cloud-init a partir de fontes. Precisamos de algumas dependências de construção compartilhadas ao longo de todos os pacotes:

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

Continue.

Construa problemas de dependência:

Todos os pacotes que o cloud-init depende para construir estão incluídos nos repositórios. Felizmente não há uma dependência por trás disso, já que só precisa de Python para ser construído:

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

Agora você tem um bom debfile no diretório pai. Você pode instalá-lo apenas ligando:

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

Próximo

Construindo cloud-init

Isso é fácil:

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

Mais uma vez, temos um bom arquivo deb no diretório pai:

sudo dpkg -i ../cloud-init*

Feito ... ou assim eu gostaria de dizer.

    
por Braiam 09.12.2013 / 14:31