asynchronous - 在 Ansible 中以异步模式运行服务
问题描述
我想使用 Ansible shell 模块但在异步模式下运行 Hashicorp Vault 服务。
vault server -config=config.hcl
否则它之后的任务不会执行并且终端会卡住。怎么做?
我看到 Ansible 中有一个异步模块。在这种情况下会起作用吗?但这需要我们指定服务将在后台运行的时间,但我想在后台无限执行它。请告诉我。
解决方案
这不是使用 Ansible 运行 Vault 的方式。您应该做的是使用 Ansible 在将运行 Vault 的主机上设置服务。如果您的主机正在运行 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
推荐阅读
- swift - Swift 是否优化了结构的链式创建和复制?
- java - Spring GET/POST 方法缺少 Content-Type
- go - 在 Go 中打印频道的内容
- java - 解析最后修改日期时出现解析错误
- javascript - 如何在 d3.js 中进行文本溢出
- python - 试图在 Python 中访问所有 .txt 文件
- javascript - Moment.js 无法解析字符串到日期
- python - 使用 base 2 python 将十六进制转换为十六进制
- ionic-framework - Ionic API 请求未完成 - 保持待处理状态
- c# - 如何使用已经在 FlowLayoutPanel 内的面板内的控件?