通过Fule9.0推送的OpenStack环境管理BareMetal设备
来源:互联网 发布:oracle linux安装教程 编辑:程序博客网 时间:2024/04/28 13:49
Fuel可以快速构建OpenStack环境,只要在部署环境时勾选Ironic模块,就可以构建出一套带裸金属管理功能的环境。部署成功后,我们就可以像操作虚拟机一样来操作BareMetal设备了。
我在测试这个模块时,一路磕磕绊绊,踩了很多坑,最终成功启动了一个Ubuntu操作系统的BareMetal实例,但是仍然有很多问题要解决。下面我将我本人走过的路和遇到的坑与大家分享一下,也期望能得到高手的指教。
本文默认你已经安装部署了Fule9.0,接下来我们通过以下步骤创建出一个BareMetal instance。
- 准备环境
- 推送OpenStack环境
- enroll一个Ironic节点
- *创建BareMetal Flaor
- 将制作好的user image上传到glance
- boot一个BareMetal instance
准备环境
- 准备OpenStack Controller节点
- 准备Ironic服务节点,用于部署Ironic服务
- 规划一个BareMetal网络,并预留足够的IP地址供服务节点和Ironic节点使用
- 准备一台支持IPMI的物理服务器作为Ironic节点
- 记下IPMI网卡的IP地址,并验证Ironic节点与IPMI网卡网络可达
- 记下用于连接BareMetal网络的网卡MAC地址
- (可选)编辑/etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml,将官方Ubuntu软件源替换为国内的ubuntu软件源。我最初部署的时候经常在Ubuntu操作系统部署到80%的时候失败,通过查看日志发现下载软件包超时,把Ubuntu软件源修改为阿里云源后部署成功。
推送带Ironic服务的OpenStack环境
- 登录fuel,新建一个OpenStack环境,并勾选Ironic
- 输入规划的裸金属网络IP地址,这段IP地址会分配给Controller节点和Ironic服务节点
输入分配给Ironic节点的BareMetal网络地址
输入其他网络参数
- 添加controller服务节点、Ironic服务节点角色,并配置网络接口
- 验证网络连通性
- 在环境首页点击部署按钮,开始部署过程
- (可选),开始部署OpenStack服务之后,把Ironic服务节点上的软件源修改为国内的软件源。因为Ironic需要安装syslinux和tftp-hpa软件包,而离线Fule的mirror中没有这两个软件包。
Enroll一个Ironic节点
- 创建一个driver为fuel_ipmitool的Ironic节点
ironic node-create -d fuel_ipmitoolexport NODE_UUID=上一条命令返回的UUID
- 运行glance image-list命令,分别查看deploy_kernel、deploy_ramdisk和deploy_squashfs镜像的ID
- 更新Ironic节点的image信息和ipmi信息
ironic node-update $NODE_UUID add \driver_info/deploy_kernel=$DEPLOY_KERNEL_IMAGE_ID \driver_info/deploy_ramdisk=$DEPLOY_RAMDISK_IMAGE_ID \driver_info/deploy_squashfs=$DEPLOY_SQUASHFS_IMAGE_ID \driver_info/ipmi_address=$IPMI_IP_ADDRESS \driver_info/ipmi_username=$IPMI_USER_NAME \driver_info/ipmi_password=$IPMI_PASSWORD
- 更新节点配置信息
ironic node-update $NODE_UUID add \properties/cpus=$CPU_NUMBER \properties/memory_mb=$MEM_IN_MB \properties/local_gb=$DISK_IN_GB \properties/cpu_arch=$CPU_ARCH(如x86_64)
- 为Ironic节点绑定MAC地址
ironic port-create -n $NODE_UUID -a $MAC_ADDRESS
- 最后验证一下Ironic节点状态是否正确
ironic node-validate $NODE_UUID
如果没有提示错误就代表前面填写的信息都是正确的,可以提供服务了。
接下来,我们创建为BareMetal Instance准备的Flavor和user image。
创建BareMetal Flavor
nova flavor-create baremetal auto $MEM_MB $DISK_GB $CPU_NUMnova flavor-key baremetal set cpu_arch=$CPU_ARCH(如x86_64)
参数与注册Ironic节点时填写的一致
制作一个Ubuntu操作系统的user image
sudo pip install diskimage-builderdisk-image-create ubuntu baremetal dhcp-all-interfaces grub2 -o ubuntu -t raw
会生成三个文件,我们需要的是raw文件。接下来,我们把这个raw文件上传到glance。
将制作好的user image上传到glance
glance image-create --name myimage --disk-format raw --container-format bare \--file ubuntu.raw --visibility publicglance image-update $USER_IMAGE_ID --property cpu_arch=x86_64 \--property hypervisor_type="baremetal" \--property fuel_disk_info='[{"name": "sda", "extra": [], "free_space": 110000, "type": "disk","id": "vda", "size": 110000, "volumes": [{"mount": "/", "type":"partition", "file_system": "ext4", "size": 30000}]}]'
注:fuel_disk_info为必填,否则会报错
boot一个BareMetal instance
可以通过OpenStack Dashboard或者nova 命令行操作,像部署一台虚拟机一样部署一个BareMetal节点
遗留的问题
- 制作的user image可以启动成功,但是只有Ubuntu能够成功进入系统
- 启动CentOS7后,需要修改grub可以成功进入系统(可能我这边是个例)
- 其他的系统暂时没有测试通过
0 0
- 通过Fule9.0推送的OpenStack环境管理BareMetal设备
- Openstack G版 Baremetal
- Ironic , Openstack Baremetal Hypervisor
- Ironic , Openstack Baremetal Hypervisor
- OpenStack 中的baremetal组件分析
- PHP的多版本环境管理
- 优雅的使用python之环境管理
- OpenStack的两种存储设备
- iOS 推送 获取手机设备的 deviceToken
- iOS8 获取推送的设备token(deviceToken)
- iOS 推送 获取手机设备的 deviceToken
- 通过Python调用OpenStack 的RESTful API
- 信鸽推送和极光推送的介绍和接入使用,设备推送 和单个账号推送的设置
- PYTHON编程环境管理的必备利器——ANACONDA
- 关于使用Anaconda的总结(包含多环境管理)
- Python Data Science的多版本多环境管理工具Anaconda
- OpenStack Cinder组件支持的块存储设备表
- 网络环境管理
- Java基础系列<一>
- Webpack错误解决(一):ERROR in Entry module not found
- 微信小程序获取textarea的值详解
- 集群问题
- oracel循环插入数据
- 通过Fule9.0推送的OpenStack环境管理BareMetal设备
- 常用的三种异步写法
- AOJ.综合训练.2016-12-8
- java FineReport 数据集的坑
- [编程题]进制转换
- 前端-酷炫上传控件
- Django 安装使用基础
- Java学习路程之File
- 绘制平滑线条的winform窗体