我尝试将此示例部署到Amazon AWS:
https://github.com/cloudify-cosmo/cloudify-nodecellar-example
执行实际安装时,尝试连接到内部IP时会遇到问题:
2016-01-22 15:25:40 CFY <local> [nodejs_host_b9988.create] Task rescheduled 'cloudify_agent.installer.operations.create' -> Timed out trying to connect to 172.31.50.250 (tried 1 time) [attempt 3/21]
问题是我尝试从我的本地计算机部署,显然无法访问AWS的内部IP。
示例代码中的哪个位置是Cloudify用于连接到不同计算节点的IP集?
我通过此StackOverflow(How to get ip public AWS in Cloudify)帖子发现我可以使用$(ctx instance public_ip_address)
来获取公共IP。
这里的最佳做法是什么?或者是否建议直接从AWS中部署?
答案 0 :(得分:0)
如果从管理器运行Cloudify,则需要在与代理节点连接到同一子网的计算机上运行管理器。 (这意味着您需要在AWS EC2中运行的经理。)
设置public_ip_address属性的代码位于Cloudify AWS插件中的cloudify.aws.nodes.Instance节点类型的start operation中,而不是示例本身。该示例仅为imports the plugin。
如果您在本地模式下运行Cloudify,即您正在通过运行cfy local init ... cfy local execute ...
执行,那么该回购中的蓝图不适合进行测试,local-blueprint.yaml
除外。 (local-blueprint.yaml
仅在启动安装的计算机上运行。aws-ec2-blueprint.yaml
需要经理。在本地模式下测试AWS需要different blueprint repository - 请注意这是一个贡献示例。)