Foreman

目录

1. foreman简介

2. puppet run 执行流程

3. remote execution插件执行流程

4. 复杂网络环境下多smart-proxy

1. foreman简介

从官方流程图说起,foreman为我们提供了统一的管理界面,管理puppet, salt等。foreman 的流程图中,关键的一个部分就是smart proxy, 提供了foreman 与 puppet等相互通信的中间件。

Foreman_第1张图片

2. puppet run 执行流程

网页上点击puppet run后,foreman 通过API调用smart proxy, 然后通过smart proxy 提供的smart proxy ssh插件去执行puppet modules,最后通过puppet server 将agent机器的facts上传到foreman,并保存在foreman的数据库中。

Foreman_第2张图片

smart proxy ssh插件本质上是执行了puppet agent --onetime --no-usecacheonfailure命令,可参考smart proxy关于ssh部分的配置。执行该命令后,如果puppet server 中配置了ENC,然后puppet server就可以将该命令执行过程产生的report发送给foreman。

下图为执行puppet run所涉及到的部分数据库表:

Foreman_第3张图片

3. remote execution插件执行流程

Remote Execution执行过程如下图,其中dynflow确保了命令的异步执行。

Foreman_第4张图片

下图是Remote execution执行涉及的部分数据库表:


Foreman_第5张图片

4. 复杂网络环境下多smart-proxy

所谓的复杂网络,只是模拟了foreman 与 puppet agent 网络上不联通的情况,在这种网络环境下,需要存在堡垒机确保能够同时连接foreman和agent机器。当存在大量几千甚至上万台堡垒机需要管理几万个agent设备的情况下,可生成如下网络结构图:

Foreman_第6张图片

你可能感兴趣的:(Foreman)