我正在尝试使用ansible shell模块和ipmitools启动服务器,一旦服务器启动,就对其进行配置更改。
安装了ansible的服务器也安装了ipmitools。
在安装了ansible的服务器上,我需要执行ipmitools来启动目标服务器,然后在目标服务器上执行playbooks。
是否有一种方法可以在运行ansible的服务器上执行本地ipmi命令以通过ansible启动目标服务器,然后通过ssh在目标服务器上执行所有playbooks。
您可以通过提供delegate_to
参数在本地运行任何命令。
- shell: ipmitools ...
delegate_to: localhost
localhost
时出现问题,您需要在清单中添加一个条目,如下所示:localhost ansible_connection=local
或者在host_vars/localhost
目录下:
ansible_connection: local
- name: Wait for Server to Restart
local_action:
wait_for
host={{ inventory_hostname }}
port=22
delay=15
timeout=300
sudo: false
如果这个方法不起作用(因为这是一篇较旧的文章,我认为以前我曾经遇到过这个问题),您可以查看此SO问题的答案。