首页 > 代码库 > openstack ironic 学习总结之安装部署

openstack ironic 学习总结之安装部署

一  准备

    此文假设你已经安装如下 openstack 的其他组件

1. nova ------- compute service
2. keystone --- identity service
3. glance ----- image service
4. neutron ---- network service

    ironic 由下面几部分组成:

1. ironic-api ----------- ironic 组件对外的 API
2. ironic-conductor ----- ironic 真正的干活者
3. ironicclient ---------
4. database
5. message queue

二  keystone 配置

keystone user-create --name=ironic --pass=IRONIC_PASSWORD --email=ironic@example.com
keystone user-role-add --user=ironic --tenant=service --role=admin
keystone service-create --name=ironic --type=baremetal --description="Ironic bare metal provisioning service"
keystone endpoint-create --service-id=the_service_id_above --publicurl=http://IRONIC_NODE:6385 --internalurl=http://IRONIC_NODE:6385 --adminurl=http://IRONIC_NODE:6385

三  ironic 安装配置

  1. 数据库安装

# mysql -u root -p
mysql> CREATE DATABASE ironic CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES ON ironic.* TO ‘ironic‘@‘localhost‘ IDENTIFIED BY ‘IRONIC_DBPASSWORD‘;
mysql> GRANT ALL PRIVILEGES ON ironic.* TO ‘ironic‘@‘%‘ IDENTIFIED BY ‘IRONIC_DBPASSWORD‘;

    2. 安装 ironic 相关包

    ironic各组件 可以安装在多个节点上,也可安装在同一个节点上,此安装指导是安装在同一个节点上。

http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/fedora-20/

    上述可获取到如下 rpm 包

openstack-ironic-api-2014.1-rc1.2.el7.noarch.rpm
openstack-ironic-common-2014.1-rc1.2.el7.noarch.rpm
openstack-ironic-conductor-2014.1-rc1.2.el7.noarch.rpm
python-ironicclient-0.1.2-5.el7.noarch.rpm

    使用 yum 或 rpm 进行安装。

    vi /etc/ironic/ironic.conf

[database]
connection = mysql://ironic:IRONIC_DBPASSWORD@DB_IP/ironic?charset=utf8
[DEFAULT]
rabbit_host=RABBIT_HOST
[DEFAULT]
auth_strategy=keystone
[keystone_authtoken]
auth_host=IDENTITY_IP
#auth_port=35357
#auth_protocol=http
auth_uri=http://IDENTITY_IP:5000/
admin_user=ironic
admin_password=IRONIC_PASSWORD
admin_tenant_name=service
[neutron]
url=http://NEUTRON_IP:9696
[glance]
glance_host=GLANCE_IP

    同步数据库和重启服务:

ironic-dbsync --config-file /etc/ironic/ironic.conf

service ironic-api restart
service ironic-conductor restart

四  nova compute 配置

    vi /etc/nova/nova.conf

[default]
compute_driver=ironic.nova.virt.ironic.IronicDriver
scheduler_host_manager=ironic.nova.scheduler.ironic_host_manager.IronicHostManager
ram_allocation_ratio=1.0
compute_manager=ironic.nova.compute.manager.ClusteredComputeManager
[ironic]
admin_username=ironic
admin_password=IRONIC_PASSWORD
admin_url=http://IDENTITY_IP:35357/v2.0
admin_tenant_name=service
api_endpoint=http://IRONIC_NODE:6385/v1

    控制节点重启

service nova-scheduler restart

    计算节点重启

service nova-compute restart

五  PXE 配置

sudo mkdir -p /tftproot
sudo chown -R ironic:LIBVIRT_GROUP -p /tftproot
mkdir -p /tftproot/pxelinux.cfg
sudo cp /usr/share/syslinux/pxelinux.0 /tftproot

六 部署

1.     注册 baremetal node 信息,通过 ironic node-create,包括使用的 driver 信息,包括 BMC 的 IP/user/password、属性(cpu/mem/disk),通过 ironic port-create 把 node 的所有的网口信息注册到 node 上 。
2.     制作镜像,包括系统跑的镜像,PXE 启动时需要的 kernel 和 ramdisk 镜像,可借助 openstack 的另外项目 TripleO 中的组件 diskimage-builder 制作,需要定制自己的 elements,后续如果要做定制化安装,这个工具需要掌握起来。
3.     创建特定的 flavor,根据 node 信息设置 CPU/MEM/DISK 信息 ,设置key:baremetal:deploy_kernel_id和baremetal:deploy_ramdisk_id。
使用 nova boot 启动 baremetal instance, flavor为创建的baremetal专用flavor,image为baremetal image。

七 参考文献

http://docs.openstack.org/developer/ironic/deploy/install-guide.html