用 config drive 配置网络 - 每天5分钟玩转 OpenStack(173)

上一节最后问了大家一个问题:如果 subnet 没有开 DHCP,会是怎样一个情况?

在其他条件不变的情况下,cloud-init 依然会完成那 3 个步骤,也就是说网卡还是会被配置成 dhcp 模式,只是最后网卡没办法获得 IP 而已。

不开 DHCP 也是一个常见的场景,为了让 instance 的网卡在这种情况下也能够被正确配置,我们需要借助 config drive,下面开始实践。

在计算节点 /etc/nova/nova.conf 中需要添加一个配置,然后重启 nova-compute 服务。

[DEFAULT]

flat_injected = True

flat_injected 的作用是让 config drive 能够在 instance 启动时将网络配置信息动态注入到操作系统中。

当前网络的 DHCP 已经关闭。

instance 部署时指定使用 config drive。

Neutron 为 instance 分配的 IP 为 18.18.18.5

instance 启动后登录系统,ip a 验证 IP 已经成功配置,说明 config drive 起作用了。

重要的是弄懂 18.18.18.5 这个 IP 是如何配置上去的。打开 /var/log/cloud-init.log,分析如下:

① 扫描出 instance 中的所有网卡,这一步与不使用 config drive 的情况完全一样。

② 获取该网卡的配置信息。 日志显示配置信息是从 ds 获取。ds 是 datasource 的缩写,在这里指的就是 config drive。在不使用 config drive 的情况下采用的是 fallback 配置。网卡配置信息记录在 config drive openstack/latest/network_data.json 文件里,内容如下:

③ 将配置信息写入 /etc/network/interfaces.d/50-cloud-init.cfg,内容为:

可以看到 IP 以 static 方式配置。

总结一下:

1. 在没有使用 config drive 的情况下,cloud-init 只会配置第一块网卡,且设置为 dhcp 模式,所以:

① 如果 instance 只有一块网卡,且启用了 DHCP,网卡能够被正常拉起。

② 如果 instance 有多块网卡,第一块会尝试以 dhcp 方式拉起,其他网卡不作处理。

2. 使用 config drive 的情况下,无论是否启用 DHCP,所有网卡都能被正确配置且成功拉起(如果 dhcp 网卡 >= 2,CentOS 还是有问题,可能跟目前所用的 cloud-init 版本较低有关)。

3. 如果可能,尽量使用 config drive。

讨论完网络配置这个最重要的主题,下一节我们来看看 cloud-init 的其他典型应用:设置 hostanme,设置用户初始密码,安装软件等。

时间: 2024-07-30 13:16:35

用 config drive 配置网络 - 每天5分钟玩转 OpenStack(173)的相关文章

在 ML2 中配置 VXLAN - 每天5分钟玩转 OpenStack(110)

上一节我们介绍了 VXLAN 的基本概念,今天介绍如何在 ML2 中启用 VXLAN. 在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vxlan network 相关参数. tenant_network_types = vxlan 指定普通用户创建的网络类型为 vxlan. 这里还使用了一个名为 "l2population" mechanism driver,我们放到后面单独介绍. 然后指定 vxlan 的范围. 上面的配置定义了 vxlan v

访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)

前面我们学习了位于不同 Neutron subnet 的 instance 可以通过 router 通信,今天开始讨论 instance 如何访问外部网络. 这里的外部网络是指的租户网络以外的网络.租户网络是由 Neutron 创建和维护的网络. 外部网络不由 Neutron 创建.如果是私有云,外部网络通常指的是公司 intranet:如果是公有云,外部网络通常指的是 internet. 具体到我们的实验网络环境: 计算节点和控制节点 eth1 提供的是租户网络,IP 段租户可以自由设置. 控

在 ML2 中配置 Vlan Network- 每天5分钟玩转 OpenStack(93)

上一节我们学习了 Neutron Vlan Network 的原理,今天讨论如何在 ML2 配置中 enable 它. 首先在 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 vlan network 相关参数. tenant_network_types = vlan 指定普通用户创建的网络类型为 vlan. 然后指定 vlan 的范围: 上面配置定义了 label 为 "default" 的 vlan network,vlan id 的范围是 30

配置 LBaaS - 每天5分钟玩转 OpenStack(121)

上一节学习了 Neutron LBaaS 的原理,今天开始实践.首先在配置中启用 LBaaS 服务. Neutron 通过 lbaas plugin 和 lbaas agent 提供 LBaaS 服务. lbaas plugin 与 Neutron Server 一起运行在控制节点上. lbaas agent 运行在网络节点上. 对于我们的实验环境,控制节点和网络节点是一个,都是 devstack-controller. 配置 LBaaS agent Neutron 配置 LBaaS agent

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack.   为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所

实践 config drive - 每天5分钟玩转 OpenStack(170)

如果 instance 无法通过 metadata service 获取 metadata(无 DHCP 或者 nova-api-metadata 服务),instance 还可以通过 config drive 获得 metadata.   config drive 是一个特殊的文件系统,OpenStack 会将 metadata 写到 config drive,并在 instance 启动时挂载给 instance.如过 instance 安装了 cloud-init,config drive

instance 网卡是如何被拉起来的?- 每天5分钟玩转 OpenStack(172)

instance 的网卡是如何被配置并拉起的?这是理解和用好 cloud-init 非常关键的一步.我们先讨论一个最简单基础的场景:镜像中没有安装 cloud-init. 此时 instance 启动时网卡能不能被拉起来完全 靠运气!是的,就是运气. 因为这种情况下网卡的配置是死的,完全依赖于镜像中 /etc/network/interfaces 原有的配置.比如原镜像中的配置是: auto eth0iface eth0 inet dhcp instance 只有满足下面所有条件网卡才能被拉起来

cloud-init 工作原理 - 每天5分钟玩转 OpenStack(171)

cloud-init 是 linux 的一个工具,当系统启动时,cloud-init 可从 nova metadata 服务或者 config drive 中获取 metadata,完成包括但不限于下面的定制化工作: 设置 default locale 设置 hostname 添加 ssh keys到 .ssh/authorized_keys 设置用户密码 配置网络 安装软件包 为了实现 instance 定制工作,cloud-init 会按 4 个阶段执行任务: local init conf

制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

这是 OpenStack 实施经验分享系列的第 1 篇.   OpenStack 的 instance 是通过 Glance 镜像部署的,所以准备镜像是必须要做的工作.本节介绍 Linux 镜像的制作方法,后面还会讨论 Windows 镜像. 下载clould 镜像 最简单的方法是使用标准镜像.主流的Linux发行版都提供可以在 OpenStack 中直接使用的cloud镜像,下载地址: CentOS6:http://cloud.centos.org/centos/6/images/ CentO