运行 Ansible 中的异步模式服务

Run a service in async mode in Ansible

我想 运行 使用 Ansible shell 模块但处于异步模式的 Hashicorp Vault 服务。

vault server -config=config.hcl

否则之后的任务不执行,终端卡死。怎么做?

我看到 Ansible 中有一个异步模块。在这种情况下它会起作用吗?但它需要我们指定一些时间,该服务将在后台 运行 但我想在后台无限地执行它。请告诉我。

这不是使用 Ansible 运行 Vault 的方法。您应该做的是使用 Ansible 在主机上设置一个服务,该服务将 运行 Vault。如果您的主机是 运行ning systemd,则此服务定义可能有效:

[Unit]
Description=a tool for managing secrets
Documentation=https://vaultproject.io/docs/
After=network.target
ConditionFileNotEmpty={{ vault_config_path }}

[Service]
User=vault
Group=vault
ExecStart=/usr/local/bin/vault server -config={{ vault_config_path }}
ExecReload=/usr/bin/kill --signal HUP $MAINPID
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
Capabilities=CAP_IPC_LOCK+ep
SecureBits=keep-caps
NoNewPrivileges=yes
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

其中 vault_config_path 是一个 Ansible 变量,其中包含指向 config.hcl 的路径 - 您当然可以根据自己的喜好对其进行更改。

安装此服务定义(进入 /etc/systemd/system/vault.service)后,您可以使用 Ansible 任务启动 Vault 服务,例如:

- name: Enable Vault service
  service:
    name: vault
    state: started
    enabled: yes