SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

オープンソースのクラウド基盤「OpenStack」で試すクラウドオーケストレーション~環境構築からスタックの作成まで

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第15回

OpenStack環境の構築

 それでは、実際にHeatを試してみるために、OpenStack環境を用意してみましょう。OpenStackの導入については、ブログやスライドなどでさまざまな方法が紹介されているので、自分の環境に合った方法を探してみてください。中でも、CentOSとPackStackを利用する方法が簡単なので、今回はそちらの手順を紹介します。

OpenStackサーバの準備

 今回OpenStackを導入した環境は以下のとおりです。

  • OS: CentOS-6.5-x86_64-minimal
  • メモリ: 48GB
  • ディスク: 75GB
  • ネットワーク(デバイス名やIPアドレスは環境に合わせて読み替えてください)
DEVICE=eth0
TYPE=Ethernet
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1  # サーバの固定IPアドレス
NETMASK=255.255.255.0 # ネットワークのサブネットマスク
GATEWAY=192.168.0.254 # デフォルトゲートウェイのIPアドレス

 OpenStack導入前に以下の設定を行います。なお、これ以降の手順ですべてrootユーザで行っています。

DNSの設定

 DNSが設定されていない場合は、 /etc/resolv.conf にDNSのIPアドレスを記述します。

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Proxyの設定

 外部との通信にProxyサーバを経由する場合は、環境変数にProxyの設定を行います。その際は、OpenStackのコンポーネント間での通信がProxyサーバを経由しないよう、サーバのIPアドレスをno_proxyに設定しておきます。

export http_proxy=http://<proxy_host>:<proxy_port>/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export no_proxy=localhost,127.0.0.1,192.168.0.1

SELinuxの設定

 PackStack実行時のエラーを回避するため、SELinuxをPermissiveモードに設定します。

sed -i "s/SELINUX=.*/SELINUX=permissive/" /etc/selinux/config
setenforce 0

カーネルパラメータの設定

 OpenStackは、パケット送受信やフィルタリングなどをiptablesで制御します。ネットワークブリッジ上でもiptablesによる制御が有効になるよう、カーネルパラメータの設定を変更します。

sed -i -e "s/^net.bridge.bridge-nf-call-ip6tables = 0/net.bridge.bridge-nf-call-ip6tables = 1/" /etc/sysctl.conf
sed -i -e "s/^net.bridge.bridge-nf-call-iptables = 0/net.bridge.bridge-nf-call-iptables = 1/" /etc/sysctl.conf
sed -i -e "s/^net.bridge.bridge-nf-call-arptables = 0/net.bridge.bridge-nf-call-arptables = 1/" /etc/sysctl.conf

パッケージの最新化

 インストールされているパッケージを最新版にアップデートしておきます。

yum update -y

PackStackによるOpenStackの導入

 PackStackはRDOコミュニティが提供しているOpenStackのインストールツールです。RHEL、Fedora、CentOSといったOSに、簡単にOpenStackを導入することができます。

 RDOのパッケージとPackStackを取得します。

yum install -y http://rdo.fedorapeople.org/rdo-release.rpm
yum install -y openstack-packstack

Answer Fileの設定

 Answer Fileと呼ばれる設定ファイルを作成します。

packstack --gen-answer-file answer.txt

 Answer Fileには、インストールするコンポーネント、ホストのURL、DBやユーザ名やパスワードといったパラメータが記述されています。Answer Fileを作成せずにデフォルトの設定でPackStackを実行することも可能ですが、アップデートなどでデフォルトパラメータが変更になっていることがあるため、事前にパラメータを確認しておくことをお勧めします。

 今回は、デフォルトの設定から以下のパラメータを変更します。

CONFIG_HEAT_INSTALL, CONFIG_HEAT_CLOUDWATCH_INSTALL, ONFIG_HEAT_CFN_INSTALL

 Heatと関連モジュールのインストールの有無を設定します。本稿執筆時ではデフォルトでn(No)になっているため、y(Yes)に変更します。

CONFIG_NTP_SERVERS

 NTPサーバのアドレスを設定します。デフォルトでは設定されていないため、任意のNTPサーバを指定しておきます。

CONFIG_KEYSTONE_ADMIN_PW

 adminユーザのパスワードを設定します。ランダムな文字列が設定されているので、任意のパスワードに変更しておきます。

CONFIG_KEYSTONE_TOKEN_FORMAT

 認証トークンのフォーマットを設定します。デフォルトのPKIはトークン長が大きく非常に見づらいので、UUIDに変更しておきます。

CONFIG_CINDER_VOLUMES_SIZE

 ブロックストレージに割り当てるボリュームサイズを設定します。デフォルトでは20GBですが、環境に合わせて調整します。

CONFIG_PROVISION_DEMO

 デモ用の環境を構築するかどうか設定します。今回は不要なのでn(No)にしておきます。

sed -i -e "s/^CONFIG_HEAT_INSTALL=n/CONFIG_HEAT_INSTALL=y/" answer.txt
sed -i -e "s/^CONFIG_HEAT_CLOUDWATCH_INSTALL=n/CONFIG_HEAT_CLOUDWATCH_INSTALL=y/" answer.txt
sed -i -e "s/^CONFIG_HEAT_CFN_INSTALL=n/CONFIG_HEAT_CFN_INSTALL=y/" answer.txt
sed -i -e "s/^CONFIG_NTP_SERVERS=.*/CONFIG_NTP_SERVERS=ntp.nict.jp/" answer.txt
sed -i -e "s/^CONFIG_KEYSTONE_ADMIN_PW=.*/CONFIG_KEYSTONE_ADMIN_PW=admin_password/" answer.txt
sed -i -e "s/^CONFIG_KEYSTONE_TOKEN_FORMAT=PKI/CONFIG_KEYSTONE_TOKEN_FORMAT=UUID/" answer.txt
sed -i -e "s/^CONFIG_CINDER_VOLUMES_SIZE=.*/CONFIG_CINDER_VOLUMES_SIZE=16G/" answer.txt
sed -i -e "s/^CONFIG_PROVISION_DEMO=y/CONFIG_PROVISION_DEMO=n/" answer.txt

OpenStackのインストール

 設定したAnswer Fileを指定してPackStackを実行します。

packstack --answer-file answer.txt

 最初にrootユーザのパスワードを聞かれるので、パスワードを入力します。その後は、puppetが実行され、コンポーネントのインストールや設定が自動的に行われます。今回の環境では、40分程でインストールが完了しました。

 インストールが完了すると、keystonerc_adminというadminユーザの認証情報が記述されたファイルが作成されます。

注記

 RDOのバグによりインストール中に「Failed to call refresh: Could not find command 'restorecon'」というエラーが発生する場合がありますが、再度PackStackを実行するとエラーなくインストールが継続されます。

次のページ
OpenStackの環境設定

この記事は参考になりましたか?

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

冨永 善視(TIS株式会社)(トミナガ ヨシミ)

TIS株式会社 戦略技術センター所属。デザイン指向クラウドオーケストレーションソフトウェア「CloudConductor」の開発およびクラウド関連技術の調査・検証に従事。新人の頃からOpenStack環境の構築を担当し、IaaS管理者として経験を積む。最近ではRedHatのエキスパート認定―Infr...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7897 2014/07/24 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー