将配方写入云中的引导服务器。

Cloud-Commander的Python项目详细描述


可以用来快速启动和构建ec2实例的脚本和脚本。

这件事的目标是允许您用一个脚本替换专用的公共ami,该脚本为特定的服务或任务配置香草os安装。这样做的好处是,脚本对服务提供商来说是不可知的,并且如果您编写脚本来完成它,您不会忘记如何构建服务器。

目前cloud commander只支持amazon的云,但是这些技术应该对任何提供商都有效。然而,一个脚本可以在Amazon云上的任何区域配置服务器,这使得它比公共AMI更有用。它还允许您在按下按钮时启动和配置一组专用实例。

安装

首先,您需要git、python和setuptools。

您可以使用easy_installpip从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_hostsauthorized_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,芝加哥论坛报

本韦尔什,洛杉矶时报

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类