云计算-OpenStack+LDAP集成-第一节-使用本地安装源安装OpenStack
整套实训的起点不是 OpenStack 本身,而是软件仓库。比赛机房和很多实训室是没有外网的,而 OpenStack 从 Nova 到 Neutron 有上百个 RPM 包,靠手工一个个装不现实。这一节要做的,就是把两张 ISO 光盘变成 yum 能用的“软件书店”——后面所有 yum install 命令,都得先有这家书店。

一、原理:yum 仓库到底是什么
可以把 yum 想象成一个去书店买书的顾客:它自己不生产软件,只是按“书单”(.repo 配置文件)去指定的“书店”(仓库地址)取货。仓库地址可以是网上的(https://),也可以是本机光盘里的(file://),还可以是局域网里另一台机器提供的(ftp:// 或 http://)。
- file:///opt/centos —— 只有本机自己能用,最简单;
- ftp:///opt —— 本机当服务器,局域网里其他节点也能来取货,搭建控制节点+计算节点时必须用这种方式。
本实训需要两张光盘:CentOS-7-x86_64-DVD.iso(操作系统基础包)和 iaas.iso(OpenStack 全套组件包)。两张都要拷到 /opt 下。
二、操作步骤
第 1 步:确认光盘设备号并挂载。注意 sr0 和 sr1 是两台不同的“光驱”,放哪张盘就用哪个设备号。
lsblk # 先看清楚设备号,别猜 mount -o loop /dev/sr0 /media/
第 2 步:把光盘内容拷到本地目录,再卸载、换下一张盘。这正是总手册里标注“过程后续补上”的那一段,在这里补全:
mkdir /opt/centos cp -rvf /media/* /opt/centos/ umount /media # 换上 iaas.iso(虚拟机里切换 ISO 文件后设备号可能仍是 sr0) mount -o loop /dev/sr0 /media/ mkdir /opt/iaas cp -rvf /media/* /opt/iaas/ umount /media
第 3 步:清空旧源,写本地源配置文件。
rm -rf /etc/yum.repos.d/* vi /etc/yum.repos.d/centos.repo
centos.repo 内容如下(两个仓库名可以自己取,但 baseurl 路径必须和刚才拷贝的目录一致):
[centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas/iaas-repo gpgcheck=0 enabled=1
第 4 步:刷新缓存并确认仓库生效。
yum clean all yum repolist # 能看到 centos 和 iaas 两个仓库即成功
第 5 步(可选但推荐):搭 FTP,让其他节点也能用这份仓库。
yum install vsftpd -y # /etc/vsftpd/vsftpd.conf 末尾追加一行 anon_root=/opt systemctl start vsftpd systemctl enable vsftpd
配好之后,其他节点只要把 baseurl 写成 ftp://192.168.100.10/centos 和 ftp://192.168.100.10/iaas/iaas-repo,就能共享同一份仓库,不用每台机器都挂光盘。
三、两个仓库的分工
| 仓库“, ”来源“, ”里面有什么“, ”什么时候用 | |||
|---|---|---|---|
| centos | CentOS-7-x86_64-DVD.iso | 系统基础包、常用工具“, ”装系统自带软件 | |
| iaas | iaas.iso | OpenStack 全部组件(nova/neutron/keystone…) | 装云平台 |
| aliyun | 第二节配置的在线源 | EPEL、phpLDAPadmin、Prometheus 依赖等“, ”需要外网的软件 |
四、常见问题与排错
| 现象“, ”原因“, ”解决办法 | |
|---|---|
| mount 报错找不到设备“, ”设备号不是 sr0(可能是 sr1) | 先 lsblk 确认,再用对应设备号挂载 |
| yum repolist 是空的 | repo 文件名不是 .repo 后缀,或 baseurl 路径写错“, ”检查 /opt 下目录名是否与 baseurl 完全一致 |
| cp 之后 /opt 是空的“, ”光盘没挂上就执行了 cp | 重新 mount 后再 cp -rvf |
| gpg 校验报错 | ISO 是自制的没有签名“, ”保持 gpgcheck=0 即可 |
五、本节小结
一句话记住:本地源 = 把光盘搬到硬盘上再告诉 yum 去哪找。两张 ISO → /opt/centos 和 /opt/iaas → centos.repo 指过去 → yum clean all 生效。这一步做完,整套 OpenStack 安装才“有米下锅”。下一节我们把源换成阿里云在线源,补齐本地源里没有的软件。

