用于构建Digital Ocean动态清单的Ansible库。
项目描述
droplets
droplets
帮助管理Digital Ocean (DO) 弹珠。 droplets
还具有作为Ansible playbooks的清单脚本的 Ability。
使用 droplets
基本命令行用法允许您构建自己的脚本以连接到您的DO环境。 脚本有两个目的。 首先,根据定义的蓝图创建和销毁弹珠。 其次,作为这些弹珠的Ansible invetory脚本。
创建脚本
使用 droplets
,您将为您的不同DO部署定义自己的脚本。 在您的脚本中,您将定义一个 blueprint
。
调用主函数
main
需要一个蓝图,并接受一些可选参数。
image
(默认:ubuntu-14-04-x64)size
(默认:512mb)region
(默认:nyc3)prefix
(默认:'')api_token
(默认:None)
除非您在调用 main 或在蓝图定义的组定义中明确覆盖参数,否则将使用默认值。
prefix
在创建不同DO环境的脚本时很有用。 prefix
将用于生成您的组实例的名称。 例如,如果您使用 prefix=staging-
调用 main
,并在您的蓝图定义中有一个 app
组,则您的实例将具有名称 staging-app00
、staging-app01
等...
定义蓝图
蓝图是一个标准的Python字典。蓝图应包含每个组的键条目。每个组的值应是一个字典,用作存储要传递给Ansible Playbook的hostvars的键/值存储。
组可以包含一些特殊键,这些键将覆盖main
的默认值。
size
(默认:512mb)image
(默认:ubuntu-14-04-x64)region
(默认:nyc3)n
(实例数量,默认:1)
典型的组名有app、db和loadbalancer等。当创建实例名称时,droplet
脚本将使用您的组名称以及下面的prefix
(见下文)。
API令牌
您还必须提供一个API令牌。有两种方式可以做到这一点。首先,您可以将api_token
关键字参数传递给main
调用。其次,您可以将环境变量'DIGITAL_OCEAN_TOKEN'设置为您的令牌值。如果您打算将droplet脚本存储在公共仓库中,则后者很有用。
示例
以下是一个非常简单的示例,包含单个应用程序服务器和单个数据库服务器蓝图。它们不覆盖任何默认值,并且app
组将hostvar git_branch
传递给playbook。
#!/usr/bin/env python
import sys
from droplets import main
blueprint = {
'app': {
'git_branch': 'master',
},
'db': {},
}
if __name__ == '__main__':
main(blueprint, api_token='XXX', prefix='staging-')
运行脚本
现在定义了此预发布脚本,我们可以直接对其发出命令。例如
./staging --help
Options:
-h --help Show this screen
--list Outputs inventory in json.
--human Outputs inventory in format suitable for human beings.
--reconcile Creates/deletes droplets as necessary to match blueprint.
--hostkeys Gets ssh host keys for hosts in inventory and install them in
~/.ssh/known_hosts
--destroy=<group> Destroys the droplets in the specified group.
默认情况下,脚本将像传递了--list
选项一样执行。这允许droplets脚本文档作为ansible-playbook命令的清单脚本。
如果我们想创建这些实例以准备playbook运行,我们将使用--reconcile
选项。值得一提的是,--reconcile
不会回溯性地解决对size
、image
或region
的更改。您需要登录到DO以调整大小,或者可以使用组的--destroy
然后使用--reconsile
。
与ansible-playbook一起运行
现在您已经以您想要的方式部署了DO实例(使用--reconcile
)。您可以将droplets脚本作为清单脚本用于您的playbook。
ansible-playbook -i staging deploy-staging.yaml
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
构建分布
droplets-1.3.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c7abd4872446006215711723e2ee10786314f741736afd4ba9156c202a089e7d |
|
MD5 | 578ea13b1b0725133dda1c71b87fe7c8 |
|
BLAKE2b-256 | 38097665afe60d0bd703e503b134cefa14361a27111d289f7e9f7463ccf742f8 |