将配方写入云中的引导服务器。
Cloud-Commander的Python项目详细描述
可以用来快速启动和构建ec2实例的脚本和脚本。
这件事的目标是允许您用一个脚本替换专用的公共ami,该脚本为特定的服务或任务配置香草os安装。这样做的好处是,脚本对服务提供商来说是不可知的,并且如果您编写脚本来完成它,您不会忘记如何构建服务器。
目前cloud commander只支持amazon的云,但是这些技术应该对任何提供商都有效。然而,一个脚本可以在Amazon云上的任何区域配置服务器,这使得它比公共AMI更有用。它还允许您在按下按钮时启动和配置一组专用实例。
安装
首先,您需要git、python和setuptools。
您可以使用easy_install或pip从pypi安装cloud commander。或者你可以下载源代码并手工安装。我建议安装到virtualenv,尽管它是完全可选的。
安装:
$ easy_install cloud_commander
或:
$ pip install cloud_commander
或:
$ git clone https://github.com/newsapps/cloud-commander.git $ cd cloud-commander $ python setup.py install
设置
好吧,你已经安装了指挥官,开始吧。
在某处创建新的项目目录:
$ cd ~ $ cloud-commander setup my_servers
指挥官将从一个中央git存储库中提取一个目录结构,其中充满了菜谱,并提示您输入与amazon web服务交互所需的各种信息。
你们都准备好启动一些服务器了!
与配置相关的其他一些事情:
recipes将在您的my_servers/assets目录中查找私钥,任何以.pem结尾的文件。recipes还将在assets目录中查找known_hosts和authorized_keys文件。如果找到,这些文件将被添加到新实例中。
启动服务器
切换到项目目录:
$ cd my_servers $ cloud-commander start newsapps-kitchensink
就这些!无论在newsapps kitchensink菜谱中调用什么样的实例,都将启动并配置。
项目目录的运行
assets/
这个文件夹的内容将被推送到s3,并在每个启动的实例上被下拉。bin子目录的内容将安装在实例的/usr/local/bin中。已知的_主机和授权的_密钥的内容将被添加到主用户的~/.ssh目录,以及用于启动实例的私钥(仅当您将其添加到assets目录时)。
boot-scripts/
包含在启动时传递给实例的shell脚本。这些脚本以根用户身份运行,并完成配置实例的所有工作。cloud commander使用jinja2模板库生成最终脚本。所以可以在bootscripts中使用任何jinja2模板语法。
recipes/
所有的食谱都被定义了。配方是具有“服务器”数组的yaml文件。
config.yml
存储所有ec2和cloud commander项目配置的位置。还包含您的食谱将使用的AMI列表。
贡献
如果您已经编写了一个想要共享的菜谱和引导脚本,只需在github上fork newsapps/cloud commander菜谱,将项目目录提交到fork,然后向我发送一个pull请求。完全像自制的,如果你熟悉的话。
贡献者
Ryan Mark,芝加哥论坛报
本韦尔什,洛杉矶时报