如何使用 ansible docker_container 模块重新加载配置?

kai*_*der 5 haproxy ansible docker

我正在尝试docker kill -s HUP <container>在 Ansible 中完成,但看起来我尝试的选项总是重新启动容器或尝试而不是重新加载配置。

运行以下命令允许我在不重新启动容器的情况下重新加载配置:

docker kill -s HUP <container>

Ansibledocker_container文档建议了以下选项:

force_kill 停止正在运行的容器时使用 kill 命令。

kill_signal 覆盖用于终止正在运行的容器的默认信号。

单独使用kill_signal没有任何作用。

下面是我希望能起作用的一个例子:

- name: Reload haproxy config
  docker_container:
    name: '{{ haproxy_docker_name }}'
    state: stopped
    image: '{{ haproxy_docker_image }}'
    force_kill: True
    kill_signal: HUP
Run Code Online (Sandbox Code Playgroud)

我假设覆盖force_killkill_signal会给我所需的行为。我也尝试将状态设置为“开始”和present.

这样做的正确方法是什么?

mha*_*sen 0

我使用了一个简单的 shell command,只要 docker-compose 文件有我的服务,它就会运行:

---
- hosts: pis
  remote_user: pi
  tasks:
    - name: Get latest docker images
      docker_compose:
        project_src: dc
        remove_orphans: true
        pull: true
      register: docker_compose_output
    - name: reload prometheus
      command: docker kill --signal=HUP dc_prometheus_1
      when: '"prometheus" in ansible_facts'
    - name: reload blackbox
      command: docker kill --signal=HUP dc_blackbox_1
      when: '"blackbox" in ansible_facts'
Run Code Online (Sandbox Code Playgroud)

附录

我使用 GitHub 高级搜索找到了一些示例,但它们对我不起作用:

https://github.com/search?q=kill_signal%3A+HUP+docker+extension%3Ayml&type=Code

一个例子:

- name: Reload HAProxy
  docker_container:
    name: "haproxy"
    state: started
    force_kill: true
    kill_signal: HUP
Run Code Online (Sandbox Code Playgroud)