安装相应的包和组件 yum install openstack-ironic-inspector python-ironic-inspector-client -y 创建user openstack user create --domain default --project service --project-domain default --password ironic_inspector --enable ironic_inspector 创建service openstack service create --name ironic-inspector --description 'Bare Metal Introspection Service' --enable baremetal-introspection 添加ironic_inspector到admin组 openstack role add --user ironic_inspector --project service --project-domain default --user-domain default admin 创建endpoint openstack endpoint create --region RegionOne --enable ironic-inspector admin http://IP:5050 openstack endpoint create --region RegionOne --enable ironic-inspector internal http://IP:5050 openstack endpoint create --region RegionOne --enable ironic-inspector public http://IP:5050 创建数据库 mysql -e "create database ironic_inspector CHARACTER SET utf8;" mysql -e "grant all on ironic_inspector.* to ironic_inspector@'DB_IP' identified by 'ironic_inspector';" mysql -e "grant all on ironic_inspector.* to ironic_inspector@'%' identified by 'ironic_inspector';" mysql -e "flush privileges;" ironic-inspector包含有两个服务,一个是ironic-inspector服务,用于和ipa协作完成inspect流程任务;另一个为ironic-inspector-dnsmasq服务,用于在inspect阶段承担dhcp、tftp功能。 配置inspector.conf inspector.conf 展开源码 Configuring iPXE iPXE允许更好的扩展,因为它主要使用HTTP协议,而不是慢速和不可靠的TFTP。 您仍然需要TFTP服务器作为不支持iPXE的节点的回退。 要使用iPXE,您需要: TFTP服务器正在运行并可访问(请参阅上面的使用dnsmasq)。 确保在TFTP根目录中存在undionly.kpxe。 如果您的任何节点使用UEFI启动,则还需要ipxe.efi。 您还需要能够提供静态文件的HTTP服务器。 在那里复制ironic-agent.kernel和ironic-agent.initramfs。 在HTTP根目录下创建一个叫做inspector.ipxe的文件. 需要安装httpd,且设置DocumentRoot 为"/httpboot", 拷贝deploy image到httpboot下 copy ironic-agent.kernel ironic-agent.initramfs /httpboot cd /httpboot vim inspector.ipxe #!ipxe :retry_dhcp dhcp || goto retry_dhcp :retry_boot imgfree kernel --timeout 30000 http://inspector_ip/ironic-agent.kernel ipa-inspection-callback-url=http://172.17.0.12>:5050/v1/continue systemd.journald.forward_to_console=yes BOOTIF=${mac} initrd=agent.ramdisk || goto retry_boot initrd --timeout 30000 http://inspector_ip/ironic-agent.ramdisk || goto retry_boot boot
port=0 interface=eth0 bind-interfaces dhcp-range={DHCP IP RANGE, e.g. 192.168.0.50,192.168.0.150} enable-tftp tftp-root=/tftpboot dhcp-boot=pxelinux.0 dhcp-sequential-ip dhcp-match=ipxe,175 dhcp-match=set:efi,option:client-arch,7 dhcp-match=set:efi,option:client-arch,9 dhcp-boot=tag:ipxe,http://{IP}/inspector.ipxe dhcp-boot=tag:efi,tag:!ipxe,ipxe.efi dhcp-boot=undionly.kpxe,localhost.localdomain,{IP}
首先,我们配置与PXE相同的通用参数。 然后我们定义ipxe和efi标签。 已经支持iPXE的节点被命令下载并执行inspector.ipxe。 没有使用UEFI启动iPXE的节点将执行ipxe.efi固件,而剩下的将会得到undionly.kpxe。
配置ironic中的inspector相关参数
添加inspector选项 [inspector] enabled=true endpoint-override = http://inspector_ip:5050 auth_type=password auth_url=http://keystone_ip:5000 url=http://keystone_ip:9696 username=ironic_inspector password=ironic_inspector project_name=service project_domain_name=Default user_domain_name=Default
同步数据库
ironic-inspector-dbsync --config-file /etc/ironic-inspector/inspector.conf upgrade
运行wsgi
ironic-inspector --config-file /etc/ironic-inspector/inspector.conf
启动服务
systemctl start openstack-ironic-inspector systemctl start openstack-ironic-inspector-dnsmasq.service systemctl enable openstack-ironic-inspector systemctl enable openstack-ironic-inspector-dnsmasq.service
检测服务状态
但谈何容易。