SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
RDO Neutron Quickstart Plus
単体構成編
++++++++++++++++++++++++++++++++
最終更新日: 2014/3/26
■この文書について
この文書はとりあえず1台に全部入りのOpenStack Havana環境をさくっと構築する場合
の手順を説明しています。
サーバーとは別途、クライアントを用意して、同じネットワークに接続します。
この文書は以下の公開資料を元にしています。
RDO Neutron Quickstart
http://openstack.redhat.com/Neutron-Quickstart
http://openstack.redhat.com/Neutron_with_existing_external_network
Step 0: 要件
Software:
・Red Hat Enterprise Linux (RHEL) 6.4以降
・RHEL互換OSのバージョン6.4以降(CentOSなど..)
・Fedora 19
Hardware:
・CPU 2Core以上
・メモリー4GB以上
・最低1つのNIC
※All-in-oneの構成を作る場合は、Privateネットワーク用はloインターフェイスを利用
できます。
Network:
・インターネットにアクセスできる環境
訳注:
本書では次のネットワーク構成を利用します。
Public Network
192.168.1.0/24
OpenStack Host
192.168.1.10/24
Private Network
192.168.0.0/24
Other:
・OpenStackノードに以下のように設定
>--
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #変更
net.ipv4.conf.default.rp_filter = 0 #変更
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.ipv4.conf.all.rp_filter = 0 #追記
net.ipv4.conf.all.forwarding = 1 #追記
# sysctl -e -p /etc/sysctl.conf
(設定を反映)
--<
/etc/rc.localファイルに追記
>--
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables
--<
【参考】
・公式ガイド Compute
http://docs.openstack.org/admin-guide-cloud/content/ch_introduction-
to-openstack-compute.html#section_network-troubleshoot
※仮想化上で実行する場合は、CPUの設定で「仮想化支援機能」を有効にしてください。
Step 1: ソフトウェアリポジトリの追加
ソフトウェアパッケージのインストールとアップデートを行う。
Neutron環境の構築にはSELinuxの設定変更が必要なので設定完了後、一旦再起動する。
次のコマンドを実行:
>--
# yum install -y http://rdo.fedorapeople.org/openstack-havana/rdo-
release-havana.rpm
--<
Note: Due to the quantum/neutron rename, SELinux policies are
currently broken for Havana, so SELinux must be disabled/permissive
on machines running neutron services, edit /etc/selinux/config to
set SELINUX=permissive.
システムアップデートの実施:
>--
# yum -y update
# reboot
--<
Step 2: Packstackおよび必要パッケージのインストール
以下のようにコマンドを実行します。
>--
# yum install -y openstack-packstack python-netaddr
--<
Step 3:アンサーファイルを生成
以下のようにコマンドを実行します。
>--
# packstack --gen-answer-file=answer.txt
(answer.txtという名前のファイルを作成する場合)
--<
アンサーファイルを使うことで定義した環境でOpenStackをデプロイできます。
作成したアンサーファイルは1台のマシンにすべてをインストールする設定が行われていま
す。IPアドレスや各種パスワードなどを適宜設定します。
Step 4:アンサーファイルを自分の環境に合わせて設定
とりあえず1台構成のOpenStack環境を作るには最低限以下のパラメータを設定します。
・アンサーファイルのIPアドレス部分を自IPアドレスに変更(複数個所)
・NICを利用したいものに変更する
CONFIG_NOVA_COMPUTE_PRIVIF=lo
CONFIG_NOVA_NETWORK_PRIVIF=lo
CONFIG_NOVA_NETWORK_PUBIF=eth0
・Dashboardにアクセスするパスワード
CONFIG_KEYSTONE_ADMIN_PW=admin
・テスト用demoユーザーとかネットワークを作らないようにする
CONFIG_PROVISION_DEMO=n
Step 5: Packstackを実行してOpenStackのインストール
設定を書き換えたアンサーファイルを使ってOpenStackを導入するには、次のようにアン
サーファイルを指定して実行します。
>--
# packstack --answer-file=/root/answer.txt
--<
Step 6: ネットワーク設定の変更
次に外部と通信できるようにするための設定を行います。
http://openstack.redhat.com/Neutron_with_existing_external_network
◆public用として使うNICの設定ファイルを修正
packstack実行後、eth0をbr-exにつなぐように設定をします(※BOOTPROTOは設定しな
い)
eth0からIPアドレス、サブネットマスク、ゲートウェイの設定を削除して次の項目だけを
記述し、br-exの方に設定を書き込みます。
>--
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=52:54:00:92:05:AE # your eth0's hwaddr
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
--<
◆ブリッジインターフェイスの作成
br-exにeth0のIPアドレスを設定します。
>--
# vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.140
NETMASK=255.255.255.0 # netmask
GATEWAY=192.168.1.1 # gateway
DNS1=8.8.8.8 # nameserver
DNS2=8.8.4.4
--<
/etc/neutron/plugin.iniに次の設定を追加します。
>--
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex
--<
ここまでできたらいったんホストを再起動します。
>--
# reboot
--<
Step 7: ネットワークの追加
br-exにeth0を割り当てて仮想マシンをハイパーバイザー外部と通信できるようにする為
の経路が確保されていることを確認します。
>--
# ovs-vsctl show
903f6cd5-29f3-4b8d-9cda-3411ddf98ecb
Bridge br-int
Port "qr-4c4fb9f1-a6"
tag: 1
Interface "qr-4c4fb9f1-a6"
type: internal
Port br-int
Interface br-int
type: internal
Port "tap80d3399f-1e"
tag: 1
Interface "tap80d3399f-1e"
type: internal
Bridge br-ex
Port "qg-bca7776d-14"
Interface "qg-bca7776d-14"
type: internal
Port br-ex
Interface br-ex
type: internal
Port "eth0"
Interface "eth0"
ovs_version: "1.11.0"
--<
OSやハードウェア側の設定が終わったら、OpenStackが利用するネットワークを作成して
みましょう。OpenStackにおけるネットワークの設定は以下の順で行います。
・ルーターを作成
・ネットワークを作成
・ネットワークサブネットを作成
OpenStackの環境構成をコマンドで実行する場合は、/root/keystonerc_adminファイ
ルをsourceコマンドで読み込んでから実行してください。
>--
# source keystonerc_admin
—<
それでは順に行っていきましょう。
◆ルーターの作成
ルーターの作成は次のようにコマンドを実行します。
>--
# neutron router-create router1
--<
◆ネットワークの作成
ネットワークの作成は次のようにコマンドを実行します。
・パブリックネットワークの場合
>--
# neutron net-create public --tenant-id
2b0260a2580842abab33b56dae6a145f --router:external=True
--<
net-createコマンドの先頭にはまずネットワーク名を記述します。tenant-idは
「keystone tenant-list」で出力される中から「テナント」を指定します。
router:external=Trueは外部ネットワークとして指定するかしないかを設定します。プ
ライベートネットワークを作る場合は指定する必要はありません。
・プライベートネットワークの場合
>--
# neutron net-create demo-net --tenant-id
20a6abed5e8549f29a76fa26b2b1c8db --shared
--<
ネットワークを共有するには--sharedオプションを付けて実行します。
◆ネットワークサブネットの登録
ネットワークで利用するサブネットを定義します。
>--
# neutron subnet-create --name public_subnet --enable_dhcp=False --
allocation-pool=start=192.168.1.241,end=192.168.1.254 --
gateway=192.168.1.1 public 192.168.1.0/24
Created a new subnet:
(略)
--<
これでpublic側ネットワークにサブネットなどを登録することができました。
次にdemo-net(プライベート)側に登録してみます。
>--
# neutron subnet-create --name demo-net_subnet --enable_dhcp=True --
allocation-pool=start=192.168.0.100,end=192.168.0.254 --
gateway=192.168.0.1 --dns-nameserver 8.8.8.8 demo-net 192.168.0.0/24
Created a new subnet:
(略)
--<
◆ゲートウェイの設定
作成したルーター(router1)とパブリックネットワークを接続するため、「ゲートウェイ
の設定」を行います。
>--
# neutron router-gateway-set router1 public
Set gateway for router router1
--<
◆外部ネットワークと内部ネットワークの接続
最後にプライベートネットワークを割り当てたインスタンスがFloating IPを割り当てら
れたときに外に出られるようにするために「ルーターにインターフェイスの追加」を行いま
す。
>--
# neutron router-interface-add router1 subnet=demo-net_subnet
Added interface xxxx-xxxx-xxxx-xxxx-xxxx to router router1.
--<
routerはneutron router-listコマンドで確認、サブネットはneutron subnet-
listコマンドで確認することができます。
Step 8: ユーザーの追加
次に、ユーザーの追加を行います。
ユーザーを作成する前にユーザーをどのテナント、つまりどのグループに追加するか考えま
す。作成したテナントにロール、つまり権限を割り振ることで指定した権限を持つユーザー
をテナントに追加できます。
ここでは例として、demoというテナントを作り、そのテナントにdemoユーザーを追加する
流れを説明します。demoユーザーには利用に最低限必要なMemberの権限を割り当てます。
まず、登録済みのテナントを確認します。
>--
# keystone tenant-list
+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| 2b0260a2580842abab33b56dae6a145f | admin | True |
| 20a6abed5e8549f29a76fa26b2b1c8db | services | True |
+----------------------------------+----------+---------+
(テナントリストの表示)
--<
次にテナントを登録します。
>--
# keystone tenant-create --name demo --enable true
(テナントdemoの作成)
--<
追加したテナントが登録されていることを確認します。
>--
# keystone tenant-list
+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| 2b0260a2580842abab33b56dae6a145f | admin | True |
| f1217f04d6f94a7ca3df1f4d6122322d | demo | True |
| 20a6abed5e8549f29a76fa26b2b1c8db | services | True |
+----------------------------------+----------+---------+
(テナントの確認)
--<
demoユーザーを作成してみます。パスワードはdemoにします。
>--
# keystone user-create --name demo --pass demo --tenant demo --email
demo@example.com --enabled true
--<
ユーザー作成コマンドはkeystone user-createです。
パラメータはいくつかあるので--helpで確認。--nameがユーザー名、--passがパスワー
ド、--tenantはテナント(Horizonではプロジェクト)名、--enabledは有効化の可否を
指定します。
tenantはHorizonで登録されている「プロジェクト」を確認するか、コマンドでは次のコ
マンドで確認できます。
demoユーザーにMember権限を割り当てます。
>--
# keystone user-role-add --user demo --tenant demo --role Member
(demoユーザーをdemoテナントに追加してMemberロールを割り当て)
--<
作成したテナント、ユーザーを最後に確認しましょう。
>--
# keystone tenant-list
(テナントリストの確認)
# keystone user-list
(ユーザーリストの確認)
--<
以上で、ユーザーdemoでOpenStack環境を利用可能になります。
ユーザーはadminユーザーが設定した共有ネットワークを使ってインスタンスでネットワー
ク接続できます。また、Floating IPを割り当てることで外部PCからインスタンスにアク
セスできます。
もちろん、ユーザーが独自のネットワークを作ることもできます。その場合は次のように行
います。
・ルーターを作成
・サブネットを作成
・作成したサブネットとルーターをpublicネットワークとつなぐ
Step 9: Novaの設定変更
デフォルト設定のままインストールした場合、Novaは仮想化基盤にqemuを利用するように
なっています。パフォーマンスを上げるには以下のように設定を変更します。
KVMモジュールが読み込まれていることを確認します。
>--
# lsmod | grep kvm
kvm_intel 54285 6
kvm 332980 1 kvm_intel
(Intel CPUの場合)
kvm 332980 1 kvm_amd
(AMD CPUの場合)
# vi /etc/nova/nova.conf
(略)
libvirt_type=kvm
#libvirt_type=qemu
(設定を変更)
--<
■動作確認
・「セキュリティグループ」でICMPとSSHを有効化
・インスタンスを起動
・ボリュームの作成
・ボリュームをインスタンスに接続
・dmesg | grep vdでディスク認識を確認
利用するインスタンスは以下からダウンロードできます。
Cirros
http://download.cirros-cloud.net
※0.3.1以上のバージョンを利用してください。
CentOS
http://repos.fedorapeople.org/repos/openstack/guest-images/
Fedora
http://fedoraproject.org/en/get-fedora#clouds
Ubuntu
http://cloud-images.ubuntu.com
・Floating IPをインスタンスに割り当て
・ホストにSSHアクセスしてそこからインスタンスにアクセス(※下記注)
■FAQ
Q1:RDOで環境構築中、タイムアウトエラーがおき、スクリプトが停止しました。
A1:何も設定変更を加えずにもう一度実行し直すと上手くいく場合があります。
ネットワークアクセスと名前解決が頻繁にあり、それらが上手くいかないとスクリプトが途
中で終了することがあるようです。
Q2:ゲートウェイがDOWNなんですけど
A2:無視
Q3:ステータスを確認するには?
A3:openstack-statusコマンドを実行!
Q4:openstack-statusコマンドを実行するとサービスの一部が動いていないようです
A4:「RDO Neutron Quickstart」の末尾に注意書きがあります
If you installed the updated kernel and rebooted prior to running
packstack, everything should work. If you installed the updated
kernel as part of running packstack, you will need to reboot when
packstack completes to boot into the new kernel. This reboot will
cause br-ex to reset, so after the reboot you will need to re-run
packstack as shown below:
>--
# packstack --answer-file=~/packstack-answers-*.txt
--<
同じアンサーファイルを使って、もう一度packstackを実行すると良いようです。
Q5:仮想ネットワークを作り直したい
A5:手順はこんな感じ
>--
# source /root/keystonerc_admin
# neutron router-gateway-clear router1
# neutron subnet-delete public_subnet
--<
※Floating IPが発行されているとneutron subnet-deleteコマンドの実行に失敗する
作り直して再割り当て
>--
# neutron subnet-create --name public_subnet --enable_dhcp=False --
allocation-pool=start=192.168.1.241,end=192.168.1.254 --
gateway=192.168.1.1 public 192.168.1.0/24
--<
Q6:日本語キーボードがつかえない
A6:コンピュートノードのnova.confに以下のように追記
>--
# vi /etc/nova/nova.conf
(略)
# keymap for vnc (string value)
#vnc_keymap=en-us
vnc_keymap=ja #追加する行
# service openstack-nova-compute reload
--<
※ただし、OS側が日本語キーボードに対応している必要がある。
(Cirrosは日本語キーボードを英語キーマップ認識で利用可能)
Q7:作成したdemoユーザーの権限でコマンド操作するには
A7:keystonerc_adminを編集して利用します
>--
# cp /root/keystonerc_admin /root/keystonerc_demo
(keystonercをコピー)
# vi /root/keystonerc_demo
export OS_USERNAME=demo
export OS_TENANT_NAME=demo
export OS_PASSWORD=demo
export OS_AUTH_URL=http://192.168.1.11:35357/v2.0/
export PS1='[u@h W(keystone_demo)]$ '
--<
設定箇所
・export OS_USERNAMEをdemo
・export OS_TENANT_NAMEをdemo
・export OS_PASSWORDをdemoユーザー作成時に設定したパスワード
・export PS1をkeystone_demoに設定
Q8:マルチノードでやるには
A8:以下公式ドキュメントを参照。
http://openstack.redhat.com/Adding_a_compute_node

Weitere ähnliche Inhalte

Mehr von VirtualTech Japan Inc.

Mehr von VirtualTech Japan Inc. (20)

MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
 
5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とは5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とは
 
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計
 
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
 
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
 
KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告
 
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
 
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
 
Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義
 
Edge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesEdge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and Kubernetes
 
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料
 
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
 
Juju 基礎編
Juju 基礎編Juju 基礎編
Juju 基礎編
 
Juju + KubernetesでGPU の活用
Juju + KubernetesでGPU の活用Juju + KubernetesでGPU の活用
Juju + KubernetesでGPU の活用
 
最近のJuju/MAAS について
最近のJuju/MAAS について最近のJuju/MAAS について
最近のJuju/MAAS について
 
Juju/MAASで作る Kubernetes + GPU
Juju/MAASで作る Kubernetes + GPUJuju/MAASで作る Kubernetes + GPU
Juju/MAASで作る Kubernetes + GPU
 
Edge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよEdge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよ
 

Havana版 RDO-QuickStart-1 (140421-Havana-RDO-QuickStart-1.pdf)

  • 1. RDO Neutron Quickstart Plus 単体構成編 ++++++++++++++++++++++++++++++++ 最終更新日: 2014/3/26 ■この文書について この文書はとりあえず1台に全部入りのOpenStack Havana環境をさくっと構築する場合 の手順を説明しています。 サーバーとは別途、クライアントを用意して、同じネットワークに接続します。 この文書は以下の公開資料を元にしています。 RDO Neutron Quickstart http://openstack.redhat.com/Neutron-Quickstart http://openstack.redhat.com/Neutron_with_existing_external_network Step 0: 要件 Software: ・Red Hat Enterprise Linux (RHEL) 6.4以降 ・RHEL互換OSのバージョン6.4以降(CentOSなど..) ・Fedora 19 Hardware: ・CPU 2Core以上 ・メモリー4GB以上 ・最低1つのNIC ※All-in-oneの構成を作る場合は、Privateネットワーク用はloインターフェイスを利用 できます。 Network: ・インターネットにアクセスできる環境 訳注: 本書では次のネットワーク構成を利用します。 Public Network 192.168.1.0/24 OpenStack Host 192.168.1.10/24 Private Network 192.168.0.0/24
  • 2. Other: ・OpenStackノードに以下のように設定 >-- # vi /etc/sysctl.conf net.ipv4.ip_forward = 1 #変更 net.ipv4.conf.default.rp_filter = 0 #変更 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 net.ipv4.conf.all.rp_filter = 0 #追記 net.ipv4.conf.all.forwarding = 1 #追記 # sysctl -e -p /etc/sysctl.conf (設定を反映) --< /etc/rc.localファイルに追記 >-- echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables --< 【参考】 ・公式ガイド Compute http://docs.openstack.org/admin-guide-cloud/content/ch_introduction- to-openstack-compute.html#section_network-troubleshoot ※仮想化上で実行する場合は、CPUの設定で「仮想化支援機能」を有効にしてください。 Step 1: ソフトウェアリポジトリの追加 ソフトウェアパッケージのインストールとアップデートを行う。 Neutron環境の構築にはSELinuxの設定変更が必要なので設定完了後、一旦再起動する。 次のコマンドを実行: >-- # yum install -y http://rdo.fedorapeople.org/openstack-havana/rdo- release-havana.rpm --< Note: Due to the quantum/neutron rename, SELinux policies are
  • 3. currently broken for Havana, so SELinux must be disabled/permissive on machines running neutron services, edit /etc/selinux/config to set SELINUX=permissive. システムアップデートの実施: >-- # yum -y update # reboot --< Step 2: Packstackおよび必要パッケージのインストール 以下のようにコマンドを実行します。 >-- # yum install -y openstack-packstack python-netaddr --< Step 3:アンサーファイルを生成 以下のようにコマンドを実行します。 >-- # packstack --gen-answer-file=answer.txt (answer.txtという名前のファイルを作成する場合) --< アンサーファイルを使うことで定義した環境でOpenStackをデプロイできます。 作成したアンサーファイルは1台のマシンにすべてをインストールする設定が行われていま す。IPアドレスや各種パスワードなどを適宜設定します。 Step 4:アンサーファイルを自分の環境に合わせて設定 とりあえず1台構成のOpenStack環境を作るには最低限以下のパラメータを設定します。 ・アンサーファイルのIPアドレス部分を自IPアドレスに変更(複数個所) ・NICを利用したいものに変更する CONFIG_NOVA_COMPUTE_PRIVIF=lo CONFIG_NOVA_NETWORK_PRIVIF=lo CONFIG_NOVA_NETWORK_PUBIF=eth0 ・Dashboardにアクセスするパスワード CONFIG_KEYSTONE_ADMIN_PW=admin
  • 4. ・テスト用demoユーザーとかネットワークを作らないようにする CONFIG_PROVISION_DEMO=n Step 5: Packstackを実行してOpenStackのインストール 設定を書き換えたアンサーファイルを使ってOpenStackを導入するには、次のようにアン サーファイルを指定して実行します。 >-- # packstack --answer-file=/root/answer.txt --< Step 6: ネットワーク設定の変更 次に外部と通信できるようにするための設定を行います。 http://openstack.redhat.com/Neutron_with_existing_external_network ◆public用として使うNICの設定ファイルを修正 packstack実行後、eth0をbr-exにつなぐように設定をします(※BOOTPROTOは設定しな い) eth0からIPアドレス、サブネットマスク、ゲートウェイの設定を削除して次の項目だけを 記述し、br-exの方に設定を書き込みます。 >-- # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes HWADDR=52:54:00:92:05:AE # your eth0's hwaddr TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex --< ◆ブリッジインターフェイスの作成 br-exにeth0のIPアドレスを設定します。 >-- # vi /etc/sysconfig/network-scripts/ifcfg-br-ex DEVICE=br-ex ONBOOT=yes DEVICETYPE=ovs TYPE=OVSBridge
  • 5. BOOTPROTO=static IPADDR=192.168.1.140 NETMASK=255.255.255.0 # netmask GATEWAY=192.168.1.1 # gateway DNS1=8.8.8.8 # nameserver DNS2=8.8.4.4 --< /etc/neutron/plugin.iniに次の設定を追加します。 >-- network_vlan_ranges = physnet1 bridge_mappings = physnet1:br-ex --< ここまでできたらいったんホストを再起動します。 >-- # reboot --< Step 7: ネットワークの追加 br-exにeth0を割り当てて仮想マシンをハイパーバイザー外部と通信できるようにする為 の経路が確保されていることを確認します。 >-- # ovs-vsctl show 903f6cd5-29f3-4b8d-9cda-3411ddf98ecb Bridge br-int Port "qr-4c4fb9f1-a6" tag: 1 Interface "qr-4c4fb9f1-a6" type: internal Port br-int Interface br-int type: internal Port "tap80d3399f-1e" tag: 1 Interface "tap80d3399f-1e" type: internal Bridge br-ex Port "qg-bca7776d-14" Interface "qg-bca7776d-14" type: internal Port br-ex Interface br-ex type: internal Port "eth0" Interface "eth0" ovs_version: "1.11.0" --< OSやハードウェア側の設定が終わったら、OpenStackが利用するネットワークを作成して
  • 6. みましょう。OpenStackにおけるネットワークの設定は以下の順で行います。 ・ルーターを作成 ・ネットワークを作成 ・ネットワークサブネットを作成 OpenStackの環境構成をコマンドで実行する場合は、/root/keystonerc_adminファイ ルをsourceコマンドで読み込んでから実行してください。 >-- # source keystonerc_admin —< それでは順に行っていきましょう。 ◆ルーターの作成 ルーターの作成は次のようにコマンドを実行します。 >-- # neutron router-create router1 --< ◆ネットワークの作成 ネットワークの作成は次のようにコマンドを実行します。 ・パブリックネットワークの場合 >-- # neutron net-create public --tenant-id 2b0260a2580842abab33b56dae6a145f --router:external=True --< net-createコマンドの先頭にはまずネットワーク名を記述します。tenant-idは 「keystone tenant-list」で出力される中から「テナント」を指定します。 router:external=Trueは外部ネットワークとして指定するかしないかを設定します。プ ライベートネットワークを作る場合は指定する必要はありません。 ・プライベートネットワークの場合 >-- # neutron net-create demo-net --tenant-id 20a6abed5e8549f29a76fa26b2b1c8db --shared --< ネットワークを共有するには--sharedオプションを付けて実行します。 ◆ネットワークサブネットの登録 ネットワークで利用するサブネットを定義します。
  • 7. >-- # neutron subnet-create --name public_subnet --enable_dhcp=False -- allocation-pool=start=192.168.1.241,end=192.168.1.254 -- gateway=192.168.1.1 public 192.168.1.0/24 Created a new subnet: (略) --< これでpublic側ネットワークにサブネットなどを登録することができました。 次にdemo-net(プライベート)側に登録してみます。 >-- # neutron subnet-create --name demo-net_subnet --enable_dhcp=True -- allocation-pool=start=192.168.0.100,end=192.168.0.254 -- gateway=192.168.0.1 --dns-nameserver 8.8.8.8 demo-net 192.168.0.0/24 Created a new subnet: (略) --< ◆ゲートウェイの設定 作成したルーター(router1)とパブリックネットワークを接続するため、「ゲートウェイ の設定」を行います。 >-- # neutron router-gateway-set router1 public Set gateway for router router1 --< ◆外部ネットワークと内部ネットワークの接続 最後にプライベートネットワークを割り当てたインスタンスがFloating IPを割り当てら れたときに外に出られるようにするために「ルーターにインターフェイスの追加」を行いま す。 >-- # neutron router-interface-add router1 subnet=demo-net_subnet Added interface xxxx-xxxx-xxxx-xxxx-xxxx to router router1. --< routerはneutron router-listコマンドで確認、サブネットはneutron subnet- listコマンドで確認することができます。 Step 8: ユーザーの追加 次に、ユーザーの追加を行います。 ユーザーを作成する前にユーザーをどのテナント、つまりどのグループに追加するか考えま す。作成したテナントにロール、つまり権限を割り振ることで指定した権限を持つユーザー
  • 8. をテナントに追加できます。 ここでは例として、demoというテナントを作り、そのテナントにdemoユーザーを追加する 流れを説明します。demoユーザーには利用に最低限必要なMemberの権限を割り当てます。 まず、登録済みのテナントを確認します。 >-- # keystone tenant-list +----------------------------------+----------+---------+ | id | name | enabled | +----------------------------------+----------+---------+ | 2b0260a2580842abab33b56dae6a145f | admin | True | | 20a6abed5e8549f29a76fa26b2b1c8db | services | True | +----------------------------------+----------+---------+ (テナントリストの表示) --< 次にテナントを登録します。 >-- # keystone tenant-create --name demo --enable true (テナントdemoの作成) --< 追加したテナントが登録されていることを確認します。 >-- # keystone tenant-list +----------------------------------+----------+---------+ | id | name | enabled | +----------------------------------+----------+---------+ | 2b0260a2580842abab33b56dae6a145f | admin | True | | f1217f04d6f94a7ca3df1f4d6122322d | demo | True | | 20a6abed5e8549f29a76fa26b2b1c8db | services | True | +----------------------------------+----------+---------+ (テナントの確認) --< demoユーザーを作成してみます。パスワードはdemoにします。 >-- # keystone user-create --name demo --pass demo --tenant demo --email demo@example.com --enabled true --< ユーザー作成コマンドはkeystone user-createです。 パラメータはいくつかあるので--helpで確認。--nameがユーザー名、--passがパスワー ド、--tenantはテナント(Horizonではプロジェクト)名、--enabledは有効化の可否を 指定します。
  • 9. tenantはHorizonで登録されている「プロジェクト」を確認するか、コマンドでは次のコ マンドで確認できます。 demoユーザーにMember権限を割り当てます。 >-- # keystone user-role-add --user demo --tenant demo --role Member (demoユーザーをdemoテナントに追加してMemberロールを割り当て) --< 作成したテナント、ユーザーを最後に確認しましょう。 >-- # keystone tenant-list (テナントリストの確認) # keystone user-list (ユーザーリストの確認) --< 以上で、ユーザーdemoでOpenStack環境を利用可能になります。 ユーザーはadminユーザーが設定した共有ネットワークを使ってインスタンスでネットワー ク接続できます。また、Floating IPを割り当てることで外部PCからインスタンスにアク セスできます。 もちろん、ユーザーが独自のネットワークを作ることもできます。その場合は次のように行 います。 ・ルーターを作成 ・サブネットを作成 ・作成したサブネットとルーターをpublicネットワークとつなぐ Step 9: Novaの設定変更 デフォルト設定のままインストールした場合、Novaは仮想化基盤にqemuを利用するように なっています。パフォーマンスを上げるには以下のように設定を変更します。 KVMモジュールが読み込まれていることを確認します。 >-- # lsmod | grep kvm kvm_intel 54285 6 kvm 332980 1 kvm_intel (Intel CPUの場合) kvm 332980 1 kvm_amd (AMD CPUの場合) # vi /etc/nova/nova.conf
  • 10. (略) libvirt_type=kvm #libvirt_type=qemu (設定を変更) --< ■動作確認 ・「セキュリティグループ」でICMPとSSHを有効化 ・インスタンスを起動 ・ボリュームの作成 ・ボリュームをインスタンスに接続 ・dmesg | grep vdでディスク認識を確認 利用するインスタンスは以下からダウンロードできます。 Cirros http://download.cirros-cloud.net ※0.3.1以上のバージョンを利用してください。 CentOS http://repos.fedorapeople.org/repos/openstack/guest-images/ Fedora http://fedoraproject.org/en/get-fedora#clouds Ubuntu http://cloud-images.ubuntu.com ・Floating IPをインスタンスに割り当て ・ホストにSSHアクセスしてそこからインスタンスにアクセス(※下記注) ■FAQ Q1:RDOで環境構築中、タイムアウトエラーがおき、スクリプトが停止しました。 A1:何も設定変更を加えずにもう一度実行し直すと上手くいく場合があります。 ネットワークアクセスと名前解決が頻繁にあり、それらが上手くいかないとスクリプトが途 中で終了することがあるようです。 Q2:ゲートウェイがDOWNなんですけど A2:無視
  • 11. Q3:ステータスを確認するには? A3:openstack-statusコマンドを実行! Q4:openstack-statusコマンドを実行するとサービスの一部が動いていないようです A4:「RDO Neutron Quickstart」の末尾に注意書きがあります If you installed the updated kernel and rebooted prior to running packstack, everything should work. If you installed the updated kernel as part of running packstack, you will need to reboot when packstack completes to boot into the new kernel. This reboot will cause br-ex to reset, so after the reboot you will need to re-run packstack as shown below: >-- # packstack --answer-file=~/packstack-answers-*.txt --< 同じアンサーファイルを使って、もう一度packstackを実行すると良いようです。 Q5:仮想ネットワークを作り直したい A5:手順はこんな感じ >-- # source /root/keystonerc_admin # neutron router-gateway-clear router1 # neutron subnet-delete public_subnet --< ※Floating IPが発行されているとneutron subnet-deleteコマンドの実行に失敗する 作り直して再割り当て >-- # neutron subnet-create --name public_subnet --enable_dhcp=False -- allocation-pool=start=192.168.1.241,end=192.168.1.254 -- gateway=192.168.1.1 public 192.168.1.0/24 --< Q6:日本語キーボードがつかえない A6:コンピュートノードのnova.confに以下のように追記 >-- # vi /etc/nova/nova.conf (略) # keymap for vnc (string value) #vnc_keymap=en-us vnc_keymap=ja #追加する行
  • 12. # service openstack-nova-compute reload --< ※ただし、OS側が日本語キーボードに対応している必要がある。 (Cirrosは日本語キーボードを英語キーマップ認識で利用可能) Q7:作成したdemoユーザーの権限でコマンド操作するには A7:keystonerc_adminを編集して利用します >-- # cp /root/keystonerc_admin /root/keystonerc_demo (keystonercをコピー) # vi /root/keystonerc_demo export OS_USERNAME=demo export OS_TENANT_NAME=demo export OS_PASSWORD=demo export OS_AUTH_URL=http://192.168.1.11:35357/v2.0/ export PS1='[u@h W(keystone_demo)]$ ' --< 設定箇所 ・export OS_USERNAMEをdemo ・export OS_TENANT_NAMEをdemo ・export OS_PASSWORDをdemoユーザー作成時に設定したパスワード ・export PS1をkeystone_demoに設定 Q8:マルチノードでやるには A8:以下公式ドキュメントを参照。 http://openstack.redhat.com/Adding_a_compute_node