首页 > 技术文章 > install ironic-inspector

gushiren 2018-08-22 10:48 原文

安装相应的包和组件
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}
dnsmasq.conf

首先,我们配置与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.conf

同步数据库

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

检测服务状态

 

推荐阅读