4

我正在尝试使用带有ipmitools的 ansible shell 模块启动服务器,然后在该服务器启动后对其进行配置更改。

安装了 ansible 的服务器也有 ipmitools。

在带有 ansible 的服务器上,我需要执行 ipmitools 来启动目标服务器,然后在其上执行 playbook。

有没有办法在运行 ansible 的服务器上执行本地 ipmi 命令以通过 ansible 启动目标服务器,然后在目标服务器上通过 ssh 执行所有 playbook。

4

1 回答 1

5

delegate_to您可以通过提供参数在本地运行任何命令。

- shell: ipmitools ...
  delegate_to: localhost

如果 ansible 抱怨localhost通过 ssh 连接,您需要在您的清单中添加一个条目,如下所示:

localhost              ansible_connection=local

或在host_vars/localhost

ansible_connection: local

行为参数

接下来,您将需要等到服务器启动并通过 ssh 访问。是 Ansible 的一篇文章,涵盖了这个主题,这是他们列出的任务:

- name: Wait for Server to Restart
  local_action:
    wait_for
    host={{ inventory_hostname }}
    port=22
    delay=15
    timeout=300
  sudo: false

如果这不起作用(因为它是一篇较旧的文章,而且我认为我以前对此解决方案有疑问),您可以查看这个 SO question的答案。

于 2015-08-02T19:06:30.387 回答