我正在尝试使用带有ipmitools的 ansible shell模块启动服务器,然后在该服务器上进行配置更改.
安装了ansible的服务器也有ipmitools.
在带有ansible的服务器上,我需要执行ipmitools来启动目标服务器,然后在其上执行playbooks.
有没有办法在运行ansible的服务器上执行本地ipmi命令,通过ansible启动目标服务器,然后在目标服务器上通过ssh执行所有playbooks.
您可以通过提供在本地运行任何命令 delegate_to参数.
- shell: ipmitools ...
delegate_to: localhost
Run Code Online (Sandbox Code Playgroud)
如果ansible抱怨连接到localhostvia ssh,你需要在你的库存中添加一个条目,如下所示:
localhost ansible_connection=local
Run Code Online (Sandbox Code Playgroud)
或者在host_vars/localhost:
ansible_connection: local
Run Code Online (Sandbox Code Playgroud)
请参阅行为参数.
接下来,您将需要等到服务器启动并通过ssh访问.以下是来自Ansible的文章,涵盖了这个主题,这是他们列出的任务:
- name: Wait for Server to Restart
local_action:
wait_for
host={{ inventory_hostname }}
port=22
delay=15
timeout=300
sudo: false
Run Code Online (Sandbox Code Playgroud)
如果这不起作用(因为它是一篇较旧的文章,我认为我以前遇到过这个问题的问题),你可以查看这个SO问题的答案.
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |