ironic 2.docx
《ironic 2.docx》由会员分享,可在线阅读,更多相关《ironic 2.docx(11页珍藏版)》请在冰豆网上搜索。
ironic2
ironic调研
(二)
目标
ironic采用pxe_impitooldriver管理真实裸机
步骤
前提:
已经按照ironic调研
(一)使用devstack进行过一次部署
1.清理之前安装
./unstack.sh
2.更改local.conf配置,增加以下选项:
说明:
是基于ironic调研
(一)中local.conf配置修改
OFFLINE=True
IRONIC_DEPLOY_DRIVER=pxe_ipmitool
Q_USE_PROVIDER_NETWORKING=True
Q_L3_ENABLED=False
PHYSICAL_NETWORK=ph1
PROVIDER_NETWORK_TYPE=flat
OVS_PHYSICAL_BRIDGE=br-ph
#enp7s0f1是第二块网卡,和裸机网卡处于同一交换机上(处于同一广播域)
PUBLIC_INTERFACE=enp7s0f1
IRONIC_HW_NODE_RAM=5120
IRONIC_HW_NODE_CPU=4
注释掉选项:
注释之前:
enable_serviceq-l3
注释之后:
#enable_serviceq-l3
3.设置网络
ipaddradd10.1.0.1/24devenp7s0f1
说明:
devstack脚本会建立bridgebr-ph,并把enp7s0f1挂到br-ph上,ip也会移到br-ph上。
可以发现10.1.0.1是fixediprange并且是网关,由于在使用ironic的情况下,裸机相当与虚拟机,所分到的ip也是从fixedip中拿到的。
4.添加裸机信息
mkdir/opt/stack/data/ironic
#按照ipmi_addressmac_addressipmi_useripmi_passwd格式
echo"172.16.128.236c:
92:
bf:
0d:
20:
a8adminadmin">/opt/stack/data/ironic/hardware_info
注意:
1.如果裸机有多块网卡,mac地址对应的网卡一定要和enp7s0f1处于同一广播域下,否者之后裸机启动时,pxe找不到dhcp服务
2.可以通过ps-ef|grepdns命令查看dhcp是否启动,dnsmasq会在第一次有执行novaboot之后启动
5.重新创建deploykernel和deployramdisk
ramdisk-image-create--offlineubuntudeploy-ironic-o
/home/stack/devstack/files/ir-deploy-pxe_impitool
6.执行stack.sh脚本
./stack.sh>runlog2>&1&
部署完成之后ovs-vsctlshow如下:
7.创建裸机系统镜像
disk-image-createubuntubaremetaldhcp-all-interfaces
local-config-oubuntu--offline
执行完之后会有ubuntu.vmlinuz,ubuntu.initrd,ubuntu.qcow2三个文件上传到glance中:
glanceimage-create--namemy-kernel--is-publicTrue--
disk-formatakiglanceimage-create--namemy-image.initrd--is-publicTrue
--disk-formatariglanceimage-create--namemy-image--is-publicTrue--
disk-formatqcow2--container-formatbare--property
kernel_id=$MY_VMLINUZ_UUID--property
ramdisk_id=$MY_INITRD_UUID8.启动裸机
novaboot--image--flavortest
启动流程
1.novaboot命令启动
2.RESTAPI请求ironic-api
3.ironic-apirpc请求ironic-conductor,conductor从glance拉取deploy-kernel,deploy-
ramdisk,已及镜像的ramdisk,kernel,qcow2放到tftpserver下通知neutron设置dhcp服务,根据之前设置的mac地址
4.conductor执行ipmi命令启动裸机
5.裸机启动后,进行pxe启动,找dhcp服务,dnsmsq根据3步中设置的mac地址匹配,分配ip,和给出tftp地址
6.裸机根据tftp地址下载deploy-kernel,deploy-ramdisk启动,并下载景象文件
7.裸机重启,下载景象的ramdisk和kerneldisk启动
8.完成启动,进入登陆界面
过程截图
1.加载deploykernel和deployramdisk景象
通过tcpdum-vvv-n-ibr-phport69查看请求
通过iftop-ibr-ph查看流量
2.加载镜像kernel和ramdisk
3.login
其他
1.webconsole
IPMISOL(Serial-over-LAN)+shellinabox
使用方式:
1.设置端口
#端口自己设定,用来做webconsole的端口
ironicnode-update47dcc977-a93f-4134-a36c-44a6484765a2
adddriver_info/ipmi_terminal_port=623
2.验证console可以用
ironicnode-validate47dcc977-a93f-4134-a36c-44a6484765a2
3.安装shellinabox
#如果找不到包,先安装yuminstallepel-release
yuminstallshellinabox
4.enableconsole
#可以通过lsof-i:
623查看是否启动成功,623是第一步设置的port
Ironicnode-set-console-mode47dcc977-a93f-4134-a36c-44a6484765a2true
5.getconsole
ironicnode-get-console47dcc977-a93f-4134-a36c-44a6484765a2
6.设置防火墙,打开端口
iptables-tfilter-Anova-api-INPUT-d10.16.128.104/32-p
tcp-mtcp--dport623-jACCEPT
7.打开浏览器,访问10.16.128.104:
623
说明:
ironic通过执行命令:
shellinaboxd-t-p623--background=/tmp/47dcc977-a93f-4134-a36c-44a6484765a2.pid-s/:
1000:
1000:
HOME:
"ipmitool–H
172.16.128.23-Ilanplus-Uadmin-f/tmp/47dcc977-a93f-4134-a36c-44a6484765a2.pw-vsolactivate"
实现webconsole。
其他方案:
目前ironic实现了此方案的console访问。
其实可以通过下载jviewer.jnlp来访问console,不过接口需要自己实现。
2.裸机磁盘情况
当引导镜像load完之后,会启动裸机iscsiserver,ironic-conductor通过挂载iscsi磁盘,然后dd镜像到裸机上。
从conductor机器上可以看到ps-ef|grepiscsi命令
完成裸机系统安装后,磁盘没有被格式化,通过fdisk-l和du-h
查看到:
问题
1.从启动,到裸机安装完成,整个过程耗时在1个小时,原因发现在加载deploykernel、deployramdisk,镜像kernel和ramdisk时非常耗时,通过iftop发现,速度在200Kb左右,下载qcow2镜像时速度在2Mb左右,导致整个过程耗时很大
2.裸机在每次启动时,都会重新下载镜像kernel和ramdisk,这导致裸机启动也很慢
3.启动完成后,能够ping通裸机,可以ssh通,但无法使用密钥登陆进去
问题3解决
镜像做的有问题,
做一下修改:
cd/usr/share/diskimage-builder/elements/local-config/install.d
touch63-conf-user
chmod75563-conf-user
cat<63-conf-user
#!
/bin/bash
#adduserandchangepasswd
#youcanchangethescript
set-eu
set-opipefail
echo-e"123456\n123456"|passwdroot
useraddlyz-s/bin/bash-d/home/lyz-p123456
echo-e"123456\n123456"|passwdlyz
echo"lyzALL=(ALL)NOPASSWD:
ALL">>/etc/sudoers
#enablesshusepasswdinput
/bin/sed-i"s/PasswordAuthenticationno/PasswordAuthentication
yes/"/etc/ssh/sshd_config
EOF
#重新创建镜像
disk-image-createubuntubaremetaldhcp-all-interfaceslocal-
config--offline-oimage
#镜像重新upload到glance中
#省略,具体查看前面:
7.创建裸机系统镜像