运行 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
我想 运行 使用 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