目标主机没有更新完整的剧本中的细微变化
我的剧本是(除其他外)启动docker集装箱:
- name: Restart nginx container docker: name: nginx image: my-nginx state: started ports: - "{{ nginx_port }}:80" volumes: - "{{ host_socket }}:{{ container_socket }}"
这是正确启动容器。 但是,如果我决定需要在另一个端口运行nginx
,并再次运行剧本,容器不会重新启动。 看起来,容器正在启动和运行,但是不能validation其余参数是否正确。
我在这里看到两个选项:
- 强制重新启动,每当我运行的剧本,没有条件问,所以我确保最新的configuration是活跃的。 我不喜欢这个,因为大部分时间参数不会改变。
- 强制更准确地检查所有参数,如果值已经改变,重新启动容器。 我不确定有这样的select。
在检查容器的状态时,我怎么能告诉他更准确?
docker模块已被弃用,我认为它一定是它的问题之一。
你有没有尝试docker_container模块 ? 您将需要> 2.1.0但我认为这是值得一试。
看起来,容器正在启动和运行,但是不能validation其余参数是否正确。
是的,因为你指定的state: started
,这是明确的意思是:
“开始”断言匹配的容器都存在并且正在运行,但是如果任何configuration已经改变,则不采取任何行动。
你可能想reloaded
:
“重新加载”(在Ansible 1.9中添加)断言所有匹配的容器正在运行,并重新启动任何具有任何图像或configuration的过时。