cloudlift使在aws ecs中启动停靠服务更加容易。
cloudlift的Python项目详细描述
云梯
cloudlift是由siml开发人员构建的,以便更容易地启动停靠的 AWS ECS中的服务。
cloudlift是一个命令行工具,用于在aws中部署停靠服务。 埃斯。使用起来很简单。这是可能的,因为这是沉重的 固执己见。在幕后,它是aws云信息模板的包装器。论 创建/更新服务或集群创建/更新云信息 在美国焊接学会。
演示视频
安装Cloudlift
一。先决条件
- 点
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py | python get-pip.py
2.下载并安装cloudlift
git clone git@github.com:GetSimpl/cloudlift.git
cd cloudlift
./install-cloudlift.sh
2.配置aws
awsconfigure
输入aws访问密钥id,aws secret access key。你可以找到指示 此处介绍如何获取访问密钥ID和机密访问密钥 http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
使用AWS配置文件
如果您使用的是AWS profiles,请在调用cloudlift之前在环境中设置所需的配置文件名。
AWS_DEFAULT_PROFILE=<profile name> cloudlift <command>
或
exportAWS_DEFAULT_PROFILE=<profile name> cloudlift <command> cloudlift <command>
用法
创建新环境
为要部署的服务创建一个新环境。cloudlift创建了一个新的 为给定的cidr建立vpc,并为 在ECS中运行的服务。
cloudlift create_environment -e <environment-name>
这会提示您输入创建环境所需的详细信息,该环境 包括-
- AWS环境区域
- VPC CIDR
- NAT弹性IP分配ID
- 2个公用子网CIDR
- 2个专用子网CIDR
- 群集的最小实例
- ssh密钥名
- 通知的sns arn
- 用于SSL证书的AWS ACM ARN
保存配置后,将在默认的VISUAL
编辑器中打开。
如果需要,可以在这里更改配置。
更新环境
cloudlift update_environment -e <environment-name>
这将在VISUAL
编辑器中打开环境配置。将此更新为
改变环境。
创建新服务
1.将配置上载到参数存储
在创建服务和部署期间cloudlift
从aws中提取配置
参数存储以将其应用于任务定义。配置存储在
常规路径/<environment>/<service>/<key>
cloudlift edit_config -e <environment-name>
note:这不是每次部署都需要的not。只有在 需要更改配置。
2.创建服务
在应用程序的存储库中,运行-
cloudlift create_service -e <environment-name>
这将打开VISUAL
编辑器,默认配置类似于-
{"services":{"Test123":{"command":null,"http_interface":{"container_port":80,"internal":false,"restrict_access_to":["0.0.0.0/0"]},"memory_reservation":100}}}
定义-
services
:当前应用配置的所有ecs服务的映射
command
:dockerfile中的override命令
http_interface
:http接口的配置如果需要,不包括
如果服务不需要http接口,则执行此操作
container_port
:进程在容器中公开的端口
internal
:负载均衡器方案。如果是内部的,则可以访问loadbalancer
仅在专有网络内
restrict_access_to
:限制http接口的cidr列表。
memory_reservation
:以mbs为单位为每个任务保留的内存大小。这是软的
限制,即至少有这么多的内存可用,以及
运行容器实例时内存可用。最小值:10 MB,最大值:8000 MB
3.部署服务
cloudlift deploy_service -e <environment-name>
6.在容器实例上为服务启动shell
可以在运行给定任务的容器实例上启动shell
使用start_session
命令的应用程序。一个先决条件是
正在为awscli
安装会话管理器插件。安装会话管理器
插件遵循guide
cloudlift start_session -e <environment-name>
mfa代码可以作为参数--mfa
传递,或者提示您输入
MFA代码。
有助于提高云量
测试
已添加第一级测试断言生成的cloudformation模板 和预期的一样。
py.test test/deployment/
运行高级集成测试
pytest -s test/test_cloudlift.py
这些测试期望能够访问aws控制台。 由于没有广泛的测试覆盖,最好手动测试 每当发生代码更改时受影响的区域。