2013年5月2日木曜日

Red Hat のコミュニティ版 OpenStack ディストリビューション 「RDO」を試す。

こんにちは、OSSテクノロジーセンターの原です。

先月 Red Hat の OpenStack コミュニティ版のディストリビューション「RDO」と、エンタープライズ版「RedHat OpenStack」のアーリーアダプタープログラムが公開されました。

これらの関係は、丁度 Red Hat Enterprise Linux と Fedora の関係に似た構図ですね。

RDO はコミュニティによりサポートされる OpenStack Grizzly ディストリビューションで、RHEL6.4 (及び RHEL 互換 OS)、Fedora18 以上で動作するようです。

では早速『Quickstart - RDO』の内容にそって、オールインワン構成で RDO が稼働するところまで試してみたいと思います。

  1. OS を用意する
  2. 一旦パッケージをアップデートしておく
  3. # yum clean all ; yum update -y
  4. リポジトリを追加

  5. RDO が提供されているリポジトリを追加します。
    # yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly-2.noarch.rpm
  6. Packstack のインストール

  7. Packstack は puppet を利用し、簡単に OpenStack をインストールするためのツールです。
    # yum install -y openstack-packstack
  8. Packstack を利用し OpenStack をインストール

  9. # packstack --allinone
    この packstack 実行中に、OpenStack のインストールだけでなく、依存関係解消のため、EPEL リポジトリの追加や、Nagiso のインストール、更に面白いのは tuned がインストールされ virtual-host プロファイルがアクティベートされるなど、OpenStack として利用するための各種設定がいっぺんに行われます。

    なお、この間にインストールされたものは以下のパッケージでした。
    alsa-lib-1.0.22-3.el6.x86_64
    apr-1.3.9-5.el6_2.x86_64
    apr-util-1.3.9-3.el6_0.1.x86_64
    apr-util-ldap-1.3.9-3.el6_0.1.x86_64
    atlas-3.8.4-2.el6.x86_64
    augeas-libs-0.9.0-4.el6.x86_64
    avahi-libs-0.6.25-12.el6.x86_64
    boost-filesystem-1.41.0-17.el6_4.x86_64
    boost-program-options-1.41.0-17.el6_4.x86_64
    boost-system-1.41.0-17.el6_4.x86_64
    bridge-utils-1.2-10.el6.x86_64
    btrfs-progs-0.20-0.2.git91d9eec.el6.x86_64
    celt051-0.5.1.3-0.el6.x86_64
    compat-readline5-5.2-17.1.el6.x86_64
    ConsoleKit-0.4.1-3.el6.x86_64
    ConsoleKit-libs-0.4.1-3.el6.x86_64
    cryptsetup-luks-1.2.0-7.el6.x86_64
    cryptsetup-luks-libs-1.2.0-7.el6.x86_64
    cvs-1.11.23-15.el6.x86_64
    cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64
    dbus-1.2.24-7.el6_3.x86_64
    Django14-1.4.5-1.el6.noarch
    dnsmasq-2.48-13.el6.x86_64
    dosfstools-3.0.9-4.el6.x86_64
    ebtables-2.0.9-6.el6.x86_64
    eggdbus-0.6-3.el6.x86_64
    epel-release-6-8.noarch
    facter-1.6.18-3.el6.x86_64
    febootstrap-supermin-helper-3.12-2.el6.x86_64
    flac-1.2.1-6.1.el6.x86_64
    fontconfig-2.8.0-3.el6.x86_64
    freetype-2.3.11-14.el6_3.1.x86_64
    fuse-2.8.3-4.el6.x86_64
    fuse-libs-2.8.3-4.el6.x86_64
    gd-2.0.35-11.el6.x86_64
    genisoimage-1.1.9-12.el6.x86_64
    gettext-0.17-16.el6.x86_64
    gnutls-2.8.5-10.el6_4.1.x86_64
    gnutls-utils-2.8.5-10.el6_4.1.x86_64
    gpxe-roms-qemu-0.9.7-6.9.el6.noarch
    hal-0.5.14-11.el6.x86_64
    hal-info-20090716-3.1.el6.noarch
    hal-libs-0.5.14-11.el6.x86_64
    hdparm-9.16-3.4.el6.x86_64
    hivex-1.3.3-4.2.el6.x86_64
    httpd-2.2.15-26.el6.x86_64
    httpd-tools-2.2.15-26.el6.x86_64
    iscsi-initiator-utils-6.2.0.873-2.el6.x86_64
    keyutils-1.4-4.el6.x86_64
    libaio-0.3.107-10.el6.x86_64
    libasyncns-0.8-1.1.el6.x86_64
    libcgroup-0.37-7.1.el6_4.x86_64
    libconfig-1.3.2-1.1.el6.x86_64
    libevent-1.4.13-4.el6.x86_64
    libgfortran-4.4.7-3.el6.x86_64
    libgomp-4.4.7-3.el6.x86_64
    libgssglue-0.1-11.el6.x86_64
    libguestfs-1.16.34-2.el6.x86_64
    libguestfs-tools-c-1.16.34-2.el6.x86_64
    libibverbs-1.1.6-5.el6.x86_64
    libICE-1.0.6-1.el6.x86_64
    libjpeg-turbo-1.2.1-1.el6.x86_64
    libogg-1.1.4-2.1.el6.x86_64
    libpcap-1.0.0-6.20091201git117cb5.el6.x86_64
    libpng-1.2.49-1.el6_2.x86_64
    librdmacm-1.0.17-0.git4b5c1aa.el6.x86_64
    libselinux-ruby-2.0.94-5.3.el6.x86_64
    libSM-1.2.1-2.el6.x86_64
    libsndfile-1.0.20-5.el6.x86_64
    libtasn1-2.3-3.el6_2.1.x86_64
    libtirpc-0.2.1-5.el6.x86_64
    libusb1-1.0.9-0.6.rc1.el6.x86_64
    libvirt-0.10.2-18.el6_4.4.x86_64
    libvirt-client-0.10.2-18.el6_4.4.x86_64
    libvirt-python-0.10.2-18.el6_4.4.x86_64
    libvorbis-1.2.3-4.el6_2.1.x86_64
    libX11-1.5.0-4.el6.x86_64
    libX11-common-1.5.0-4.el6.noarch
    libXau-1.0.6-4.el6.x86_64
    libxcb-1.8.1-1.el6.x86_64
    libXext-1.3.1-2.el6.x86_64
    libXi-1.6.1-3.el6.x86_64
    libXpm-3.5.10-2.el6.x86_64
    libxslt-1.1.26-2.el6_3.1.x86_64
    libXtst-1.2.1-2.el6.x86_64
    lsof-4.82-4.el6.x86_64
    lzo-2.03-3.1.el6.x86_64
    lzop-1.02-0.9.rc1.el6.x86_64
    mailcap-2.1.31-2.el6.noarch
    mailx-12.4-6.el6.x86_64
    man-1.6f-32.el6.x86_64
    mdadm-3.2.5-4.el6.x86_64
    memcached-1.4.4-3.el6.x86_64
    mod_wsgi-3.2-3.el6.x86_64
    mysql-5.1.69-1.el6_4.x86_64
    MySQL-python-1.2.3-0.3.c1.1.el6.x86_64
    mysql-server-5.1.69-1.el6_4.x86_64
    nagios-3.4.4-1.el6.x86_64
    nagios-common-3.4.4-1.el6.x86_64
    nagios-plugins-1.4.16-5.el6.x86_64
    nagios-plugins-nrpe-2.13-1.el6.x86_64
    nagios-plugins-ping-1.4.16-5.el6.x86_64
    nc-1.84-22.el6.x86_64
    netcf-libs-0.1.9-3.el6.x86_64
    nfs-utils-1.2.3-36.el6.x86_64
    nfs-utils-lib-1.1.5-6.el6.x86_64
    novnc-0.4-7.el6.noarch
    nrpe-2.13-1.el6.x86_64
    numactl-2.0.7-6.el6.x86_64
    numad-0.5-8.20121015git.el6.x86_64
    numpy-1.4.1-9.el6.x86_64
    openstack-cinder-2013.1-2.el6.noarch
    openstack-dashboard-2013.1-1.el6.noarch
    openstack-glance-2013.1-1.el6.noarch
    openstack-keystone-2013.1-1.el6.noarch
    openstack-nova-api-2013.1-2.el6.noarch
    openstack-nova-cert-2013.1-2.el6.noarch
    openstack-nova-common-2013.1-2.el6.noarch
    openstack-nova-compute-2013.1-2.el6.noarch
    openstack-nova-conductor-2013.1-2.el6.noarch
    openstack-nova-console-2013.1-2.el6.noarch
    openstack-nova-network-2013.1-2.el6.noarch
    openstack-nova-novncproxy-0.4-7.el6.noarch
    openstack-nova-scheduler-2013.1-2.el6.noarch
    openstack-packstack-2013.1.1-0.5.dev538.el6.noarch
    openstack-swift-1.8.0-2.el6.noarch
    openstack-swift-account-1.8.0-2.el6.noarch
    openstack-swift-container-1.8.0-2.el6.noarch
    openstack-swift-object-1.8.0-2.el6.noarch
    openstack-swift-plugin-swift3-1.0.0-0.20120711git.el6.noarch
    openstack-swift-proxy-1.8.0-2.el6.noarch
    openstack-utils-2013.1-7.el6.noarch
    parted-2.1-19.el6.x86_64
    pciutils-3.1.10-2.el6.x86_64
    perl-Config-General-2.44-1.el6.noarch
    perl-DBD-MySQL-4.013-3.el6.x86_64
    perl-DBI-1.609-4.el6.x86_64
    perl-hivex-1.3.3-4.2.el6.x86_64
    php-5.3.3-22.el6.x86_64
    php-cli-5.3.3-22.el6.x86_64
    php-common-5.3.3-22.el6.x86_64
    pixman-0.26.2-5.el6_4.x86_64
    pkgconfig-0.23-9.1.el6.x86_64
    pm-utils-1.2.5-10.el6.x86_64
    polkit-0.96-2.el6_0.1.x86_64
    pulseaudio-libs-0.9.21-14.el6_3.x86_64
    puppet-2.6.18-2.1.el6.noarch
    PyPAM-0.5.0-12.el6.x86_64
    pyparsing-1.5.6-1.el6.noarch
    pysendfile-2.0.0-3.el6.x86_64
    python-amqplib-0.6.1-2.el6.noarch
    python-anyjson-0.3.1-1.el6.noarch
    python-argparse-1.2.1-2.el6.noarch
    python-backports-ssl_match_hostname-3.2-0.2.a3.el6.noarch
    python-boto-2.5.2-3.el6.noarch
    python-chardet-2.0.1-1.el6.noarch
    python-cheetah-2.4.1-1.el6.x86_64
    python-cinder-2013.1-2.el6.noarch
    python-cinderclient-1.0.3-1.el6.noarch
    python-cliff-1.3-1.el6.noarch
    python-cmd2-0.6.4-2.el6.noarch
    python-configobj-4.6.0-3.el6.noarch
    python-crypto-2.0.1-22.el6.x86_64
    python-decorator-3.0.1-3.1.el6.noarch
    python-django-appconf-0.5-3.el6.noarch
    python-django-compressor-1.2-4.el6.noarch
    python-django-horizon-2013.1-1.el6.noarch
    python-django-openstack-auth-1.0.7-1.el6.noarch
    python-eventlet-0.9.17-2.el6.noarch
    python-glance-2013.1-1.el6.noarch
    python-glanceclient-0.8.0-2.el6.noarch
    python-greenlet-0.3.1-12.el6.x86_64
    python-httplib2-0.7.7-1.el6.noarch
    python-iso8601-0.1.4-2.el6.noarch
    python-jsonschema-0.2-1.el6.noarch
    python-keyring-0.7-1.el6.noarch
    python-keystone-2013.1-1.el6.noarch
    python-keystoneclient-0.2.3-2.el6.noarch
    python-kombu-1.1.3-1.el6.noarch
    python-ldap-2.3.10-1.el6.x86_64
    python-libguestfs-1.16.34-2.el6.x86_64
    python-lxml-2.2.3-1.1.el6.x86_64
    python-markdown-2.0.1-3.1.el6.noarch
    python-memcached-1.43-6.el6.noarch
    python-migrate-0.6-6.el6.noarch
    python-netaddr-0.7.5-4.el6.noarch
    python-netifaces-0.5-1.el6.x86_64
    python-nose-0.10.4-3.1.el6.noarch
    python-nova-2013.1-2.el6.noarch
    python-novaclient-2.13.0-1.el6.noarch
    python-ordereddict-1.1-2.el6.noarch
    python-oslo-config-1.1.0-1.el6.noarch
    python-paramiko-1.7.5-2.1.el6.noarch
    python-passlib-1.5.3-1.el6.noarch
    python-paste-1.7.4-2.el6.noarch
    python-paste-deploy1.5-1.5.0-5.el6.noarch
    python-prettytable-0.6.1-1.el6.noarch
    python-pyasn1-0.0.12a-1.el6.noarch
    python-pygments-1.1.1-1.el6.noarch
    python-qpid-0.14-11.el6_3.noarch
    python-quantumclient-2.2.1-2.el6.noarch
    python-requests-1.1.0-3.el6.noarch
    python-routes1.12-1.12.3-4.el6.noarch
    python-saslwrapper-0.14-1.el6.x86_64
    python-setuptools-0.6.10-3.el6.noarch
    python-six-1.1.0-2.el6.noarch
    python-sqlalchemy-0.5.5-3.el6_2.noarch
    python-sqlalchemy0.7-0.7.8-1.el6.x86_64
    python-stevedore-0.8-1.el6.noarch
    python-swiftclient-1.3.0-1.el6.noarch
    python-tempita-0.4-2.el6.noarch
    python-urllib3-1.5-5.el6.noarch
    python-versiontools-1.9.1-3.el6.noarch
    python-warlock-0.4.0-2.el6.noarch
    python-webob-1.2.3-4.el6.noarch
    python-websockify-0.2.0-4.el6.noarch
    pytz-2010h-2.el6.noarch
    pyxattr-0.5.0-1.el6.x86_64
    qemu-img-0.12.1.2-2.355.el6_4.2.x86_64
    qemu-kvm-0.12.1.2-2.355.el6_4.2.x86_64
    qpid-cpp-client-0.14-22.el6_3.x86_64
    qpid-cpp-server-0.14-22.el6_3.x86_64
    radvd-1.6-1.el6.x86_64
    rpcbind-0.2.0-11.el6.x86_64
    rsync-3.0.6-9.el6.x86_64
    ruby-1.8.7.352-10.el6_4.x86_64
    ruby-augeas-0.4.1-1.el6.x86_64
    ruby-libs-1.8.7.352-10.el6_4.x86_64
    ruby-shadow-1.4.1-13.el6.x86_64
    saslwrapper-0.14-1.el6.x86_64
    scrub-2.2-1.el6.x86_64
    scsi-target-utils-1.0.24-2.el6.x86_64
    seabios-0.6.1.2-26.el6.x86_64
    sg3_utils-1.28-4.el6.x86_64
    sg3_utils-libs-1.28-4.el6.x86_64
    sgabios-bin-0-0.3.20110621svn.el6.noarch
    spice-server-0.12.0-12.el6.x86_64
    strace-4.5.19-1.17.el6.x86_64
    tunctl-1.5-3.el6.x86_64
    tuned-0.2.19-11.el6.1.noarch
    usbredir-0.5.1-1.el6.x86_64
    vconfig-1.9-8.1.el6.x86_64
    vgabios-0.6b-3.7.el6.noarch
    xinetd-2.3.14-38.el6.x86_64
    xz-4.999.9-0.3.beta.20091007git.el6.x86_64
    xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.x86_64
    yajl-1.0.7-3.el6.x86_64
    

    つぎに、セットアップ出力です。
    [root@rdo1 ~]# packstack --allinone
    Welcome to Installer setup utility
    Packstack changed given value  to required value /root/.ssh/id_rsa.pub
    
    Installing:
    Clean Up...                                              [ DONE ]
    Adding pre install manifest entries...                   [ DONE ]
    Setting up ssh keys...root@<IP Address>'s password:      [ DONE ]
    Adding MySQL manifest entries...                         [ DONE ]
    Adding QPID manifest entries...                          [ DONE ]
    Adding Keystone manifest entries...                      [ DONE ]
    Adding Glance Keystone manifest entries...               [ DONE ]
    Adding Glance manifest entries...                        [ DONE ]
    Adding Cinder Keystone manifest entries...               [ DONE ]
    Installing dependencies for Cinder...                    [ DONE ]
    Checking if the Cinder server has a cinder-volumes vg... [ DONE ]
    Adding Cinder manifest entries...                        [ 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 ]
    Adding Nova Compute manifest entries...                  [ DONE ]
    Adding Nova Network manifest entries...                  [ DONE ]
    Adding Nova Scheduler manifest entries...                [ DONE ]
    Adding Nova VNC Proxy manifest entries...                [ DONE ]
    Adding Nova Common manifest entries...                   [ DONE ]
    Adding OpenStack Client manifest entries...              [ DONE ]
    Adding Horizon manifest entries...                       [ DONE ]
    Adding Swift Keystone manifest entries...                [ DONE ]
    Adding Swift builder manifest entries...                 [ DONE ]
    Adding Swift proxy manifest entries...                   [ DONE ]
    Adding Swift storage manifest entries...                 [ DONE ]
    Adding Swift common manifest entries...                  [ DONE ]
    Preparing servers...                                     [ DONE ]
    Adding Nagios server manifest entries...                 [ DONE ]
    Adding Nagios host manifest entries...                   [ DONE ]
    Adding post install manifest entries...                  [ DONE ]
    Installing Dependencies...                               [ DONE ]
    Copying Puppet modules and manifests...                  [ DONE ]
    Applying Puppet manifests...
    Applying <IP Address>_prescript.pp
    <IP Address>_prescript.pp :                              [ DONE ]
    Applying <IP Address>_mysql.pp
    Applying <IP Address>_qpid.pp
    <IP Address>_mysql.pp :                                  [ DONE ]
    <IP Address>_qpid.pp :                                   [ DONE ]
    Applying <IP Address>_keystone.pp
    Applying <IP Address>_glance.pp
    Applying <IP Address>_cinder.pp
    <IP Address>_keystone.pp :                               [ DONE ]
    <IP Address>_glance.pp :                                 [ DONE ]
    <IP Address>_cinder.pp :                                 [ DONE ]
    Applying <IP Address>_api_nova.pp
    <IP Address>_api_nova.pp :                               [ DONE ]
    Applying <IP Address>_nova.pp
    Applying <IP Address>_osclient.pp
    Applying <IP Address>_horizon.pp
    <IP Address>_nova.pp :                                   [ DONE ]
    <IP Address>_osclient.pp :                               [ DONE ]
    <IP Address>_horizon.pp :                                [ DONE ]
    Applying <IP Address>_ring_swift.pp
    <IP Address>_ring_swift.pp :                             [ DONE ]
    Applying <IP Address>_swift.pp
    Applying <IP Address>_nagios.pp
    Applying <IP Address>_nagios_nrpe.pp
    <IP Address>_swift.pp :                                  [ DONE ]
    <IP Address>_nagios.pp :                                 [ DONE ]
    <IP Address>_nagios_nrpe.pp :                            [ DONE ]
    Applying <IP Address>_postscript.pp
    <IP Address>_postscript.pp :                             [ DONE ]
                                                             [ DONE ]
    
     **** Installation completed successfully ******
    
    
    Additional information:
     * A new answerfile was created in: /root/packstack-answers-20130501-114203.txt
     * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
     * Did not create a cinder volume group, one already existed
     * To use the command line tools you need to source the file /root/keystonerc_admin created on <IP Address>
     * To use the console, browse to http://<IP Address>/dashboard
     * To use Nagios, browse to http://<IP Address>/nagios username : nagiosadmin, password : XXXXXXXXXXXXXXXX
     * The installation log file is available at: /var/tmp/packstack/20130501-114203-iaUy4t/openstack-setup.log
     

  10. ブラウザからアクセスする

  11. http://<IP Address>/dashboard にアクセスすることで、OpenStack のダッシュボード、 http://<IP Address>/nagios で、Nagios の管理画面にログインできます。
    ダッシュボードのユーザ名とパスワードは、 /root/keystonerc_admin に書かれています。
    [root@rdo1 ~]# cat /root/keystonerc_admin
    export OS_USERNAME=admin
    export OS_TENANT_NAME=admin
    export OS_PASSWORD=XXXXXXXXXXXXXXXX
    export OS_AUTH_URL=http://<IP Address>/v2.0/
    export PS1='[\u@\h \W(keystone_admin)]\$ ''
    

    Nagios のユーザ名とパスワードは、セットアップ出力の最後の方、『* To use Nagios, browse to http://<IP Address>/nagios username : nagiosadmin, password : XXXXXXXXXXXXXXXX』の行のものを利用します。


OpenStack Dashboard


Nagios

ここまでのセットアップでおよそ 15分程度、OpenStack に関して複雑なイメージを持つ方も多いかと思いますが、非常に簡単利用できるよう設計されている印象です。(実際に深く掘り下げていくと複雑なのですが・・・)


今回はここまでです。

OpenStack は魅力的なのだけど、何だか複雑で取っ付きにくい、と感じていた方は是非チャレンジしてみてはいかがでしょうか。

0 件のコメント:

コメントを投稿