IRONIC 环境部署
参考资料:https://blog.youkuaiyun.com/zhongbeida_xue/article/details/79577916
1. 软件安装
https://www.rpmfind.net/linux/rpm2html/search.php?query=openstack-ironic-&submit=Search+...&system=&arch=
# rpm -ivh openstack-ironic-common-2015.1.3-1.fc23.noarch.rpm--force --nodeps
# rpm -ivhopenstack-ironic-api-2015.1.3-1.fc23.noarch.rpm
# rpm -ivhopenstack-ironic-conductor-2015.1.3-1.fc23.noarch.rpm
# pip install python-ironicclient
2. 数据库配置
mysql> CREATE DATABASE ironic CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' \
IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' \
IDENTIFIED BY'password';
3. 相关配置
1. 修改/etc/ironic/ironic.conf如下配置:
#vim /etc/ironic/ironic.conf
notification_driver=messaging transport_url=rabbit://guest:guest@c141:5672/ my_ip=10.10.132.141 auth_strategy=noauth enabled_drivers=pxe_ipmitool debug=true log_dir=/var/log/ironic host_ip=10.10.132.141 port=6385 api_url=http://10.10.132.141:6385 sync_power_state_interval=60 send_sensor_data=true send_sensor_data_types=Temperature,Fan,Voltage terminal_cert_dir=/tmp/ca connection=mysql://ironic:3ca8ef6c962a3ff69534@c141/ironic dhcp_provider=none auth_uri=http://10.10.132.141:5000/v2.0/ admin_user=ironic admin_password=ironic admin_tenant_name=admin rabbit_host=10.10.132.141 rabbit_port=5672 pxe_append_params=nofb nomodeset vga=normal console=tty0 console=ttyS0,115200n8 tftp_server=10.10.132.141 tftp_root=/tftpboot pxe_bootfile_name=pxelinux.0
|
2. 同步数据库
# mkdir -p /var/log/ironic/
# chmod 777 /var/log/ironic/
# ironic-dbsync --config-file/etc/ironic/ironic.conf create_schema
3. 启动服务
# systemctl enable openstack-ironic-api openstack-ironic-conductor
# systemctl start openstack-ironic-api openstack-ironic-conductor
4. openstack endpoint
$ openstack user create --password password\
--email ironic@example.com ironic
$ openstack role add --project admin --user ironic admin
$ openstack service create --name ironic --description "Ironicbaremetal provisioning service" baremetal
$ openstack endpoint create --region Region_16_0326153021\
--publicurl http://c16:6385 \
--internalurl http://c16:6385 \
--adminurl http://c16:6385 \
baremetal
4. 创建PXE环境
参考: http://www.bubuko.com/infodetail-1804647.html
目的:配置tftp服务为了从本地下载镜像进行安装操作系统
1. 创建tftp的根目录
# mkdir -p /tftpboot
# chown -R ironic /tftpboot
# mkdir -p /tftpboot/master_images
# chown -R ironic:ironic /tftpboot
# chmod 644 /tftpboot/ironic/*
2. 安装tftp相关包
# yum install tftp-server syslinux-tftpbootxinetd -y
# 拷贝pxeimage、chain.c32到/tftpboot目录下
# cp /var/lib/tftpboot/pxelinux.0 /tftpboot
# cp /var/lib/tftpboot/chain.c32 /tftpboot
3. 创建tftp map file 替换现有map-file文件!
# echo ‘re ^(/tftpboot/) /tftpboot/\2‘ >/tftpboot/map-file
# echo ‘re ^/tftpboot/ /tftpboot/‘ >>/tftpboot/map-file
# echo ‘re ^(^/) /tftpboot/\1‘ >>/tftpboot/map-file
# echo ‘re ^([^/]) /tftpboot/\1‘ >>/tftpboot/map-file
4. 替换tftp文件 替换现有tftp文件!
文件目录:/etc/xinetd.d/tftp
5. 重启服务
# systemctl restart xinetd.service
5. 安装dhcp服务
# yum install dhcp* -y
修改dhcpd.conf 配置如下 替换现成dhcpd.conf文件!
# vi /etc/dhcp/dhcpd.conf
allow booting; allow bootp; option routers 10.10.3.254; option subnet-mask 255.255.255.0; option domain-name "company.com"; option domain-name-servers 12.10.3.153,114.114.114.114; ddns-update-style none; subnet 10.10.3.0 netmask 255.255.255.0 { range dynamic-bootp 10.10.3.221 10.10.3.225; default-lease-time 21600; max-lease-time 43200; filename "pxelinux.0"; next-server 10.10.3.153; }
|
6. 镜像上传及下载
注意:以下下载配置步骤(1-5步)可以忽略,直接使用现有的镜像文件(第6步)即可
1. 下载ironic deploy镜像
# cd /tftpboot/
# mkdir -p ironic
# cd ironic/
# wgethttp://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe.vmlinuz
# wget http://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem.cpio.gz
2. 准备user image,用户镜像
安装diskimage-build
# git clone https://github.com/openstack/dib-utils.git
# cd dib-utils/
# python setup.py install
# git clone git://git.openstack.org/openstack/diskimage-builder
# cd diskimage-builder/
# python setup.py install
3. 下载 fedora镜像
# disk-image-create fedora baremetal dhcp-all-interfacesgrub2 -o my-fedora
4. 修改镜像的默认密码
# yum install libguestfs-tools-c
# cp my-fedora.qcow2 /tmp/
# chmod 777 /tmp/my-fedora.qcow2
# virt-sysprep -a /tmp/my-fedora.qcow2 --root-password password:111111
# mv my-fedora.initrd my-fedora.vmlinuz my-fedora.qcow2/tftpboot/ironic/
# mv /tmp/my-fedora.qcow2 /tftpboot/ironic/
将 /tftpboot 修改为ironic拥有。
chown -R ironic:ironic /tftpboot
# chmod 664/tftpboot/ironic/*
5. 查看
需要的镜像文件有五个:两个deploy镜像文件,三个user镜像文件。
# ll /tftpboot/ironic/
总用量 829436
-rw-rw-r-- 2 ironic ironic 347257429 coreos_production_pxe_image-oem.cpio.gz
-rw-rw-r-- 2 ironic ironic 33837088 coreos_production_pxe.vmlinuz
-rw-rw-r-- 2 ironic ironic 17685716 my-fedora.initrd
-rw-rw-r-- 2 ironic ironic 6679512 my-fedora.vmlinuz
-rw-rw-r-- 1 ironic ironic 443875328 my-fedora.qcow2
6. 目录结构查看(可以根据以下目录结构,拷贝现成的ironic文件):
注意:修改目录权限
# chmod 755 fedora/
# chmod 755 centos/
7. 相关命令
# source /root/keystonerc_admin
查看node列表:
# ironic node-list
新建node:
# ironic node-create -d pxe_ipmitool -i ipmi_address=10.10.3.3 -i ipmi_username=ADMIN -i ipmi_password=ADMIN -i
deploy_kernel=file:///tftpboot/ironic/coreos_production_pxe.vmlinuz -i deploy_ramdisk=file:///tftpboot/ironic/coreos_production_pxe_image-oem.cpio.gz
删除node:
# ironic node-delete 7a3b17fa-5524-45a5-b18d-bff5302cf905
查看node详情:
# ironic node-show 7588dbf2-7973-49e9-bdd8-64970ca442cb
新建port
ironic port-create -n $nodeuuid -a $macaddr
查看mac地址:
# ironic port-list ;查看mac地址
更新属性
ironic node-update 1587ae0c-cbd5-4d84-afdc-80b7de9b953a add instance_info/image_source=file:///tftpboot/ironic/my-fedora.qcow2 instance_info/root_gb=12 instance_info/kernel=file:///tftpboot/ironic/my-fedora.vmlinuz instance_info/ramdisk=file:///tftpboot/ironic/my-fedora.initrd instance_info/capabilities='{"boot_option":"local"}'
ironic node-update {uuid} add driver_info/ipmi_terminal_port=9000
ironic node-set-console-mode {uuid}true
查看校验信息:
# ironic node-validate 7588dbf2-7973-49e9-bdd8-64970ca442cb
部署
#ironic node-set-provision-state $nodeuuid active
修改node状态(取消部署):
# ironic node-set-provision-state 5a0b47f8-98dc-4296-8d6c-9b7c25e6c893 deleted