1、ironic 2ironic 调研(二)目标ironic采用pxe_impitool driver管理真实裸机步骤前提:已经按 照ironic 调研(一) 使用devstack进行过一次部署1. 清理之前安装./unstack.sh2. 更改local.conf配置, 增加以下选项:说明:是基于ironic 调研(一) 中local.conf配置修改OFFLINE=TrueIRONIC_DEPLOY_DRIVER=pxe_ipmitoolQ_USE_PROVIDER_NETWORKING=TrueQ_L3_ENABLED=FalsePHYSICAL_NETWORK=ph1PROVIDER_NE
2、TWORK_TYPE=flatOVS_PHYSICAL_BRIDGE=br-ph# enp7s0f1是第二块网卡,和裸机网卡处于同一交换机上(处于同一广播域)PUBLIC_INTERFACE=enp7s0f1IRONIC_HW_NODE_RAM=5120IRONIC_HW_NODE_CPU=4注释掉选项:注释之前: enable_service q-l3注释之后: #enable_service q-l33. 设置网络ip addr add 10.1.0.1/24 dev enp7s0f1说明:devstack脚本会建立 bridge br-ph, 并把enp7s0f1挂到br-ph上,ip也
3、会移到br-ph上。可以发现10.1.0.1是fixed ip range 并且是网关,由于在使用ironic的情况下,裸机相当与虚拟机,所分到的ip也是从fixed ip中拿到的。4. 添加裸机信息mkdir /opt/stack/data/ironic# 按照 ipmi_address mac_address ipmi_user ipmi_passwd 格式echo 172.16.128.23 6c:92:bf:0d:20:a8 admin admin /opt/stack/data/ironic/hardware_info注意:1. 如果裸机有多块网卡,mac地址对应的网卡一定要和enp
4、7s0f1处于同一广播域下,否者之后裸机启动时,pxe找不到dhcp服务2. 可以通过 ps -ef | grep dns 命令查看dhcp是否启动,dnsmasq会在第一次有执行 nova boot 之后启动5. 重新创建deploy kernel 和 deploy ramdiskramdisk-image-create -offline ubuntu deploy-ironic -o /home/stack/devstack/files/ir-deploy-pxe_impitool6. 执行stack.sh脚本./stack.sh runlog 2&1 &部署完成之后 ovs-vsctl
5、show 如下:7. 创建裸机系统镜像disk-image-create ubuntu baremetal dhcp-all-interfaces local-config -o ubuntu -offline执行完之后会有 ubuntu.vmlinuz, ubuntu.initrd, ubuntu.qcow2三个文件上传到glance中:glance image-create -name my-kernel -is-public True -disk-format aki ubuntu.vmlinuzglance image-create -name my-image.initrd -is-
6、public True -disk-format ari ubuntu.initrdglance image-create -name my-image -is-public True -disk-format qcow2 -container-format bare -property kernel_id=$MY_VMLINUZ_UUID -property ramdisk_id=$MY_INITRD_UUID ubuntu.qcow28. 启动裸机nova boot -image -flavor test启动流程1. nova boot命令启动2. RESTAPI请求ironic-api3
7、. ironic-api rpc请求ironic-conductor,conductor从glance拉取deploy-kernel, deploy-ramdisk, 已及镜像的ramdisk,kernel,qcow2放到tftp server下通知neutron设置dhcp服务,根据之前设置的mac地址4. conductor执行ipmi命令启动裸机5. 裸机启动后,进行pxe启动,找dhcp服务,dnsmsq根据3步中设置的mac地址匹配,分配ip,和给出tftp地址6. 裸机根据tftp地址下载deploy-kernel,deploy-ramdisk启动,并下载景象文件7. 裸机重启,下
8、载景象的ramdisk和kerneldisk启动8. 完成启动,进入登陆界面过程截图1.加载deploy kernel 和 deploy ramdisk景象通过 tcpdum -vvv -n -i br-ph port 69 查看请求通过 iftop -i br-ph 查看流量2.加载镜像 kernel和ramdisk3.login其他1. web consoleIPMI SOL(Serial-over-LAN) + shellinabox 使用方式:1. 设置端口#端口自己设定,用来做web console的端口ironic node-update 47dcc977-a93f-4134-a3
9、6c-44a6484765a2 add driver_info/ipmi_terminal_port=6232. 验证console可以用ironic node-validate 47dcc977-a93f-4134-a36c-44a6484765a23.安装 shellinabox# 如果找不到包,先安装 yum install epel-releaseyum install shellinabox4. enable console# 可以通过 lsof -i :623 查看是否启动成功,623是第一步设置的portIronic node-set-console-mode 47dcc977-
10、a93f-4134-a36c-44a6484765a2 true5. get consoleironic node-get-console 47dcc977-a93f-4134-a36c-44a6484765a26. 设置防火墙,打开端口iptables -t filter -A nova-api-INPUT -d 10.16.128.104/32 -p tcp -m tcp -dport 623 -j ACCEPT7. 打开浏览器,访问 10.16.128.104:623说明:ironic通过执行命令: shellinaboxd -t -p 623 -background=/tmp/47dc
11、c977-a93f-4134-a36c-44a6484765a2.pid -s /:1000:1000:HOME:ipmitool H172.16.128.23 -I lanplus -U admin -f /tmp/47dcc977-a93f-4134-a36c-44a6484765a2.pw -v sol activate 实现web console。其他方案: 目前ironic实现了此方案的console访问。 其实可以通过下载 jviewer.jnlp来访问console,不过接口需要自己实现。2. 裸机磁盘情况当引导镜像load完之后,会启动裸机iscsi server, ironi
12、c-conductor 通过挂载iscsi磁盘,然后dd镜像到裸机上。从conductor机器上可以看到 ps -ef | grep iscsi 命令完成裸机系统安装后,磁盘没有被格式化,通过 fdisk -l 和du -h 查看到:问题1. 从启动,到裸机安装完成,整个过程耗时在1个小时,原因发现在加载 deploy kernel、deploy ramdisk,镜像kernel和ramdisk时非常耗时,通过iftop发现,速度在200Kb左右,下载qcow2镜像时速度在2Mb左右,导致整个过程耗时很大2. 裸机在每次启动时,都会重新下载镜像kernel和ramdisk,这导致裸机启动也很慢
13、3. 启动完成后,能够ping通裸机,可以ssh通,但无法使用密钥登陆进去问题3解决镜像做的有问题, 做一下修改:cd /usr/share/diskimage-builder/elements/local-config/install.dtouch 63-conf-userchmod 755 63-conf-usercat 63-conf-user#!/bin/bash# add user and change passwd# you can change the scriptset -euset -o pipefailecho -e 123456n123456 | passwd rootu
14、seradd lyz -s /bin/bash -d /home/lyz -p 123456echo -e 123456n123456 | passwd lyzecho lyz ALL=(ALL) NOPASSWD:ALL /etc/sudoers# enable ssh use passwd input/bin/sed -i s/PasswordAuthentication no/PasswordAuthentication yes/ /etc/ssh/sshd_configEOF# 重新创建镜像disk-image-create ubuntu baremetal dhcp-all-interfaces local-config -offline -o image# 镜像重新upload到glance中# 省略,具体查看前面: 7.创建裸机系统镜像
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1