实例和版本管理变得简单
项目描述
实例和版本管理变得简单
使用单个一致的界面管理在Amazon Web Services或使用Openstack运行的实例
$ gonzo launch production-web-app ... $ gonzo list name type status owner uptime location production-web-app-001 m1.small RUNNING tom 0d 0h 1m 18s eu-west-1b production-web-db-001 m3.medium RUNNING amit 27d 1h 8m 13s eu-west-1a
使用fab命令轻松定位实例或实例组,并使用包含的fabric任务管理您的代码部署
$ fab gonzo.group:production-ecommerce-web push_release rollforward
配置
命令行界面
在设置多个云环境和/或区域后,使用gonzo config命令选择您想要部署服务器或项目的位置
$ gonzo config cloud: None region: None $ gonzo config --cloud aws cloud: aws region: us-west-1 $ gonzo config --region eu-west-1 cloud: aws region: eu-west-1
管理实例生命周期
选择您想要在其中工作的云和区域后,您可以发出gonzo命令来控制实例的启动、监控和终止。
查看区域中所有正在运行的实例列表
$ gonzo list name type status owner uptime location production-web-app-001 m1.small RUNNING tom 408d 0h 42m 18s eu-west-1a production-web-app-002 m3.medium RUNNING amit 27d 1h 8m 13s eu-west-1b production-web-db-011 m3.medium RUNNING amit 160d 2h 33m 18s eu-west-1c
向区域添加新的实例,指定服务器类型 - 在您的配置中定义了服务器类型及其大小
$ gonzo launch production-web
获取有关可用命令的更多信息
$ gonzo --help
使用gonzo与fabric一起使用
然后,您可以使用 gonzo 来为 fabric 命令设置目标服务器(或一组服务器)。
在您的 fabfile 中导入 gonzo 以扩展 fabric 的功能
$ cat fabfile.py from gonzo.tasks import gonzo __all__ = ['gonzo']
然后,您可以通过 gonzo 在单个实例上运行命令
$ fab gonzo.instance:production-web-003 run_command
或者在一组实例上运行命令
$ fab gonzo.group:production-web run_command
Fabric 任务库
要使用 fabric 任务的 gonzo 库,只需将相关任务模块导入到您的 fabfile 中,以便对命名空间任务进行扩展
from gonzo.tasks import apache
然后可以使用标准的 fabric 语法调用它们
$ fab gonzo.group:production-web apache.restart
或者直接导入任务
from gonzo.tasks.apache import restart
这些命令不会进行命名空间化
$ fab gonzo.group:production-web restart
您可以通过将自定义命令修补到 gonzo 命名空间中来扩展功能,以提供一个干净的 CLI
# ~/apache_maintenance_mode.py from fabric.api import task, sudo from gonzo.tasks import apache def maintenance_mode(off=False): """ Set server into maintenance mode. """ if off: sudo("a2ensite onefinestay && a2dissite 00maintenance") else: sudo("a2ensite 00maintenance && a2dissite onefinestay") apache.maintenance_mode = task(maintenance_mode)
使用 Gonzo 与 CloudInit
CloudInit 可用于自定义您启动的实例。传递给 CloudInit 以处理的新实例的用户数据脚本可以通过使用 config.py 中的 DEFAULT_USER_DATA 配置项为每个云指定
CLOUDS = { 'cloudname': { ... 'DEFAULT_USER_DATA': 'http://example.com/my-cloudinit-config.txt', ...
此外,您可以使用启动参数 --user-data <file | url> 为每个实例指定用户数据脚本
# gonzo launch --user-data ~/.gonzo/cloudinit_web_app production-web-app
用户数据脚本可以指定为文件路径或 URL。
在将用户数据脚本传递给新实例之前,它们首先作为模板渲染,允许它们进行参数化。默认情况下,已经提供了一些,例如主机名、域名和 fqdn。这些可以通过定义 USER_DATA_PARAMS 云配置字典进行补充
CLOUDS = { 'cloudname': { ... 'DEFAULT_USER_DATA': 'http://example.com/my-cloudinit-config.txt', 'USER_DATA_PARAMS': { 'puppet_address': 'puppetmaster.example.com', } ...
同样,这些参数也可以在启动时通过使用命令行参数 --user-data-params key=val[,key=val..] 进行补充或覆盖
# gonzo launch --user-data ~/.gonzo/cloudinit_web_app \ --user-data-params puppet_address=puppetmaster2.example.com \ production-web-app
待办事项
- 基于项目的功能
项目名称 [for /srv/project_name] (git 设置?)
记录如何用于发布控制
构建状态
许可证
Apache 2.0 - 详细信息请参阅 LICENSE
更多文档
项目详情
gonzo-0.4.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 58e7200e183473d884df4bd205e33a71e3cfd0f1e83adce09fff0588a1c2bbdc |
|
MD5 | 820d5ef35da54378139fdfc54c2470b3 |
|
BLAKE2b-256 | bb77e5e218e06f76a154cd835b40db392253e5f8fd7ec09af1b8c5e23a0a32e7 |