始める前に
Ironic を残りの OpenStack コンポーネントとともに配備している場合は、最初にそれらのコアコンポーネントを構成するようにしてください。少なくとも、Ironic に関して作業する前に Keystone と Glance の構成を完了する必要があります。
同様に、Ironic 用のデータベースが設定されていることを確認してください。この手順は、データベースが残りの OpenStack データベースとともにコントローラノード上に設定される、図 1の 3 ノードリファレンスアーキテクチャーに従っています。
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
AI サーバーパッケージを Ironic とともにローカルにインストールするか、または別のホストにリモートにインストールするかにかかわらず、同じコマンドを使用します。
# 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 アドレスまたはホスト名を指定できます。
このファイル内の特定のパラメータの構成に関する次の考慮事項に注意してください。
DEFAULT セクションで、Ironic をスタンドアロンのコンポーネントとして使用してしている場合は、noauth を指定します。Ironic をほかの OpenStack コンポーネントとともに配備している場合は、keystone を指定します。
ai セクションで、Automated Installer (AI) が Ironic でローカルの場合は localhost を指定します。AI がリモートに存在する場合は、そのサーバーの IP アドレスまたはホスト名を指定します。
[database] セクションで、MySQL データベースへの接続を指定します。
glance セクションで、auth_strategy パラメータが keystone に設定されている場合は Glance サーバーの IP アドレスまたはホスト名を指定します。
また、glance セクションで、ホスト名または IP アドレスのどちらかをそれに対応するポート番号 (192.168.0.150:9292 など) とともに指定します。localhost を指定しないでください。
Ironic が機能するために必要なすべてのパラメータの構成に役立つように、次のサンプルファイルを使用してください。このサンプルファイルで、変数 glance-serverIP は Glance サーバーの IP アドレスまたはホスト名を表しています。
[DEFAULT] enabled_drivers=solaris auth_strategy=setting depends on whether Ironic is stand alone or not pybasedir = /usr/lib/python2.6/vendor-packages/ironic bindir = /usr/lib/ironic host = ironic [ai] server=setting depends on whether AI is local or remote 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 =for Ironic to use Keystone to interact with Glance, specify keystone [keystone_authtoken]configure if under 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 =for Ironic to use Keystone to interact with Neutron, specify 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 サービスを再起動する必要があります。