Automation 客户触发Ansible剧本的一种方式?

Automation 客户触发Ansible剧本的一种方式?,automation,ansible,Automation,Ansible,我的任务是在裸机上自动安装CentOS,包括一套专有软件。我已经建立了一个PXE引导服务器,它可以自动从Kickstart文件进行初始安装,其余的将传递给Ansible Playbook 我已经解决了上面所有的问题,除了我必须在服务器上启动剧本。我还没有找到一个好的方式让Playbook在客户机的请求下启动(或者服务器端PXE进程可以以某种方式将其移交给客户机?),希望我能从安装过程中退出 我想我会对我的评论做一点扩展 根据你想要完成的事情,你可以考虑一些选项。 使用易变拉力 ansible p

我的任务是在裸机上自动安装CentOS,包括一套专有软件。我已经建立了一个PXE引导服务器,它可以自动从Kickstart文件进行初始安装,其余的将传递给Ansible Playbook


我已经解决了上面所有的问题,除了我必须在服务器上启动剧本。我还没有找到一个好的方式让Playbook在客户机的请求下启动(或者服务器端PXE进程可以以某种方式将其移交给客户机?),希望我能从安装过程中退出

我想我会对我的评论做一点扩展

根据你想要完成的事情,你可以考虑一些选项。

使用易变拉力
ansible pull
cli从远程服务器获取一个
git
存储库,然后在该存储库的顶层本地执行
ansible playbook playbook.yml

这意味着您可以将类似的内容放入Kickstart
%post
脚本:

ansible-pull -U https://server.example.com/playbooks/client-configuration
curl https://my.server.com/trigger-playbook
如果您的playbook只需要在客户端上运行任务,那么这是一个很好的解决方案

触发在服务器上运行的playbook 如果您的playbook确实需要在服务器上执行,您可以设置一个简单的web服务器,允许客户端触发playbook运行。在这种情况下,您可以将
curl
命令或类似命令嵌入Kickstart
%post
脚本:

ansible-pull -U https://server.example.com/playbooks/client-configuration
curl https://my.server.com/trigger-playbook

trigger playbook
服务将负责触发针对相应客户端的playbook运行。这需要您自己实现该服务(或使用类似的方法来为您处理该任务)。

您是否在寻找一种方法,以预定的方式自动执行该服务,或手动执行该服务,但无需登录服务器(例如,通过http)?@med.b我正在寻找它在PXE网络安装的Kickstart文件部分之后自动执行,PXE安装由用户启动。您想在服务器上执行playbook吗?还是在客户身上?因为如果答案是“在客户机上”,那么您可能需要调查。@larsks我想在服务器上执行,但针对客户机执行。这很有趣,谢谢。我会调查的。这看起来很有希望。我先试试选项2,让你知道它是怎么回事。谢谢我把这个标记为已接受,因为它完全有效。然而,为了子孙后代,我将补充一点,为了自己解决这个问题,我只提供了一个网络共享,并让客户端删除请求文件以供服务器执行操作。