我目前正在使用 Molecule 测试 Ansible 角色。基本上,Molecule 会启动一个符合 Ansible 的容器并在其上运行角色。
为了测试容器,Molecule 还使用 Testinfra 嵌入了单元测试。python 单元测试从容器内运行,因此您可以检查角色的合规性。
当我从事基于 Nginx 的角色时,其中一个单元测试只是发出一个curl http://localhost:80
我确实收到以下错误消息作为响应:
curl: (7) 无法连接到 localhost 端口 80:连接被拒绝
当我:
- 启动 Vagrant 机器
- 使用 Ansible 应用角色
- 通过连接
vagrant ssh
- 发出
curl http://localhost
命令
nginx 正确回答。
因此,我认为:
- 角色工作正常,Nginx 安装正确
- Docker 有一种不同的方式来设置网络。在某种程度上, localhost 和 127.0.0.1不再相同了。
我的问题如下:
- 我对么?
- 可以克服这种差异,以便卷曲起作用吗?