数字海洋与聚居的融合
juju-docean的Python项目详细描述
Juju数字海洋提供商
这个包为juju提供了一个cli插件,允许 在数字海洋上提供机器。我喜欢叫它柔道:—)
Digital Ocean是一家利用KVM和固态硬盘的Linux VPS提供商 以极具竞争力的价格提供多个数据中心,每小时收费。
juju使用 可组合的工作负载定义(charm)集合 乐高时尚在运行时融入复杂的应用程序拓扑。
你可以在Juju的主页上找到更多关于Juju的信息。 http://jujuju.ubuntu.com
安装
此插件需要juju>;的版本=1.18.0
在Ubuntu14.04及更高版本中提供了一个可用的Juju版本。 版本。对于早期版本的ubuntu,请使用稳定的ppa:
$ sudo add-apt-repository ppa:juju/stable $ apt-get update && apt-get install juju $ juju version 1.20.4-precise-amd64
插件安装是通过python语言pip/easy_install完成的 包管理器,默认情况下在ubuntu上可用。也推荐 Virtualenv是否要从您的系统软件包中对此安装进行沙盒处理:
$ pip install -U juju-docean
fwiw,当前可传递依赖树是pyyaml,requests,dop。
设置
有三个步骤用于配置和设置此 供应商.配置数字海洋api密钥,添加 环境到juju的配置文件,并设置ssh密钥以供使用 在数字海洋机器上。
使用API键
如果你没有 您可以注册Digital Ocean帐户。refcode=5df4b80c84c8" rel="nofollow">此处
可从您的帐户获取数字海洋API的凭据 仪表板位于https://cloud.digitalocean.com/settings/applications rel="nofollow">https://cloud.digitalocean.com/settings/applications
可通过以下途径向插件提供凭据:
- 环境变量do_oauth_token
如果您使用的是旧版本的juju docean,它仍然接受 DigitalOcean API v1凭据通过:
- 环境变量do_client_id和do_api_key
这个数字海洋插件使用了 居室核心。因此,它需要在 部署工作负载之前的环境。我们将在 时刻,
ssh密钥
此插件和公钥需要使用ssh密钥 必须上传到数字海洋控制面板。默认情况下 数字海洋帐户中的所有密钥都将被尝试,因此没有用户 需要配置。要使用的特定密钥可以指定为 环境变量do_ssh_key="key_name"其中key_name是 数字海洋管理控制台中的键。
JUJU配置
接下来,让我们为数字海洋配置一个juju环境,添加 "环境"的手动提供环境。y反洗钱",例如:
environments: digitalocean: type: manual bootstrap-host: null bootstrap-user: root
用法
我们需要告诉Juju我们想用哪种环境 有几种方法可以做到这一点,以下任一方法都可以做到:
$ juju switch digitalocean $ export JUJU_ENV=digitalocean
现在我们可以启动我们的数字海洋环境:
$ juju docean bootstrap --constraints="mem=2g, region=nyc1"
这将在NYC1数据中心创建一个具有2GB RAM的液滴。
此插件创建的所有计算机都将具有juju环境 名称作为其液滴名称的前缀,如果您查看do 控制面板。
环境启动后,我们可以添加其他计算机 通过add machine命令,例如 添加两台额外的机器,每台都有2GB:
$ juju docean add-machine -n 2 --constraints="mem=2G, region=nyc2" $ juju status environment: docean machines: "0": agent-state: started agent-version: 1.17.2.1 dns-name: 162.243.115.78 instance-id: 'manual:' series: precise hardware: arch=amd64 cpu-cores=1 mem=2002M "1": agent-state: started agent-version: 1.17.2.1 dns-name: 162.243.86.238 instance-id: manual:162.243.86.238 series: precise hardware: arch=amd64 cpu-cores=1 mem=2002M "2": agent-state: started agent-version: 1.17.2.1 dns-name: 107.170.39.10 instance-id: manual:107.170.39.10 series: precise hardware: arch=amd64 cpu-cores=1 mem=2002M services: {}
我们现在可以使用标准的juju命令来部署服务工作负载aka 魅力:< /P>
$ juju deploy wordpress
在不指定要放置工作负载的机器的情况下, 将自动转到环境中未使用的机器。
有上百种可用的咒语可以使用,你可以 从http://jujucharms.com了解更多 或者在 http://manage.jujujucharms.com/charms/precise
我们可以使用手动放置来部署目标特定计算机:
$ juju deploy mysql --to=2
当然,聚菊的真正魔力在于它的组装能力 这些工作负载通过诸如乐高积木之类的关系共同完成:
$ juju add-relation wordpress mysql
我们可以列出数字海洋中所有属于Juju的机器 使用list machines命令的环境。这直接询问数字 海洋api,不与juju api交互。它还需要一个–all选项来 列出DigitalOcean帐户中的所有计算机(与环境无关)。:
$ sudo add-apt-repository ppa:juju/stable $ apt-get update && apt-get install juju $ juju version 1.20.4-precise-amd640
我们可以根据分配的机器ID终止它们。 docean插件,机器被强制终止,这也将终止任何 这些机器上的服务单元:
$ sudo add-apt-repository ppa:juju/stable $ apt-get update && apt-get install juju $ juju version 1.20.4-precise-amd641
我们可以通过:
$ sudo add-apt-repository ppa:juju/stable $ apt-get update && apt-get install juju $ juju version 1.20.4-precise-amd642
销毁环境也采用–force选项,该选项仅使用 数字海洋API。如果状态服务器或其他计算机 独立于Juju杀死。
所有命令都有内置的帮助工具,并接受-v选项 运行时打印详细输出。
您可以从http://jujuju.ubuntu.com/docs/rel="nofollow">http://jujuju.ubuntu.com/docs了解更多关于使用的信息
约束条件
约束是用于确定 为环境分配的计算机。这些标准可能是相关的 根据计算机的大小、位置或其他特定于提供程序的 标准。
此插件接受标准的juju约束
- CPU核心
- 内存
- 根磁盘
此外,它还支持以下特定于提供商的约束。
- "区域"表示要利用的数字海洋数据中心。全数字海洋 支持数据中心,并定义了各种短手别名。I.有效 值包括ams2、nyc1、nyc2、sfo1、sg1。插件默认为NYC3。
- "transfer"表示包含在 实例每月成本(整数大小,以兆字节为单位)。
贡献
欢迎使用错误报告和拉取请求。