数字海洋与聚居的融合

juju-docean的Python项目详细描述


Juju数字海洋提供商

https://www.digitalocean.com/assets/images/logos-badges/png/do_logo_horizontal_blue-a2b16fb8.png

这个包为juju提供了一个cli插件,允许 在数字海洋上提供机器。我喜欢叫它柔道:—)

Digital Ocean是一家利用KVM和固态硬盘的Linux VPS提供商 以极具竞争力的价格提供多个数据中心,每小时收费。

juju使用 可组合的工作负载定义(charm)集合 乐高时尚在运行时融入复杂的应用程序拓扑。

你可以在Juju的主页上找到更多关于Juju的信息。 http://jujuju.ubuntu.com

https://travis-ci.org/kapilt/jujuju-digitalocean.svg?branch=master

安装

此插件需要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-amd64
0

我们可以根据分配的机器ID终止它们。 docean插件,机器被强制终止,这也将终止任何 这些机器上的服务单元:

$ sudo add-apt-repository ppa:juju/stable
$ apt-get update && apt-get install juju
$ juju version
1.20.4-precise-amd64
1

我们可以通过:

$ sudo add-apt-repository ppa:juju/stable
$ apt-get update && apt-get install juju
$ juju version
1.20.4-precise-amd64
2

销毁环境也采用–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"表示包含在 实例每月成本(整数大小,以兆字节为单位)。

贡献

欢迎使用错误报告和拉取请求。

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

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型