Nutanix OpenStack Servieice VM(OVM)にインストールされている RPM を見てみました。
OVM は、CentOS 7 ベースの VM です。
[root@ovm01 ~]# cat /etc/centos-release CentOS Linux release 7.2.1511 (Core)
Nutanix から提供されている、Acropolis OpenStack Driver の RPM がインストールされています。これが OVM 特有の RPM で、Nutanix と OpenStack との連携をシンプルにすることができます。この RPM をインストールすれば、OVM を使用しなくても物理サーバ / VM をとわず OVM と同様の機能が提供できるようです。
RPM のバージョンを見ると 1年以上前のもののように見えますが、実際ビルドされたのはわりと最近です。
[root@ovm01 ~]# rpm -qi nutanix_openstack Name : nutanix_openstack Version : 2015.1.0 Release : 1 Architecture: noarch Install Date: Thu 11 Feb 2016 07:31:25 AM PST Group : Unspecified Size : 1280839 License : Nutanix Signature : (none) Source RPM : nutanix_openstack-2015.1.0-1.src.rpm Build Date : Thu 11 Feb 2016 07:29:59 AM PST Build Host : ravi-dev-ovm.dev.eng.nutanix.com Relocations : (not relocatable) Summary : Acropolis drivers for Openstack Kilo. Description : A collection of Acropolis drivers for using OpenStack on Nutanix.
下記のファイルが含まれます。
ovmctl(/usr/bin/ovmctl)コマンドや、Acropolis むけの Nova、Neutron などの ドライバ(~/driver.py)が含まれています。他にも、manifestファイルが含まれていて Puppet を利用していることがわかります。OpenStack 自体は、この RPM には含まれません。
[root@ovm01 ~]# rpm -ql nutanix_openstack /etc/isolinux.cfg /etc/nutanix_openstack_config.json /etc/puppet /etc/puppet/hiera.yaml /etc/puppet/modules /etc/puppet/modules/ovm /etc/puppet/modules/ovm/manifests /etc/puppet/modules/ovm/manifests/ovm_allinone_connect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_allinone_disconnect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_connect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_disconnect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_glance_connect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_glance_disconnect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_image_cache_connect_manifest.pp /etc/puppet/modules/ovm/manifests/ovm_image_cache_disconnect_manifest.pp /usr/bin/ovmctl /usr/bin/prism_vnc_proxy /usr/lib/python2.7/site-packages/nutanix_openstack /usr/lib/python2.7/site-packages/nutanix_openstack/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/api.py /usr/lib/python2.7/site-packages/nutanix_openstack/api.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/api.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/cinder /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/driver.py /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/driver.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/cinder/driver.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/glance /usr/lib/python2.7/site-packages/nutanix_openstack/glance/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/glance/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/glance/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/glance/driver.py /usr/lib/python2.7/site-packages/nutanix_openstack/glance/driver.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/glance/driver.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/imageops.py /usr/lib/python2.7/site-packages/nutanix_openstack/imageops.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/imageops.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/neutron /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/driver.py /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/driver.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/neutron/driver.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/nova /usr/lib/python2.7/site-packages/nutanix_openstack/nova/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/nova/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/nova/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/nova/driver.py /usr/lib/python2.7/site-packages/nutanix_openstack/nova/driver.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/nova/driver.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/nova/hostops.py /usr/lib/python2.7/site-packages/nutanix_openstack/nova/hostops.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/nova/hostops.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/nova/vmops.py /usr/lib/python2.7/site-packages/nutanix_openstack/nova/vmops.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/nova/vmops.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/nova/volumeops.py /usr/lib/python2.7/site-packages/nutanix_openstack/nova/volumeops.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/nova/volumeops.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/session.py /usr/lib/python2.7/site-packages/nutanix_openstack/session.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/session.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/util.py /usr/lib/python2.7/site-packages/nutanix_openstack/util.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/util.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/vnc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/__init__.py /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/__init__.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/__init__.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_file_handler.py /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_file_handler.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_file_handler.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_http_handler.py /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_http_handler.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_http_handler.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_prism_websocket_proxy.py /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_prism_websocket_proxy.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_prism_websocket_proxy.pyo /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_web_socket.py /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_web_socket.pyc /usr/lib/python2.7/site-packages/nutanix_openstack/vnc/wsgi_web_socket.pyo /usr/lib/systemd/system/prism-vnc-proxy.service /usr/share/augeas /usr/share/augeas/lenses /usr/share/augeas/lenses/dist /usr/share/augeas/lenses/dist/nutanix_openstack_lens.aug /usr/share/nutanix_openstack/vnc /usr/share/nutanix_openstack/vnc/static /usr/share/nutanix_openstack/vnc/static/fonts /usr/share/nutanix_openstack/vnc/static/fonts/ProximaNovaSoft-Bold-webfont.ttf /usr/share/nutanix_openstack/vnc/static/fonts/ProximaNovaSoft-Bold-webfont.woff /usr/share/nutanix_openstack/vnc/static/fonts/ProximaNovaSoft-Regular-webfont.ttf /usr/share/nutanix_openstack/vnc/static/fonts/ProximaNovaSoft-Regular-webfont.woff /usr/share/nutanix_openstack/vnc/static/fonts/ss-nutanix-regular-webfont.ttf /usr/share/nutanix_openstack/vnc/static/fonts/ss-nutanix-regular-webfont.woff /usr/share/nutanix_openstack/vnc/static/images /usr/share/nutanix_openstack/vnc/static/images/header-logo.png /usr/share/nutanix_openstack/vnc/static/include /usr/share/nutanix_openstack/vnc/static/include/base.css /usr/share/nutanix_openstack/vnc/static/include/base64.js /usr/share/nutanix_openstack/vnc/static/include/des.js /usr/share/nutanix_openstack/vnc/static/include/display.js /usr/share/nutanix_openstack/vnc/static/include/fancySelect.css /usr/share/nutanix_openstack/vnc/static/include/fancySelect.js /usr/share/nutanix_openstack/vnc/static/include/fancyselect-override.css /usr/share/nutanix_openstack/vnc/static/include/input.js /usr/share/nutanix_openstack/vnc/static/include/jquery-1.7.1.min.js /usr/share/nutanix_openstack/vnc/static/include/jsunzip.js /usr/share/nutanix_openstack/vnc/static/include/keyboard.js /usr/share/nutanix_openstack/vnc/static/include/keysymdef.js /usr/share/nutanix_openstack/vnc/static/include/override-base.css /usr/share/nutanix_openstack/vnc/static/include/rfb.js /usr/share/nutanix_openstack/vnc/static/include/scancode_map.js /usr/share/nutanix_openstack/vnc/static/include/util.js /usr/share/nutanix_openstack/vnc/static/include/websock.js /usr/share/nutanix_openstack/vnc/static/include/webutil.js /usr/share/nutanix_openstack/vnc/static/vnc_auto.html
Acropolis Driver の RPM とは別に、OpenStack 関連の RPM 一式もいストールされています。
[root@ovm01 ~]# rpm -qa | grep openstack openstack-swift-plugin-swift3-1.7-4.el7.noarch openstack-ceilometer-api-2015.1.1-1.el7.noarch python-openstackclient-1.0.3-2.el7.noarch openstack-packstack-puppet-2015.1-0.14.dev1616.g5526c38.el7.noarch openstack-nova-conductor-2015.1.1-1.el7.noarch openstack-swift-account-2.3.0-1.el7.noarch openstack-heat-engine-2015.1.1-1.el7.noarch openstack-sahara-api-2015.1.1-1.el7.noarch openstack-trove-2015.1.0-3.el7.noarch openstack-nova-scheduler-2015.1.1-1.el7.noarch openstack-dashboard-2015.1.1-1.el7.noarch openstack-swift-container-2.3.0-1.el7.noarch openstack-glance-2015.1.1-1.el7.noarch openstack-nova-novncproxy-2015.1.1-1.el7.noarch openstack-heat-api-2015.1.1-1.el7.noarch openstack-ceilometer-common-2015.1.1-1.el7.noarch openstack-ceilometer-collector-2015.1.1-1.el7.noarch openstack-sahara-engine-2015.1.1-1.el7.noarch openstack-trove-taskmanager-2015.1.0-3.el7.noarch python-django-openstack-auth-1.2.0-4.el7.noarch openstack-puppet-modules-2015.1.12-6.el7.noarch openstack-selinux-0.6.35-1.el7.noarch openstack-utils-2014.2-1.el7.noarch openstack-nova-api-2015.1.1-1.el7.noarch openstack-swift-2.3.0-1.el7.noarch openstack-swift-object-2.3.0-1.el7.noarch openstack-ceilometer-notification-2015.1.1-1.el7.noarch openstack-ceilometer-central-2015.1.1-1.el7.noarch openstack-sahara-2015.1.1-1.el7.noarch openstack-trove-conductor-2015.1.0-3.el7.noarch openstack-heat-common-2015.1.1-1.el7.noarch openstack-sahara-common-2015.1.1-1.el7.noarch openstack-trove-api-2015.1.0-3.el7.noarch openstack-neutron-openvswitch-2015.1.1-1.el7.noarch openstack-keystone-2015.1.1-1.el7.noarch openstack-nova-common-2015.1.1-1.el7.noarch openstack-nova-cert-2015.1.1-1.el7.noarch openstack-nova-compute-2015.1.1-1.el7.noarch openstack-neutron-common-2015.1.1-1.el7.noarch openstack-neutron-2015.1.1-1.el7.noarch openstack-swift-proxy-2.3.0-1.el7.noarch openstack-ceilometer-alarm-2015.1.1-1.el7.noarch openstack-trove-common-2015.1.0-3.el7.noarch openstack-packstack-2015.1-0.14.dev1616.g5526c38.el7.noarch openstack-cinder-2015.1.1-1.el7.noarch openstack-nova-console-2015.1.1-1.el7.noarch nutanix_openstack-2015.1.0-1.noarch openstack-neutron-ml2-2015.1.1-1.el7.noarch
Nutanix が OpenStack ディストリビューションを提供するわけではく、fedora の RDO リポジトリから公開されている RPM のようです。
[root@ovm01 ~]# rpm -qi rdo-release Name : rdo-release Version : kilo Release : 1 Architecture: noarch Install Date: Thu 04 Feb 2016 05:25:44 PM PST Group : System Environment/Base Size : 4254 License : Apache2 Signature : RSA/SHA1, Tue 12 May 2015 07:52:05 AM PDT, Key ID 52f8c4c37d10ce81 Source RPM : rdo-release-kilo-1.src.rpm Build Date : Tue 12 May 2015 07:28:54 AM PDT Build Host : gig3 Relocations : (not relocatable) URL : https://github.com/redhat-openstack/rdo-release Summary : RDO repository configuration Description : This package contains the RDO repository
OpenStack 関連の RPM は、openstack-kilo リポジトリから取得されたものです。
[root@ovm01 ~]# yum list openstack-utils Loaded plugins: fastestmirror Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Loading mirror speeds from cached hostfile * base: mirror.netdepot.com * extras: mirror.umd.edu * updates: centos.firehosted.com Installed Packages openstack-utils.noarch 2014.2-1.el7 @openstack-kilo
openstack-kilo リポジトリの設定ファイルは、rdo-release の RPM に含まれています。
[root@ovm01 ~]# rpm -ql rdo-release /etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-kilo /etc/yum.repos.d/rdo-release.repo /etc/yum.repos.d/rdo-testing.repo
openstack-kilo の Yum リポジトリ設定です。
[root@ovm01 ~]# cat /etc/yum.repos.d/rdo-release.repo [openstack-kilo] name=OpenStack Kilo Repository baseurl=http://repos.fedorapeople.org/repos/openstack/openstack-kilo/el7/ skip_if_unavailable=0 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-kilo
以上。