OpenStack:镜像修改
1. 准备工作
1.1 安装必要工具
1 | yum install -y libguestfs-tools |
1.2 设置后端模式
1 | export LIBGUESTFS_BACKEND=direct |
2. 挂载镜像并修改
2.1 启动guestfish交互环境
1 | guestfish --rw -a centos8.1_x86_basic.raw |
2.2 查看文件系统
1 | run |
输出示例:
1 | /dev/sda1: ext4 |
2.3 挂载文件系统
1 | mount /dev/cl/root / |
3. 配置网络自启动
3.1 修改rc.local文件
1 | vi /etc/rc.local |
添加内容:
1 | #!/bin/bash |
3.2 创建启动脚本
1 | touch /etc/profile.d/dhclientandconnect.sh |
脚本内容:
1 | #!/bin/bash |
3.3 设置脚本权限
1 | chmod 755 /etc/profile.d/dhclientandconnect.sh |
4. 其他常见配置
4.1 修改网络配置
1 | vi /etc/sysconfig/network-scripts/ifcfg-ens3 |
关键参数:
1 | ONBOOT=yes |
4.2 配置控制台输出
1 | vi /etc/default/grub |
修改GRUB配置:
1 | GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8" |
4.3 更新GRUB配置
1 | chroot / grub2-mkconfig -o /boot/grub2/grub.cfg |
5. 完成修改
5.1 退出并保存
1 | exit |
6. 验证修改
6.1 创建测试虚拟机
1 | openstack server create --image centos8.1_x86_basic --flavor m1.small test-vm |
6.2 检查网络配置
1 | openstack console log show test-vm | grep -i "network\|dhclient" |
7. 自动化脚本示例
7.1 批量修改脚本
1 | #!/bin/bash |
8. 注意事项
- 镜像格式:确保镜像格式为raw或qcow2
- 文件系统:不同镜像可能有不同的分区布局
- 网络接口名:根据实际情况修改ens3为正确的接口名
- 权限问题:使用root权限执行操作
- 备份镜像:修改前建议备份原始镜像