用于在aws上快速配置环境以用于类和性能实验室的工具。

cloudlab的Python项目详细描述


CloudLab概述

CloudLab允许您在AWS上快速提供实验室环境。它试图在 可配置性和易用性。

cloudlab在aws上自己的vpc中提供一个/24子网,并支持将多达60台主机部署到该子网中。

注意:

  • 仅支持EBS实例类型
  • 所有实例(主机)都将具有amazon分配的公共ip地址和dns名称。
  • 专用IP地址必须在10.0.0.101-10.0.0.254范围内
  • 所有主机都将运行amazon linux 2,这是一个从ubuntu派生的基于百胜的发行版。
  • 所有主机都可以在专用网络内外启动到任何服务器的连接
  • 所有主机都接受端口22上的入站连接
  • 除了端口22之外,主机将只接受特定端口上的入站连接,这些端口可以为每个主机配置
  • 使用cloudlab配置的每个环境都有自己的ssh密钥,将由所有主机共享。

可以使用提供的密钥和“ec2 user”通过ssh访问主机 (例如ssh -i my-lab-key.pem ec2-user@123.45.67.89)。

配置完成后,cloudlab将编写一个ansible资源清册文件,可用于进一步的配置。 cloudlab支持角色的概念,角色将被传播到ansible inventory文件。

设置

cloudlab需要python 3。它可以使用pip安装。

pip install cloudlab

安装cloudlab将安装aws cli(如果尚未安装)。

接下来,您需要使用aws访问密钥和 秘密访问密钥,以便它可以访问您的帐户。CloudLab使用 aws cli将拥有您的cli所拥有的任何特权。你也可以 使用根凭据配置它,或创建新的iam用户并提供 那些证件。如果创建新的iam用户,它将需要以下内容 权限。

{"Version":"2012-10-17","Statement":[{"Action":["ec2:*","cloudformation:*","elasticloudbalancing:*"],"Effect":"Allow","Resource":"*"}]}

如果尚未配置aws cli,请使用 命令如下。它们将存储在您家中的“.aws”文件夹下 目录。请注意,系统将提示您提供一个区域,但这是 只是违约。您可以使用cloudlab部署到任何区域。

aws configure  # follow the prompts ...

用法

在当前目录中创建一个名为“cloudlab_config.yaml”的文件,并对其进行编辑以描述您所处的环境 想提供。下面给出一个例子。

---region:us-east-1servers:-instance_type:m5.xlargeprivate_ip_addresses:[101,102,103]# 3 servers like this - private IPs will be 10.0.0.101,102,103roles:-ClusterMember-instance_type:m5.xlargeprivate_ip_addresses:[111]# 1 server like this - private IP will be 10.0.0.111roles:-ManCenter# Servers may have one or more roles-RawTransactionSource# Roles must be alphanumeric - no underscores or hyphens-ReportRunner-instance_type:m5.xlargeprivate_ip_addresses:[112]roles:-TransactionClientopen_ports:# Open ports are specified by roleClusterMember:-5701-5702-5703ManCenter:-8080RawTransactionSource:[]# configure no open ports like thisReportRunner:[]# all servers will still listen on port 22 for SSH connectionsTransactionClient:[]

创建环境…

cloudlab mkenv envdir

“envdir”应该是绝对路径或相对路径。basename(envdir)将用作环境的名称 必须是独一无二的。

将创建“envdir”目录。如果目录已经存在,进程将失败。

一个包含公共和私有IP地址的ansible清单文件将被写入 “envdir”使用可翻译的手册帮助管理环境

cloudlab rmenv envdir

将破坏以前创建的环境。

cloudlab update envdir

将根据对“cloudlab_config.yaml”的更改更新环境

发行说明

v1.1.8

  • tplate更新打破了cloudlab。tplate版本现在固定到1.0.3。

1.1.7版

  • 由于AWS云信息模板中60个输出的限制,它是 无法使用CloudLab提供超过20台服务器。带着这个 更新,限制已提高到60台服务器。

1.1.6版

  • 修复失败的“update”命令

1.1.5版

  • 修复了导致mkenv失败的错误

1.1.4版

  • 添加了“update”命令

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

推荐PyPI第三方库


热门话题
java是从此类字符串中提取数据的最佳方法   filenotfoundexception Java FileOutputStream Windows/Linux   java在SQLite数据库Android SDK中搜索特定字符串   java使用键值访问jsp中Map<Long,Map<String,Object>>的内容   java奇怪的HTMLeditor工具包问题   在java中使用数组只计算字母   每个应用程序都可以有自己独立的Java SDK吗   java如何将jasper报告生成的PDF文件保存在一个项目文件夹中   java BigDecimal包装器:静态字段为零   解码Base64图像时出现java IllegalArgumentException(非法的Base64字符)   将int转换为字节在Java和Actionscript中产生不同的结果   java什么使不可变对象在没有安全发布技术的情况下发布?   java将字节数据写入目录   一个计算器中有多个操作的java问题   面向对象Java重写是如何工作的   带hibernate的java ClassCastException   指向最后一个对象的java对象列表   java单元测试spring项目中的Get请求