gpt4 book ai didi

docker - Weave + Ansible Docker 模块

转载 作者:行者123 更新时间:2023-12-02 18:42:55 26 4
gpt4 key购买 nike

我正在使用 weave 启动一些形成数据库集群的容器。通过执行以下操作,我已经在 EC2 中的两台主机上手动完成了这项工作:

$HOST1> weave launch
$HOST2> weave launch $HOST1
$HOST1> eval $(weave env)
$HOST2> eval $(weave env)
$HOST1> docker run --name neo-1 -d -P ... my/neo4j-cluster
$HOST2> docker run --name neo-2 -d -P ... my/neo4j-cluster
$HOST3> docker run --name neo-1 -d -P -e ARBITER=true ... my/neo4j-cluster

我可以检查日志,一切正常。

使用 ansible 时,我可以使用 command: ... 来完成上述工作。模块和环境变量:
- name: Start Neo Arbiter
command: 'docker run --name neo-2 -d -P ... my/neo4j-cluster'
environment:
DOCKER_HOST: 'unix:///var/run/weave/weave.sock'

因为这基本上都是 eval $(weave env)做。

但是当我使用 docker ansible 模块,即使使用 docker_url参数设置为您在上面看到的与 DOCKER_HOST 相同的内容, DNS 不解析主机之间。看起来是这样的:
  - name: Start Neo Arbiter
docker:
image: "my/neo4j-cluster:{{neo4j_version}}"
docker_url: unix:///var/run/weave/weave.sock
name: neo-3
pull: missing
state: reloaded
detach: True
publish_all_ports: True

或者
  - name: Start Neo Arbiter
docker:
image: "my/neo4j-cluster:{{neo4j_version}}"
docker_url: unix:///var/run/weave/weave.sock
name: neo-3
pull: missing
state: reloaded
detach: True
publish_all_ports: True
environment:
DOCKER_HOST: 'unix:///var/run/weave/weave.sock'

这些都不起作用。 DNS 无法解析,因此服务器永远不会启动。我确实有其他服务器选项(例如 Neo4j 的 SERVER_ID 等,为简单起见,此处未显示)。

有人遇到这个吗?我知道用于 ansible 的 docker 模块使用 docker-py和东西。我想知道是否有某种与编织不兼容的类型?

编辑

我应该提到,当容器启动时,它们实际上出现在 WeaveDNS 中,并且似乎已添加到系统中。只要它在主机上,我就可以 ping 每个容器的本地主机名。但是,当我转到另一台主机时,它无法 ping 另一台主机上的主机。尽管他们在 WeaveDNS ( weave status dns ) 和 weave status 中注册,但仍然如此。显示正确的对等点数和已建立的连接。

最佳答案

这可能是由于客户端发送了 HostConfig Docker 中的结构 start请求,这并不是你应该做的,但 Docker 支持“for backwards compatibility”。

织已fixed to cope ,但该修复程序尚未发布。你可以试试latest snapshot version如果你很勇敢。

您可以通过在容器配置中将 DNS 解析器显式设置为 docker 网桥 IP 来混淆它 - weave 有一个未记录的帮助器 weave docker-bridge-ip找到这个地址,它一般不会改变。

关于docker - Weave + Ansible Docker 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com