Bare Metal 踩坑合集+解决方案

交换机相关

受不了了,和这个H3C 10G光交换机爆了

BMC/IPMI 相关

Dell C8000 BMC SSL V3 报错

没救了,埋了吧 SSL V3已经从主流浏览器的代码里面删除了(或许可以试试看 IE9,Firefox 39之前和Chrome 40之前应该也支持

JViewer打不开

因为这个jar签名用的是MD5,所以用一个比较老的java就可以了(比如ie11 + java se 7 update7

MAAS 相关

构建自定义镜像 (VMWare ESXi)

评价是Canonical你不会写文档就别写,写的什么玩意,恶心死了,还不如不写

Cannonical给了个packer的模板,直接找最新的release下载备用

然后是创建一个Packer的环境,packer是一个用来构建系统镜像的工具,有docker和qemu两种,ESXi必须要用qemu,所以创建容器的时候需要改好参数,以及一定要使用Debian系发行版,不然总有几个包你找不到(某人用Fedora试了半天,最后还是用Debian重做了

sudo podman run --rm -it --name=kvm-sandbox --privileged -v /mnt/sandbox/root:/root --network=host debian

进入容器后开始安装必备的包,有亿点多,大概需要2-3GB的磁盘空间

apt install -y wget gpg fuse nbdfuse genisoimage unzip nano qemu-system lsb-release nbdkit-* fusefat python3-pip libvirt-daemon-system fuse2fs sudo python3-venv

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hashicorp.list
apt update && apt install packer 

然后解压刚刚下载好的模板,找到vmware-esxi文件夹并进入,这里需要make一下scripts包,但是在make之前,先把requirements.txt给改了,找到PyYAML,把他的版本号给删了(因为这个版本找不到wheel,会触发构建,容易报错,直接用最新的wheel就行),然后make scripts.tar.xz,构建得到scripts包

因为packer模板需要qemu,但是这个qemu还是个插件,不会自动安装,所以需要手动packer init vmware-esxi.pkr.hcl

构建镜像,记得把iso文件替换成实际路径:packer build -var 'vmware_esxi_iso_path=VMware-VMvisor-Installer-7.0U3n-21930508.x86_64.iso' vmware-esxi.pkr.hcl

到这一步结束一般就可以得到压缩后的镜像文件了,可以上传到MAAS使用

maas login admin http://localhost:5240/MAAS
maas admin boot-resources create name="custom/vmware-esxi" title="VMWare ESXi 7.0" architecture='amd64/generic' filetype='ddgz' content@=vmware-esxi.dd.gz

自定义镜像(VMWare ESXi)引导失败

书接上文,我们已经构建得到一个ESXi的镜像,并且上传到MAAS进行部署了,然后就寄了,报错如下

Node installation failure - 'curtin' executing late commands
Node installation failure - 'curtin' curtin command install
Marking node failed - Installation failed (refer to the installation log for more information).
Marking node failed - Missing boot image custom/amd64/ga-22.04/vmware-esxi.

关闭IPv6

虽然说,理论上,是可以用ipv6的,但是实践过程中,ipv6总有一些奇奇怪怪的问题(可能是设备有点老了),所以建议直接ban掉ipv6,注意 ban的是MAAS的ipv6,不是服务器的ipv6

ssh连上maas region和rack controller,然后修改/etc/sysctl

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.ens160.disable_ipv6 = 1

sudo sysctl -p应用之后,用ip a检查ipv6是否全部释放完成

之后进入MAAS的控制页面,到Subnets下面,把所有ipv6的subnet全删了即可(可能需要先删除相关的machine,所以建议在投入使用之前就完成这一步)

之后的使用过程中可能会发现又有一个ipv6的subnet跑出来了,这是正常的,因为这其实是上游网关下发给服务器的ipv6,然后上报到MAAS的,和MAAS无关,可以不用管,只要不是用来PXE的就行