テクニカルタイムアウト

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を参照する。

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
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
sudo yum install -y instack-undercloud
export NODE_DIST=centos7
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の起動終了

virsh list --all
virsh start DOMAIN_NAME_OR_UUID
virsh shutdown DOMAIN_NAME_OR_UUID
virsh destroy DOMAIN_NAME_OR_UUID
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を参照のこと。

ssh root@192.168.122.83
su - stack
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
sudo yum -y install yum-plugin-priorities
sudo yum install -y python-tripleoclient
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"
モバイルバージョンを終了