从配置驱动器写入静态配置的简单程序
glean的Python项目详细描述
glean是一个程序,用于根据 在configuration drive中提供的配置。
你为什么要收集?
不同的云提供商提供网络的方式不同 以及对来宾虚拟机的其他配置。许多使用dhcp但是 其他的,特别是机架空间,使用通过 配置驱动器。
格里恩做什么?
一般来说,glean会检查基于配置驱动器的信息, 如果找到,使用它来配置网络。如果配置驱动器不是 找到后,它会返回到配置任何可用接口 DHCP。
特别地,它将安装带有标签的特殊块设备 config-2并解析network\u info.json和vendor\u info.json 中的文件。如果找到适当的网络配置,它将 写出网络配置文件。
网络信息json文件的格式是文档化的here。 请注意,glean并没有实现列出的所有功能。
如果没有找到网络信息,则可以探测可用的接口 从/sys/class/net和任何看起来是up的都将被配置 用于DHCP。
它还将处理授权密钥和主机名信息 元数据.json。
格里恩是怎么做到的?
glean确定运行的网络配置环境 平台和适当配置接口。
系统环境
在检测到systemd的平台上,glean install将添加 udev在任何网络上触发的规则文件(99 glean.rules) 正在添加设备。这将运行glean@.服务 指定接口的模板。
这个系统单元首先确定是否已经有 /etc/sysconfig/network/接口的配置;如果是,则 接口被认为已配置并被跳过。
如果不是,则使用触发此事件的接口启动glean 指定为参数。探测配置驱动器以查看 接口的网络配置可用。如果是,它会 添加,否则将为DHCP配置接口。
注意
默认情况下,glean为network init提供配置 脚本服务network.service在redhat平台上(或 与其他平台相同)。你应该确保这项服务 已启用和其他工具(如NetworkManager)已禁用 在此模式下正确操作。关于Fedora 29的说明,这是 在一个单独的包中,网络脚本 已弃用。
或者,将networkmanager与ifcfg rh插件一起使用 要管理接口,请使用 –使用nm标志。在这种情况下,请确保已安装NetworkManager。 这将触发glean来写出 适合与NetworkManager一起使用,并使用稍有不同的 不会触发像ifup这样的传统工具的服务文件。
网络
networkd支持作为单独的分发类型实现。 目前它只在gentoo上受支持,并且将自动 由glean install选择。它同样会安装一个systemd 服务文件或openrc配置文件(gentoo支持这两个文件)和 udev规则调用glean。
其他平台
upstart和sysv环境也受支持。这些会有 安装了init脚本以在启动时运行glean。
我该如何使用Glean?
glean ships glean install,一个将glean安装到您的 系统启动环境。它应该处理系统引用>,新贵 系统d覆盖所有主要分布。这个应该运行一次, 在安装或映像生成期间。
启动环境将被修改为 配置找到的任何接口。
与cloud init的区别?
glean不同于cloud init,主要是它的依赖性非常小 足迹。在动态ci环境(如openstack)中,许多 cloud init的python依赖项可能导致与包的冲突 或测试所需的版本。
glean还更好地支持配置驱动器中的静态IP分配, 在机架空间环境中尤为重要。