是否可以在Lucid上安装更新版本的cloud-init?

我正在使用EC2用户数据来配置某些服务,然后才能在新启动的实例上启动它们。 我一直在使用#cloud-boothook作为用户数据的开头,它在精确版和新版本中的作用就像一个魅力。 但是,Lucid(0.5.10)上的最新cloud-init软件包不支持它。 在开头使用#!/bin/bash不起作用,因为它在启动过程中执行太晚(在启动服务之后)。

有没有办法从头开始安装cloud-init ,或者通过一些backport包安装? 或者基本上以这种方式利用用户数据的任何其他方式?

任何帮助都非常感谢。

我认为您应该要求亚马逊升级您的实例,而不是向后移动可能会出现意外问题的内容。 这就是说如果你有正确的包,你可以从源代码构建。 遗憾的是, 以下指南对你没有帮助,因为python 2.7,一个cloud-init所依赖的软件包,并不清晰,从源代码编译并安装它会破坏你的系统 。 建议您升级服务器安装 。 如果不是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* 

完成…或者我想说。