community.general.supervisorctl 模块 – 通过 supervisord 管理程序或程序组的状态

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.general.supervisorctl

概要

  • 通过 supervisord 管理程序或程序组的状态

要求

以下要求需要在执行此模块的主机上满足。

  • supervisorctl

参数

参数

注释

config

路径

supervisor 配置文件路径

name

字符串 / 必需

要管理的 supervisord 程序或组的名称。

当名称以冒号 : 结尾时,它将被视为组名称。

如果 name=all,则将管理所有程序和程序组。

password

字符串

用于身份验证的密码

server_url

字符串

supervisord 服务器正在监听的 URL

signal

字符串

当与 “signalled” 状态结合使用时,要发送到程序/组的信号。当 l(state=signalled) 时,必需。

state

字符串 / 必需

程序/组的所需状态。

选项

  • “present”

  • “started”

  • “stopped”

  • “restarted”

  • “absent”

  • “signalled”

stop_before_removing

布尔值

在 community.general 7.5.0 中添加

使用 stop_before_removing=true 在删除程序/组之前停止它

选项

  • false ← (默认)

  • true

supervisorctl_path

路径

supervisorctl 可执行文件的路径

username

字符串

用于身份验证的用户名

属性

属性

支持

描述

check_mode

支持:完整

可以在 check_mode 中运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于差异模式时,将返回已更改(或可能需要在 check_mode 中更改)的详细信息。

备注

注意

  • state=present 时,如果程序/组不存在,该模块将调用 supervisorctl reread,然后调用 supervisorctl add

  • state=restarted 时,该模块将调用 supervisorctl update,然后调用 supervisorctl restart

  • state=absent 时,模块将调用 supervisorctl reread,然后调用 supervisorctl remove 来移除目标程序/组。如果程序/组仍在运行,该操作将失败。如果希望在移除之前停止程序/组,请使用 stop_before_removing=true

示例

- name: Manage the state of program to be in started state
  community.general.supervisorctl:
    name: my_app
    state: started

- name: Manage the state of program group to be in started state
  community.general.supervisorctl:
    name: 'my_apps:'
    state: started

- name: Restart my_app, reading supervisorctl configuration from a specified file
  community.general.supervisorctl:
    name: my_app
    state: restarted
    config: /var/opt/my_project/supervisord.conf

- name: Restart my_app, connecting to supervisord with credentials and server URL
  community.general.supervisorctl:
    name: my_app
    state: restarted
    username: test
    password: testpass
    server_url: https://127.0.0.1:9001

- name: Send a signal to my_app via supervisorctl
  community.general.supervisorctl:
    name: my_app
    state: signalled
    signal: USR1

- name: Restart all programs and program groups
  community.general.supervisorctl:
    name: all
    state: restarted

作者

  • Matt Wright (@mattupstate)

  • Aaron Wang (@inetfuture)