跳转到主要内容

从配置驱动写入静态配置的简单程序

项目描述

Glean是一个程序,旨在根据配置驱动中提供的配置来配置系统。

为什么需要glean?

不同的云服务提供商以不同的方式向虚拟机提供网络和其他配置。许多使用DHCP,但其他一些,特别是Rackspace,使用通过配置驱动提供的配置。

glean做什么?

总的来说,glean检查基于配置驱动的信息,如果找到,则使用该信息来配置网络。如果没有找到配置驱动,它将回退到使用DHCP配置任何可用的接口。

具体来说,它将挂载标签为< cite>config-2的特殊块设备,并解析其中的< cite>network_info.json和< cite>vendor_info.json文件。如果找到适当的网络配置,它将写出网络配置文件。

《network_info.json》文件的格式文档见此处。请注意,glean并没有实现列表中的所有功能。

如果没有找到网络信息,可以从/sys/class/net探测可用接口,任何看起来已启动的接口都将配置为使用DHCP。

它还会处理从meta_data.json提供的authorized_keys和主机名信息。

glean是如何做到这一点的呢?

Glean确定正在运行的平台的网络配置环境,并相应地配置接口。

systemd环境

在检测到systemd的平台,glean-install将添加一个触发任何网络设备添加的udev规则文件(99-glean.rules)。这将运行指定接口的glean@.service systemd模板。

该systemd单元首先确定是否已经存在接口的/etc/sysconfig/network/配置;如果是,则认为该接口已配置并跳过。

如果没有,则会以触发此事件的接口作为参数启动glean。将探测配置驱动以查看是否可用接口的网络配置。如果可用,则将其添加,否则将配置接口以使用DHCP。

networkd

networkd支持作为单独的发行版类型实现。目前它只在Gentoo上受支持,并且将由glean-install自动选择。它将以类似的方式安装systemd服务文件或openrc配置文件(两者都受Gentoo支持),并调用glean的udev规则。

其他平台

upstartsysv环境也受支持。这些将在启动时安装初始化脚本以运行glean。

如何使用glean?

Glean包含一个名为glean-install的脚本,该脚本将glean安装到您的系统启动环境中。它应该处理sysvupstartsystemd,以覆盖所有主要发行版。这应在安装或镜像构建期间运行一次。

启动环境将按上述方式修改,以配置任何找到的接口。

与cloud-init有何不同?

Glean与cloud-init的主要区别在于其非常小的依赖性足迹。在OpenStack这样的动态CI环境中,许多python依赖项可以导致与测试所需的包或版本发生冲突。

Glean还更好地支持在配置驱动程序中分配静态IP,这在Rackspace环境中尤为重要。

更多详情

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

glean-1.24.0.tar.gz (76.6 kB 查看哈希值)

上传时间

构建分发

glean-1.24.0-py3-none-any.whl (112.0 kB 查看哈希值)

上传时间 Python 3

由以下支持