OpenStack(1)TripleOを用いてMitakaをインストールする

インストーラ

OpenStackのインストール方法は、選択したコンポーネントを1つずつインストールしていく方法と、インストーラを使って自動的にシステム構築を行う方法とがある。OpenStackのインストーラは複数提供されていて、代表的なものにpackstackや、TripleO(Openstack on OpenStack)などが存在する。packstackは、answerファイルと呼ばれる設定ファイルに内容を記述するだけで非常に簡単に環境構築が可能である一方で、高可用性(HA)設定や負荷分散設定などには対応していない。そのためkiloからは「OSP director」(RedHat系ではTripleO)と呼ばれるインストーラが新たに公開され複雑な設定も可能となっている。

TripleO(OpenStack on OpenStack)

TripleOは、OpenStack on OpenStackの名の通り、OpenStack上でOpenStackの構築を行う。クラウド構築基盤である下レイヤ部分をUnderCloud、コントローラノードやコンピュートノードなどが存在する上レイヤ部分をOverCloudと呼ぶ。UnderCloudは、通常directorと呼ばれる環境構築用の端末1台のみで構成される。

資料

現在のところTripleOを扱った資料はほとんど存在しない。公式ページで提供されているドキュメントが最も分りやすい。


環境構築

UndercloudおよびOvercloudの設定にあたって必要となる環境の設定を行う。
デフォルト値が定められており、それ以外の値にする場合は変更が必要となるので注意すること。
詳細は、Environment Setupを参照する。

  • CentOS 7(64bit版)のインストール
  • インストール用ユーザ(stack)の作成
sudo useradd stack
sudo passwd stack  # specify a password
echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
  • インストール用ユーザ(stack)でログイン
su - stack
  • 必要なリポジトリの有効化
sudo yum -y install epel-release
sudo curl -o /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7/current-tripleo/delorean.repo
sudo curl -o /etc/yum.repos.d/delorean-current.repo https://trunk.rdoproject.org/centos7/current/delorean.repo
sudo /bin/bash -c "cat <<EOF>>/etc/yum.repos.d/delorean-current.repo

includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-cloud-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,tripleo-common,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules
EOF"
sudo curl -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
  • instack-undercloudのインストール
sudo yum install -y instack-undercloud
  • 環境変数の設定
export NODE_DIST=centos7
  • 仮想環境構築スクリプトの実行
    全ての処理が終了すると、作成された仮想環境のIPアドレスが表示される。
cd ~
instack-virt-setup

instack vm IP address is 192.168.122.83
You can connect by running:
ssh root@192.168.122.83
And then su to the stack user:
su - stack

KVM ゲストOSの管理

Undercloudは、KVM上の仮想環境にて構築されている。
仮想環境へのログインは、SSHもしくはvirshのコンソールを使うとよい。

ゲストOSの起動終了

  • ゲストOSの確認
virsh list --all
  • ゲストOSの起動
virsh start DOMAIN_NAME_OR_UUID
  • ゲストOSの終了
virsh shutdown DOMAIN_NAME_OR_UUID
virsh destroy DOMAIN_NAME_OR_UUID
  • ゲストOSの削除
virsh undefine DOMAIN_NAME_OR_UUID

設定の確認

  • 設定の出力
virsh dumpxml DOMAIN_NAME_OR_UUID
  • 設定の変更
virsh edit DOMAIN_NAME_OR_UUID

コンソールログイン

コンソールでログインする場合は、以下の設定が含まれているか確認する。

virsh edit DOMAIN_NAME_OR_UUID

<device>
  <serial type='pty'>
    <target port='0'/>
  </serial>
  <console type='pty'>
    <target type='serial' port='0'/>
  </console>
</device>
  • コンソールでログイン
virsh console DOMAIN_NAME_OR_UUID

Undercloudの構築

Undercloudのインストールと、コンポーネントのアップデートを行う。
詳細は、Undercloud Installationを参照のこと。

  • 仮想環境にインストール用ユーザ(stack)でログイン
ssh root@192.168.122.83
su - stack
  • SELinuxの設定をpermissiveに変更
vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
  • 必要なリポジトリの有効化
sudo yum -y install epel-release
sudo sed -i 's/\[delorean\]/\[delorean-current\]/' /etc/yum.repos.d/delorean-current.repo
sudo /bin/bash -c "cat <<EOF>>/etc/yum.repos.d/delorean-current.repo

includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-cloud-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,tripleo-common,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules
EOF"
sudo curl -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo
  • yumリポジトリの優先度設定
    Deloreanリポジトリが、RDOリポジトリよりも優先されるように設定
sudo yum -y install yum-plugin-priorities
  • TripleOクライアントのインストール
sudo yum install -y python-tripleoclient
  • Undercloudののインストール
openstack undercloud install

#############################################################################
Undercloud install complete.

The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.

There is also a stackrc file at /home/stack/stackrc.

These files are needed to interact with the OpenStack services, and should be
secured.

#############################################################################

Overcloudのデプロイ

環境変数の読み込み

source stackrc
export NODE_DIST=centos7
export USE_DELOREAN_TRUNK=1
export DELOREAN_TRUNK_REPO="https://trunk.rdoproject.org/centos7/current-tripleo/"
export DELOREAN_REPO_FILE="delorean.repo"