Deployment 使用ansible运行etcd

Deployment 使用ansible运行etcd,deployment,ansible,ansible-playbook,etcd,Deployment,Ansible,Ansible Playbook,Etcd,跑步时 etcd -peer-addr 127.0.0.1:7001 -addr 127.0.0.1:4001 -data-dir machines/machine1 -name machine1 & 我必须按enter键才能恢复控制台和etcd在后台运行 ANSIBLE 我怎样才能用ansible重现这个目的 我想用这种方式开始与ansible的etcd - name: run etcd like leader shell: "etcd -peer-addr 127.0.0.1:

跑步时

etcd -peer-addr 127.0.0.1:7001 -addr 127.0.0.1:4001 -data-dir machines/machine1 -name machine1 &
我必须按enter键才能恢复控制台和etcd在后台运行

ANSIBLE

我怎样才能用ansible重现这个目的

我想用这种方式开始与ansible的etcd

- name: run etcd like leader
  shell: "etcd -peer-addr 127.0.0.1:7001 -addr 127.0.0.1:4001 -data-dir machines/machine1 -name machine2 &"
ansible保持命令返回,不继续执行下一个任务


也许一个解决方案是在后台运行etcd。我不知道怎么做


使用

  • 表1.6.6

  • etcd 0.4.6

检查上的文档。您可以将
async
设置为某个非常长的值,例如10年(315569260秒),然后将
poll
设置为0


不过这有点像黑客。更好的方法是使用systemd或init脚本,将进程作为守护进程正常运行。

我尝试使用异步方式;但随后etcd进程被终止,而不是在后台运行。事实上,正如本所说,这是一次黑客攻击。etcd人员建议使用
守护进程
upstart
SupervisorORD
也是一个选项。我正在与supervisor进行交互,但相同的命令从控制台运行,而不是从supervisor运行。