Oracle Linux 6 で、Oracle OpenStack R1 の All-in-one 構成を試してみました。
All-in-one 構成の時は、Oracle VM Server ではなく KVM 一択になります。
ただし今回は VirtualBox 環境なので、Oracle Linux での仮想化は KVM ではなく QEMU です。
「packstack --allinone ~」といった感じで Oracle OpenStack R1 を All-in-One 構成にしたのですが、
Nova インスタンス(QEMU の VM)を起動するときにエラーになってしまいました。
これは、Oracle OpenStack の Yum リポジトリに含まれる
libvirt まわりの RPM のバージョンが合わない問題のようです。
※OTN に投稿がありました。
ということで、対処した様子を残しておこうと思います。
OS は、Oracle Linux 6.7 (64bit) です。
[root@osol01 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.7
今回の Yum リポジトリ設定です。
Oracle OpenStack のリポジトリ
Oracle OpenStack for Oracle Linux は、R1 です。
リポジトリには public_ol6_openstack という名前がつけられています。
Oracle OpenStack for Oracle Linux は、R1 です。
リポジトリには public_ol6_openstack という名前がつけられています。
[root@osol01 ~]# cat /etc/yum.repos.d/public-yum-ol6-openstack.repo
[public_ol6_openstack]
name=Latest OpenStack 1.0 packages for Oracle Linux 6 ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/openstack10/x86_64
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
Oracle Linux 6.x のリポジトリ
無効になっているもの(enabled=0)は省略しています。
無効になっているもの(enabled=0)は省略しています。
[root@osol01 ~]# cat /etc/yum.repos.d/public-yum-ol6.repo
[public_ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
(省略)
[public_ol6_UEKR3_latest]
name=Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever ($basear
ch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=$uekr3
(省略)
※$uekr3 という変数についてはこちらをどうぞ。
普通に packstack した場合の様子。
Oracle OpenStack R1 は、packstack で環境構築ができますが、
All-in-one の場合は、ただ packstack を実行してしまうと
Nova インスタンスを起動(nova boot ~)するときにエラーになります。
/var/log/nova/nova-compute.log ファイルにあったエラーメッセージです。
2015-11-27 22:49:51.851 3159 ERROR nova.compute.manager [req-09eb0f66-a873-471a-8952-a7d525db6e1d ead4bfefdc6244f19d1d8eb159e27342 ff620abae02c48e3873ddf39b8f6451a] [instance: b1e296fa-7663-4ab9-9aa1-488cf9dbc558] Error: internal error: unable to execute QEMU command 'qom-list': The command qom-list has not been found
そして virt-manager で VM を起動しようとしても、同様のエラーになります。
インストールを完了できません: 'internal error: unable to execute QEMU command 'qom-list': The command qom-list has not been found'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 44, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 1928, in do_install
guest.start_install(False, meter=meter)
File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1229, in start_install
noboot)
File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1297, in _create_guest
dom = self.conn.createLinux(start_xml or final_xml, 0)
File "/usr/lib64/python2.6/site-packages/libvirt.py", line 2897, in createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: internal error: unable to execute QEMU command 'qom-list': The command qom-list has not been found
対処方法。
Oracle OpenStack の Yum リポジトリ(今回の設定では「public_ol6_openstack」という名前) にある
RPM だと、libvirt~ のバージョンが合わないようなので、packstack 実行前に
OpenStack 用ではないリポジトリから手動で RPM をインストールしておきます。
OpenStack 用ではないリポジトリから手動で RPM をインストールしておきます。
まず、OpenStack リポジトリに含まれる、関連 RPM のバージョンです。
これらの RPM は packstack の実行でもインストールされるはずです。
[root@osol01 ~]# yum repolist
読み込んだプラグイン:ulninfo
リポジトリー ID リポジトリー名 状態
public_ol6_UEKR3_latest Unbreakable Enterprise Kernel Release 3 for Oracle 514
public_ol6_latest Oracle Linux 6Server Latest (x86_64) 32,643
public_ol6_openstack Latest OpenStack 1.0 packages for Oracle Linux 6 (x 640
repolist: 33,797
[root@osol01 ~]# yum list libvirt libvirt-client.x86_64 python-libguestfs libguestfs libguestfs-mount libvirt-python
読み込んだプラグイン:ulninfo
利用可能なパッケージ
libguestfs.x86_64 1:1.20.11-14.el6 public_ol6_latest
libguestfs-mount.x86_64 1:1.7.17-26.el6 public_ol6_latest
libvirt.x86_64 1.1.3-1.100.3.el6 public_ol6_openstack
libvirt-client.x86_64 1.1.3-1.100.3.el6 public_ol6_openstack
libvirt-python.x86_64 1.1.3-1.100.3.el6 public_ol6_openstack
python-libguestfs.x86_64 1:1.20.11-14.el6 public_ol6_latest
そして、OpenStack リポジトリなしの、関連 RPM のバージョンです。
OTN で指摘されていたいくつかの livbirt~ の RPM のバージョンが
Oracle Linux 6 のリポジトリからダウンロードされ、バージョンも異なります。
[root@osol01 ~]# yum --disablerepo=public_ol6_openstack repolist
読み込んだプラグイン:ulninfo
リポジトリー ID リポジトリー名 状態
public_ol6_UEKR3_latest Unbreakable Enterprise Kernel Release 3 for Oracle 514
public_ol6_latest Oracle Linux 6Server Latest (x86_64) 32,643
repolist: 33,157
[root@osol01 ~]# yum --disablerepo=public_ol6_openstack list libvirt libvirt-clien
t.x86_64 python-libguestfs libguestfs libguestfs-mount libvirt-python
読み込んだプラグイン:ulninfo
利用可能なパッケージ
libguestfs.x86_64 1:1.20.11-14.el6 public_ol6_latest
libguestfs-mount.x86_64 1:1.7.17-26.el6 public_ol6_latest
libvirt.x86_64 0.10.2-54.0.1.el6_7.2 public_ol6_latest
libvirt-client.x86_64 0.10.2-54.0.1.el6_7.2 public_ol6_latest
libvirt-python.x86_64 0.10.2-54.0.1.el6_7.2 public_ol6_latest
python-libguestfs.x86_64 1:1.20.11-14.el6 public_ol6_latest
Oracle OpenStack ではないリポジトリから、事前にインストールしておきます。
※今回は、packstack の RPM インストールや、Oracle Linux での事前準備は省略しています。
[root@osol01 ~]# yum --disablerepo=public_ol6_openstack install -y libvirt libvirt-client.x86_64 python-libguestfs libguestfs libguestfs-mount libvirt-python
上記の RPM をインストールしたうえで、packstack を実行します。
[root@osol01 ~]# packstack --allinone
Welcome to Installer setup utility
Packstack changed given value to required value /root/.ssh/id_rsa.pub
Installing:
Clean Up [ DONE ]
root@10.0.2.15's password: ★パスワード入力
Setting up ssh keys [ DONE ]
Discovering hosts' details [ DONE ]
Adding pre install manifest entries [ DONE ]
Adding MySQL manifest entries [ DONE ]
Adding AMQP manifest entries [ DONE ]
Adding Keystone manifest entries [ DONE ]
Adding Glance Keystone manifest entries [ DONE ]
Adding Glance manifest entries [ DONE ]
Installing dependencies for Cinder [ DONE ]
Adding Cinder Keystone manifest entries [ DONE ]
Adding Cinder manifest entries [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Adding Nova API manifest entries [ DONE ]
Adding Nova Keystone manifest entries [ DONE ]
Adding Nova Cert manifest entries [ DONE ]
Adding Nova Conductor manifest entries [ DONE ]
Creating ssh keys for Nova migration [ DONE ]
Gathering ssh host keys for Nova migration [ DONE ]
Adding Nova Compute manifest entries [ DONE ]
Adding Nova Scheduler manifest entries [ DONE ]
Adding Nova VNC Proxy manifest entries [ DONE ]
Adding Nova Common manifest entries [ DONE ]
Adding Openstack Network-related Nova manifest entries[ DONE ]
Adding Neutron API manifest entries [ DONE ]
Adding Neutron Keystone manifest entries [ DONE ]
Adding Neutron L3 manifest entries [ DONE ]
Adding Neutron L2 Agent manifest entries [ DONE ]
Adding Neutron DHCP Agent manifest entries [ DONE ]
Adding Neutron LBaaS Agent manifest entries [ DONE ]
Adding Neutron Metadata Agent manifest entries [ DONE ]
Adding OpenStack Client manifest entries [ DONE ]
Adding Horizon manifest entries [ DONE ]
Adding post install manifest entries [ DONE ]
Preparing servers [ DONE ]
Installing Dependencies [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 10.0.2.15_prescript.pp
10.0.2.15_prescript.pp: [ DONE ]
Applying 10.0.2.15_mysql.pp
Applying 10.0.2.15_amqp.pp
10.0.2.15_mysql.pp: [ DONE ]
10.0.2.15_amqp.pp: [ DONE ]
Applying 10.0.2.15_keystone.pp
Applying 10.0.2.15_glance.pp
Applying 10.0.2.15_cinder.pp
10.0.2.15_keystone.pp: [ DONE ]
10.0.2.15_glance.pp: [ DONE ]
10.0.2.15_cinder.pp: [ DONE ]
Applying 10.0.2.15_api_nova.pp
10.0.2.15_api_nova.pp: [ DONE ]
Applying 10.0.2.15_nova.pp
10.0.2.15_nova.pp: [ DONE ]
Applying 10.0.2.15_neutron.pp
10.0.2.15_neutron.pp: [ DONE ]
Applying 10.0.2.15_osclient.pp
Applying 10.0.2.15_horizon.pp
10.0.2.15_osclient.pp: [ DONE ]
10.0.2.15_horizon.pp: [ DONE ]
Applying 10.0.2.15_postscript.pp
10.0.2.15_postscript.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ******
Additional information:
* A new answerfile was created in: /root/packstack-answers-20160103-194421.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 10.0.2.15. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://10.0.2.15/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* Because of the kernel update the host 10.0.2.15 requires reboot.
* The installation log file is available at: /var/tmp/packstack/20160103-194421-ZHbjHu/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20160103-194421-ZHbjHu/manifests
OS を再起動しておきます。
[root@osol01 ~]# reboot
Nova インスタンスが、起動できるようになっているはずです。
Glance イメージ作成 → Nova フレーバー の追加 ~ Nova インスタンスの起動をします。
Glance イメージ作成 → Nova フレーバー の追加 ~ Nova インスタンスの起動をします。
※表示結果は省略しています。
[root@osol01 ~]# source keystonerc_admin
[root@osol01 ~(keystone_admin)]# glance image-create --name=cirros --disk-format=qcow2 --container-format=bare --copy-from="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
[root@osol01 ~(keystone_admin)]# nova flavor-create custom01 6 64 0 1
[root@osol01 ~(keystone_admin)]# nova boot --image=cirros --flavor=6 vm01
Nova インスタンスの起動が確認できるはずです。
[root@osol01 ~(keystone_admin)]# nova list
+--------------------------------------+------+--------+------------+-------------+----------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------+--------+------------+-------------+----------+
| c559c115-f52f-4b3c-b399-f0a5799d3043 | vm01 | ACTIVE | - | Running | |
+--------------------------------------+------+--------+------------+-------------+----------+
virsh コマンドでも、インスタンスが実行中(running)になります。
※ただし QEMU/KVM での VM 名は、Nova インスタンスにつけた名前とは異なります。
[root@osol01 ~(keystone_admin)]# virsh list
Id 名前 状態
----------------------------------------------------
1 instance-00000001 実行中
とりあえず、VM が起動できるようになります。
実は今回はマルチホーム構成にしていて、実際に使用できるようにするには packstack や
OpenStack 関連の設定ファイルでのアドレス指定などが必要なのですが、
それは別の機会に・・・
実は今回はマルチホーム構成にしていて、実際に使用できるようにするには packstack や
OpenStack 関連の設定ファイルでのアドレス指定などが必要なのですが、
それは別の機会に・・・
以上、Oracle OpenStack R1 の All-in-one 構成での注意点でした。
0 件のコメント:
コメントを投稿