开始之前
如果您要将 Ironic 与其余 OpenStack 组件部署在一起,请务必首先配置以下核心组件。至少,在操作 Ironic 之前必须完成 Keystone 和 Glance 配置。
同样,请确保设置 Ironic 的数据库。此过程遵循图 1 中的 3 节点参考体系结构,其中数据库安装在控制器节点上,与其余 OpenStack 数据库在一起。
controller# export CONTROLLER_ADMIN_NODE=controller-node
其中 controller-node 可以为控制器的 IP 地址或主机名。有关设置变量的更多信息,请参见准备主机名、变量和口令。
controller# mysql -u root -p Enter password: MySQL-root-password mysql> create database ironic default character set utf8 default collate utf8_general_ci; mysql> grant all privileges on ironic.* to 'ironic'@'$CONTROLLER_ADMIN_NODE' identified by 'service-password'; mysql> flush privileges; mysql> quit
# pkg install ironic ironicclient rabbitmq # pkg update stevedore stevedore-27
无论您是在本地随 Ironic 安装 AI 服务器软件包还是在另一主机上远程安装,请使用相同的命令。
# pkg install pkg:/install/installadm
remote-AI# useradd -d /var/lib/ironic -m -g 88 -u 88 \ -P "Install Service Management" ironic remote-AI# passwd ironic New Password: password Re-enter new Password: password
ironic-localhost# su - ironic ironic-localhost# mkdir /var/lib/ironic/.ssh ironic-localhost# ssh-keygen -N '' -t rsa \ -f /var/lib/ironic/.ssh/id_rsa ironic-localhost# cat /var/lib/ironic/.ssh/id_rsa.pub > \ /var/lib/ironic/.ssh/authorized_keys
remote-AI# su - ironic remote-AI# mkdir /var/lib/ironic/.ssh remote-AI# ssh-keygen -N '' -t rsa \ -f /var/lib/ironic/.ssh/id_rsa remote-AI# cat /var/lib/ironic/.ssh/id_rsa.pub > \ /var/lib/ironic/.ssh/authorized_keys
ironic-localhost# mkdir /var/lib/ironic/.ssh ironic-localhost# scp ironic@AI-server:~/.ssh/id_rsa /var/lib/ironic/.ssh ironic-localhost# scp ironic@AI-server:~/.ssh/id_rsa.pub /var/lib/ironic/.ssh ironic-localhost# cat /var/lib/ironic/.ssh/id_rsa.pub > \ /var/lib/ironic/.ssh/authorized_keys ironic-localhost# chown -R ironic:ironic /var/lib/ironic/.ssh
其中,AI-server 可以是 AI 服务器的 IP 地址或主机名。
如果要将 Ironic 用作独立组件,请在 DEFAULT 部分下指定 noauth。如果要将 Ironic 与其他 OpenStack 组件一起部署,请指定 keystone。
如果自动安装程序 (Automated Installer, AI) 随 Ironic 位于本地,请在 ai 部分下指定 localhost。如果 AI 位于远程,则指定该服务器的 IP 地址或主机名。
在 [database] 部分下,指定与 MySQL 数据库的连接。
如果 auth_strategy 参数设置为 keystone,请在 glance 部分下指定 Glance 服务器的 IP 地址或主机名。
此外,还要在 glance 部分下指定主机名或 IP 地址及其对应的端口号,例如 192.168.0.150:9292。不要指定 localhost。
请使用以下样例文件指导您配置 Ironic 正常运行所需的所有参数。请注意,在该样例文件中,变量 glance-serverIP 表示 Glance 服务器的 IP 地址或主机名。
[DEFAULT] enabled_drivers=solaris auth_strategy=设置取决于 Ironic 是否独立 pybasedir = /usr/lib/python2.6/vendor-packages/ironic bindir = /usr/lib/ironic host = ironic [ai] server=设置取决于 AI 是本地的还是远程的 username=ironic port=22 timeout=10 ssh_key_file=/var/lib/ironic/.ssh/id_rsa deploy_interval=30 [api] port=6385 [conductor] api_url=http://localhost:6385/ heartbeat_timeout=60 heartbeat_interval=60 sync_power_state_interval=300 check_provision_state_interval=120 [database] connection= mysql://ironic:service-password@$CONTROLLER_ADMIN_NODE/ironic [solaris_ipmi] imagecache_dirname = /var/lib/ironic/images imagecache_lock_timeout = 60 [glance] glance_host = glance-serverIP glance_port = 9292 glance_protocol = http glance_api_servers = glance-serverIP:port auth_strategy =对于要使用 Keystone 与 Glance 交互的 Ironic,请指定 keystone [keystone_authtoken]在 DEFAULT 下 auth_strategy = keystone 时配置 auth_host = localhost auth_uri = http://$CONTROLLER_ADMIN_NODE:5000/v2.0 identity_uri = http://$CONTROLLER_ADMIN_NODE:35357 admin_user = ironic admin_password = service-password admin_tenant_name = tenant signing_dir = $state_path/keystone-signing [neutron] auth_strategy =对于要使用 Keystone 与 Neutron 交互的 Ironic,请指定 keystone [oslo_messaging_rabbit] rabbit_host=$CONTROLLER_ADMIN_NODE
ironic-localhost# svcs -a | grep rabbitmq ironic-localhost# svcs -a | grep ironic
如果 Ironic 处于独立模式,您可能需要手动启用这些服务。
ironic-localhost# svcadm enable rabbitmq ironic-localhost# svcadm enable ironic-db ironic-localhost# svcadm enable ironic-api ironic-conductor
ironic-localhost# export OS_AUTH_TOKEN=fake-token ironic-localhost# export IRONIC_URL=http://localhost:6385
如果 Keystone 服务位于与 Ironic 不同的节点中,则对于 OS_AUTH_URL,请指定安装了 Keystone 的主机名或 IP 地址。
ironic-localhost# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 ironic-localhost# export OS_PROJECT_NAME=service ironic-localhost# export OS_USERNAME=ironic ironic-localhost# export OS_PASSWORD=service-password ironic-localhost# export IRONIC_URL=http://localhost:6385/
# ironic driver-list +---------------------+----------------+ | Supported driver(s) | Active host(s) | +---------------------+----------------+ | solaris | ironic | +---------------------+----------------+
当前,solaris 是 Ironic 中唯一启用并经过测试的驱动程序。不过,您可以通过将驱动程序的名称包括在 /etc/ironic/ironic.conf 文件的 [enabled_drivers] 部分下向列表中添加驱动程序。在添加驱动程序后,需要重新启动 ironic-api 和 ironic-conductor SMF 服务。