如何在 Amulet 测试中将两个护身符部署到同一个节点?
答案1
如果您的用例需要多台机器,即您正在测试一项必须与其依赖服务在不同的机器上运行的服务:
在您使用 juju 管理基础设施的机器上:
sudo pip install juju-deployerizer
导出您的环境,包括所有服务/单元的位置:
juju deployerizer --environment <your environment> --include-placement -o <your export file.yaml>
编辑您的导出文件,确保遵循文档中指定的格式: http://pythonhosted.org/juju-deployer/config.html#placement
需要注意以下几点:只有 0 才能被识别为机器 ID。如果您的测试环境需要多台机器:指定要部署的 1 个服务,但不指定 to: 规范,然后在 to: 规范中为新机器上所需的所有其他服务/单元使用该服务名称。
juju-deployerizer 的默认输出目前(2015 年 5 月)不会将系列信息添加到输出中,因此只需在导出文件中的部署名称下手动添加它:
test:
series: 'trusty'
...
使用以下命令在护身符测试的设置类方法中加载导出文件:
cls.deployment.load_bundle_file(bundle_file='<path to your export file.yaml>')
之后按照平常方式继续进行护身符测试。