将service / init.d名称作为变量传递给Ansible处理程序

时间:2017-02-27 22:44:24

标签: ansible

Ansible的新手,正在考虑以下创建服务以及如何最好地管理它。我已经在下面描述了它是如何工作的,但希望它足以描述这个问题。

任何指针都表示赞赏。感谢。

我使用模板文件来部署一堆几乎相同的应用程序服务器。在部署应用程序服务器期间,使用变量“

”放置相应的init脚本
/etc/init.d/{{ application_instance }}`

接下来我想启用并确保其启动:

 name: be sure app_xyz is running and enabled
  service: name={{ application_instance }} state=started enabled=yes

此外,我希望在配置文件更新时调用应用程序重新启动:

- name: be sure app_xyz is configured
  template: src=xyz.conf dest=/opt/application/{{ application_server }}.conf
  notify:
    - restart {{ application_server }}

处理程序看起来像这样:

- name: restart {{ application_server }}
  service: name={{ application_server }} state=restarted

1 个答案:

答案 0 :(得分:2)

您不需要动态处理程序名称。静态处理程序名称怎么样:

function bogo(arr) {

  function shuffle(arr) {
    var shuffled = [];
    var rand;
    while (arr.length !== 0) {
      rand = Math.floor(Math.random() * arr.length)
      shuffled.push(arr.splice(rand, 1)[0]);
    }
    return shuffled;
  }

  function sorted(shuffle) {
    for (var i = 0; i < shuffle.length - 1; i++) {
      if (shuffle[i] <= shuffle[i + 1]) {
        continue;
      } else {
        return false;
      }
    }
    return true
  }
  return sorted(shuffle(arr));
}

console.log(bogo([1, 2]));