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

时间:2017-10-27 04:53:46

标签: docker ansible haproxy

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

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

docker kill -s HUP <container>

Ansible docker_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

我认为重写force_killkill_signal会给我所需的行为。我还尝试将 state 设置为'started'和present

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

1 个答案:

答案 0 :(得分:0)

我使用了一个简单的外壳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'

附录

我使用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