Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenStack Grizzly構築手順書

766 views

Published on

Ubuntu12.04 LTSにOpenStack (Grizzly)をインストールするための構築手順書です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

OpenStack Grizzly構築手順書

  1. 1. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 本書の概要 以下の OpenStack ドキュメントをベースとしたインストール設定手順をまとめたものである。 http://docs.openstack.org/grizzly/basic-install/apt/content/basic-install_intro.html ベースの手順からは大きな変更は加えていないため、和訳手順書のように使用することが可能だが、細 かな解説については記述していないため、注意すること。 また、手順書内で正しくない記述がある部分に関しては、本書内では修正している。 使用サーバー ・ サーバーは以下 3 台の物理サーバーを用意する ・ OS は Ubuntu 12.04 LTS(あらかじめ最新バージョンにすること)を使用 Ø kernel は 3.2.0-54(3.2.0 系の最新)を使用する ・ ネットワークは以下の通り構成した Ø eth0: Openstack 内でだけ使用するネットワーク(VLAN を切り、孤立したネットワークと した) Ø eth1: インターネットにアクセス可能なローカルネットワーク(LAN など。ゲートウェイと DNS もこちらに設定) □コントローラーノード ホスト名: ooctr.local.virtualtech.jp IP アドレス: ・ eth0: 10.10.10.35/255.255.255.0 ・ eth1: 172.17.15.35/255.255.255.0 □ネットワークノード ホスト名: oonet.local.virtualtech.jp IP アドレス: ・ eth0: 10.10.10.34/255.255.255.0 ・ eth1: 172.17.15.34/255.255.255.0 1 / 22
  2. 2. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 □コンピュートノード ホスト名: oocom.local.virtualtech.jp IP アドレス: ・ eth0: 10.10.10.36/255.255.255.0 ・ eth1: DHCP(構築後は無効で良い) 共通の構築手順 ・ Ubuntu をインストールする ・ IP アドレスを設定する ・ hosts ファイルを追記する 10.10.10.34 ooctr.local.virtualtech.jp ooctr 10.10.10.35 oonet.local.virtualtech.jp oonet 10.10.10.36 oocom.local.virtualtech.jp oocom ※ なお、127.0.1.1 は削除しないこと(rabbitmq-server のインストールに失敗するため) ・ 以下のパッケージをインストールする # apt-get install -y ubuntu-cloud-keyring ・ /etc/apt/sources.list.d/cloud-archive.list を編集し、以下の内容を記述する deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main ・ OS を最新の状態にアップデートする # apt-get update && apt-get upgrade ・ NTP をインストールする # apt-get install -y ntp コントローラーノードの構築 /etc/sysctl.conf の設定 ・ 以下の設定を記述する net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 ・ 設定を反映する # sysctl -e -p /etc/sysctl.conf 2 / 22
  3. 3. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 MySQL の構築 ・ MySQL サーバーをインストールする。プロンプトが表示されたら MySQL の root ユーザーのパス ワードを設定する # apt-get install -y python-mysqldb mysql-server ・ MySQL の接続許可のアドレスを書き換える # sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf ・ MySQL を再起動する # service mysql restart ・ データベースを作成する # mysql -u root -p <<EOF CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE quantum; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'10.10.10.34' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'10.10.10.36' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EOF 3 / 22
  4. 4. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 RabbitMQ のインストール ・ RabbitMQ をインストールする # apt-get install -y rabbitmq-server ・ RabbitMQ のゲストパスワードを変更する # rabbitmqctl change_password guest password ←password の文字を適宜変更 Keystone のインストール ・ keystone をインストールする # apt-get install -y keystone python-keystone python-keystoneclient ・ /etc/keystone/keystone.conf を編集する [DEFAULT] admin_token = password debug = True verbose = True [sql] connection = mysql://keystone:password@localhost/keystone ・ Keystone を再起動して、データベースにテーブルを作成する # service keystone restart # keystone-manage db_sync ・ openrc ファイルを作成する export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export OS_AUTH_URL="http://localhost:5000/v2.0/" export OS_SERVICE_ENDPOINT="http://localhost:35357/v2.0" export OS_SERVICE_TOKEN=password ・ openrc を読み込む $ source /openrc ※ログインした際に自動で読み込むようにするには、以下のコマンドを実行する $ echo "source /openrc" >> /.bashrc 4 / 22
  5. 5. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ 以下のシェルスクリプトを作成して実行する #!/bin/bash # Modify these variables as needed ADMIN_PASSWORD=${ADMIN_PASSWORD:-password} SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD} DEMO_PASSWORD=${DEMO_PASSWORD:-$ADMIN_PASSWORD} export OS_SERVICE_TOKEN="password" export OS_SERVICE_ENDPOINT="http://localhost:35357/v2.0" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} # MYSQL_USER=keystone MYSQL_DATABASE=keystone MYSQL_HOST=localhost MYSQL_PASSWORD=password # KEYSTONE_REGION=RegionOne KEYSTONE_HOST=10.10.10.35 # Shortcut function to get a newly generated ID function get_field() { while read data; do if [ "$1" -lt 0 ]; then field="($(NF$1))" else field="$$(($1 + 1))" fi echo "$data" ¦ awk -F'[ t]*¦[ t]*' "{print $field}" done } # Tenants 5 / 22
  6. 6. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ADMIN_TENANT=$(keystone tenant-create --name=admin ¦ grep " id " ¦ get_field 2) DEMO_TENANT=$(keystone tenant-create --name=demo ¦ grep " id " ¦ get_field 2) SERVICE_TENANT=$(keystone tenant-create --name=$SERVICE_TENANT_NAME ¦ grep " id " ¦ get_field 2) # Users ADMIN_USER=$(keystone user-create --name=admin --pass="$ADMIN_PASSWORD" --email=admin@domain.com ¦ grep " id " ¦ get_field 2) DEMO_USER=$(keystone user-create --name=demo --pass="$DEMO_PASSWORD" --email=demo@domain.com --tenant-id=$DEMO_TENANT ¦ grep " id " ¦ get_field 2) NOVA_USER=$(keystone user-create --name=nova --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=nova@domain.com ¦ grep " id " ¦ get_field 2) GLANCE_USER=$(keystone user-create --name=glance --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=glance@domain.com ¦ grep " id " ¦ get_field 2) QUANTUM_USER=$(keystone user-create --pass="$SERVICE_PASSWORD" --tenant-id --name=quantum $SERVICE_TENANT --email=quantum@domain.com ¦ grep " id " ¦ get_field 2) CINDER_USER=$(keystone user-create --name=cinder --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=cinder@domain.com ¦ grep " id " ¦ get_field 2) # Roles ADMIN_ROLE=$(keystone role-create --name=admin ¦ grep " id " ¦ get_field 2) MEMBER_ROLE=$(keystone role-create --name=Member ¦ grep " id " ¦ get_field 2) # Add Roles to Users in Tenants keystone user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenant-id $ADMIN_TENANT keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $NOVA_USER --role-id $ADMIN_ROLE keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $GLANCE_USER --role-id $ADMIN_ROLE keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $QUANTUM_USER 6 / 22
  7. 7. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 --role-id $ADMIN_ROLE keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $CINDER_USER --role-id $ADMIN_ROLE keystone user-role-add --tenant-id $DEMO_TENANT --user-id $DEMO_USER --role-id $MEMBER_ROLE # Create services COMPUTE_SERVICE=$(keystone service-create --name nova --type compute --description 'OpenStack Compute Service' ¦ grep " id " ¦ get_field 2) VOLUME_SERVICE=$(keystone service-create --name cinder --type volume --description 'OpenStack Volume Service' ¦ grep " id " ¦ get_field 2) IMAGE_SERVICE=$(keystone service-create --name glance --type image --description 'OpenStack Image Service' ¦ grep " id " ¦ get_field 2) IDENTITY_SERVICE=$(keystone service-create --name keystone --type identity --description 'OpenStack Identity' ¦ grep " id " ¦ get_field 2) EC2_SERVICE=$(keystone service-create --name ec2 --type ec2 --description 'OpenStack EC2 service' ¦ grep " id " ¦ get_field 2) NETWORK_SERVICE=$(keystone service-create --name quantum --type network --description 'OpenStack Networking service' ¦ grep " id " ¦ get_field 2) # Create endpoints keystone endpoint-create $COMPUTE_SERVICE --adminurl --publicurl --region $KEYSTONE_REGION --service-id 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' --internalurl 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' keystone endpoint-create $VOLUME_SERVICE --adminurl --publicurl --region $KEYSTONE_REGION --service-id 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' --internalurl 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' keystone endpoint-create --region $KEYSTONE_REGION --service-id $IMAGE_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':9292' --adminurl 'http://'"$KEYSTONE_HOST"':9292' --internalurl 'http://'"$KEYSTONE_HOST"':9292' 7 / 22
  8. 8. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) keystone endpoint-create $IDENTITY_SERVICE --publicurl 2013/10/04 作成 --region $KEYSTONE_REGION 'http://'"$KEYSTONE_HOST"':5000/v2.0' 'http://'"$KEYSTONE_HOST"':35357/v2.0' --service-id --adminurl --internalurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' keystone endpoint-create --region $KEYSTONE_REGION --service-id $EC2_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8773/services/Cloud' 'http://'"$KEYSTONE_HOST"':8773/services/Admin' --adminurl --internalurl 'http://'"$KEYSTONE_HOST"':8773/services/Cloud' keystone endpoint-create $NETWORK_SERVICE --publicurl --region $KEYSTONE_REGION 'http://'"$KEYSTONE_HOST"':9696/' --service-id --adminurl 'http://'"$KEYSTONE_HOST"':9696/' --internalurl 'http://'"$KEYSTONE_HOST"':9696/' TIPS もし実行に失敗した場合、以下の手順でやり直しできる # mysql -u root -p -e "drop database keystone" # mysql -u root -p -e "create database keystone" # mysql -u root -p -e "grant all privileges on keystone.* TO 'keystone'@'localhost' identified by 'password'" # keystone-manage db_sync 最後に、先述のシェルスクリプトを実行する 8 / 22
  9. 9. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 Glance のインストール ・ Glance をインストールする # apt-get install -y glance ・ /etc/glance/glance-api.conf と /etc/glance/glance-registry.conf をそれぞれ以下のとおり編 集する [DEFAULT] sql_connection = mysql://glance:password@localhost/glance [keystone_authtoken] admin_tenant_name = service admin_user = glance admin_password = password [paste_deploy] flavor=keystone ・ 以下のファイルを入手して所定位置に配置する # wget https://raw.github.com/openstack/glance/master/etc/schema-image.json # mv schema-image.json /etc/glance ・ Glance を再起動する # service glance-api restart && service glance-registry restart ※ /var/log/glance/*.log を 参 照 し て 、 エ ラ ー が 無 い こ と を 確 認 す る ・ Glance のデータベースにテーブルを作る # glance-manage db_sync ・ OS イメージを取得して、Glance に登録する Ubuntu 12.04 LTS の場合 $ wget http://uec-images.ubuntu.com/precise/current/precise-server-cloudimg-amd6 4-disk1.img $ glance image-create --is-public true --disk-format qcow2 --container-format bare --name "Ubuntu" < precise-server-cloudimg-amd64-disk1.img Cirros の場合 $ wget http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img $ glance image-create --is-public true --disk-format qcow2 --container-format bare --name "CirrOS 0.3.1" < cirros-0.3.1-x86_64-disk.img 9 / 22
  10. 10. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ Glance にイメージが登録されているか確認するには、以下のコマンドを実行する $ glance image-list Nova のインストール ・ 以下のパッケージをインストールする # apt-get install -y nova-api nova-cert nova-common nova-conductor nova-scheduler python-nova python-novaclient nova-consoleauth novnc nova-novncproxy ・ /etc/nova/api-paste.ini を編集する admin_tenant_name = service admin_user = nova admin_password = password ・ /etc/nova/nova.conf を編集する [DEFAULT] sql_connection=mysql://nova:password@localhost/nova my_ip=10.10.10.35 rabbit_password=password auth_strategy=keystone # Networking network_api_class=nova.network.quantumv2.api.API quantum_url=http://10.10.10.35:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=password quantum_admin_auth_url=http://10.10.10.35:35357/v2.0 libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver # Security Groups firewall_driver=nova.virt.firewall.NoopFirewallDriver 10 / 22
  11. 11. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 security_group_api=quantum # Metadata quantum_metadata_proxy_shared_secret=password service_quantum_metadata_proxy=true metadata_listen = 10.10.10.35 metadata_listen_port = 8775 # Cinder volume_api_class=nova.volume.cinder.API # Glance glance_api_servers=10.10.10.35:9292 image_service=nova.image.glance.GlanceImageService # novnc novnc_enable=true novncproxy_port=6080 novncproxy_host=10.0.0.35 vncserver_listen=0.0.0.0 TIPS novncproxy_host=10.0.0.35 このパラメータが Openstack Dashboard 内で使用される URL となる。 もし、外部向けネットワーク(172.17.15.35)にしたい場合は変更する。 また、後述のコンピュートノードの nova.conf にある novncproxy_base_url パラメータもあわ せて書き換える。 ・ Nova のデータベースにテーブルを作成する # nova-manage db sync 11 / 22
  12. 12. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ Nova を再起動する # service nova-api restart && service nova-cert restart && service nova-consoleauth restart && service nova-scheduler restart && service nova-novncproxy restart ・ /var/log/nova/*.log を 参 照 し て 、 エ ラ ー が 無 い こ と を 確 認 す る Cinder のインストール ・ Cinder をインストールする # apt-get install -y open-iscsi python-cinderclient linux-headers-`uname -r` cinder-api cinder-scheduler cinder-volume ※ Openstack のドキュメントでは iscsitarget もインストールしているが、その後の設定では tgt が 指定されており、混在となるため Cinder の構築に失敗する。よって、本書では iscsitarget をイン ストールせずに tgt を使用する。 ・ iSCSI サービスを起動する # service tgt start && service open-iscsi start ・ /etc/cinder/cinder.conf を編集する [DEFAULT] sql_connection = mysql://cinder:password@localhost/cinder rabbit_password = password ・ /etc/cinder/api-paste.ini を編集する admin_tenant_name = service admin_user = cinder admin_password = password ・ LVM 物理ボリュームと論理ボリュームを作成する # pvcreate /dev/sdb # vgcreate cinder-volumes /dev/sdb ・ Cinder のデータベースとテーブルを作成する # cinder-manage db sync ・ サービスを再起動する # service cinder-api restart && service cinder-volume restart 12 / 22 cinder-scheduler restart && service
  13. 13. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 Quantum のインストール ・ Quantum をインストールする # apt-get install -y quantum-server ・ /etc/quantum/quantum.conf を編集する [DEFAULT] verbose = True rabbit_password = password [keystone_authtoken] admin_tenant_name = service admin_user = quantum admin_password = password ・ /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini を編集する [DATABASE] sql_connection = mysql://quantum:password@localhost/quantum [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True local_ip = 10.10.10.35 [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ・ OVS プラグインを有効にする # ln -s /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini /etc/quantum/plugi n.ini ・ Quantum サービスを再起動する # service quantum-server restart Horizon のインストール ・ 以下のパッケージをインストールする # apt-get install -y openstack-dashboard memcached python-memcache ※ 以下のコマンドを実行すると Ubuntu 標準テーマを除くことができる。必須ではないが推奨される # apt-get remove --purge openstack-dashboard-ubuntu-theme 13 / 22
  14. 14. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ネットワークノードの設定 /etc/sysctl.conf の設定 ・ 以下の設定を記述する net.ipv4.ip_forward = 1 net.ipv4.conf.all.forwarding = 1 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 ・ 設定を反映する # sysctl -e -p /etc/sysctl.conf Open vSwitch の構築 ・ パッケージをインストールする # apt-get install -y quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3 -agent ・ Open vSwitch サービスを起動する # service openvswitch-switch start ・ ネットワークブリッジを作成する # ovs-vsctl add-br br-ex # ovs-vsctl add-port br-ex eth1 # ovs-vsctl add-br br-int ・ /etc/network/interfaces を編集する (a) eth1 の設定を br-ex に変更する auto br-ex iface br-ex inet static address 172.17.15.34 netmask 255.255.255.0 gateway 172.17.15.1 14 / 22
  15. 15. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 (b) eth1 の設定を以下の通り記述 auto eth1 iface eth1 inet manual up ip address add 0/0 dev $IFACE up ip link set $IFACE up down ip link set $IFACE down ・ /etc/network/if-pre-up.d/firewall に以下の設定を記述する /sbin/iptables -A FORWARD -i eth1 -o br-ex -s 10.10.10.0/24 -m conntrack --ctstate NEW -j ACCEPT /sbin/iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A POSTROUTING -s 10.10.10.0/24 -t nat -j MASQUERADE ・ /etc/network/if-pre-up.d/firewall のパーミッションを変更する # chmod 755 /etc/network/if-pre-up.d/firewall ・ OS を再起動する ・ /etc/quantum/quantum.conf を編集する [DEFAULT] verbose = True rabbit_password = password rabbit_host = 10.10.10.35 [keystone_authtoken] auth_host = 10.10.10.35 admin_tenant_name = service admin_user = quantum admin_password = password 15 / 22
  16. 16. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini を編集する [database] sql_connection = mysql://quantum:password@10.10.10.35/quantum [ovs] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True local_ip = 10.10.10.34 [securitygroup] firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ・ /etc/quantum/dhcp_agent.ini を編集する [DEFAULT] enable_isolated_metadata = True enable_metadata_network = True ・ /etc/quantum/metadata_agent.ini を編集する [DEFAULT] auth_url = http://10.10.10.35:35357/v2.0 auth_region = RegionOne admin_tenant_name = service admin_user = quantum admin_password = password nova_metadata_ip = 10.10.10.35 metadata_proxy_shared_secret = password ・ サービスを再起動する # service quantum-plugin-openvswitch-agent restart && service quantum-dhcp-agent restart && service quantum-metadata-agent restart && service quantum-l3-agent restart ・ /var/log/quantum/*.log を 参 照 し て エ ラ ー が 無 い こ と を 確 認 す る 16 / 22
  17. 17. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 openrc の作成 ・ ユーザーのホームディレクトリに openrc ファイルを作成する export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export OS_AUTH_URL="http://10.10.10.35:5000/v2.0/" export SERVICE_ENDPOINT="http://10.10.10.35:35357/v2.0" export SERVICE_TOKEN=password ・ 以下のコマンドを実行して読み込む $ source /openrc ※ echo "source /openrc" >> /.bashrc を実行すると、ログイン時に自動的に読み込む 仮想ネットワークの作成 ・ 以下のシェルスクリプトを作成する #!/bin/bash TENANT_NAME="demo" TENANT_NETWORK_NAME="demo-net" TENANT_SUBNET_NAME="${TENANT_NETWORK_NAME}-subnet" TENANT_ROUTER_NAME="demo-router" FIXED_RANGE="10.5.5.0/24" NETWORK_GATEWAY="10.5.5.1" TENANT_ID=$(keystone tenant-list ¦ grep " $TENANT_NAME " ¦ awk '{print $2}') TENANT_NET_ID=$(quantum net-create --tenant_id $TENANT_ID $TENANT_NETWORK _NAME --provider:network_type gre --provider:segmentation_id 1 ¦ grep " id " ¦ awk '{print $4}') TENANT_SUBNET_ID=$(quantum subnet-create --tenant_id $TENANT_ID --ip_version 4 --name $TENANT_SUBNET_NAME $TENANT_NET_ID $FIXED_RANGE --gateway $NETWORK_GATEWAY --dns_nameservers list=true 8.8.8.8 ¦ grep " id " ¦ awk '{print $4}') ROUTER_ID=$(quantum router-create --tenant_id $TENANT_ROUTER_NAME ¦ grep " id " ¦ awk '{print $4}') quantum router-interface-add $ROUTER_ID $TENANT_SUBNET_ID 17 / 22 $TENANT_ID
  18. 18. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 L3 ネットワークの構築 ・ 外部むけネットワーク作成する # quantum net-create public --router:external=True ・ 外部向けネットワークのサブネットを作成する # quantum subnet-create --ip_version 4 --gateway 172.17.15.1 public 172.17.15.0/24 --allocation-pool start=172.17.15.200,end=172.17.15.250 public-subnet ・ デモルーターのゲートウェイをパブリックネットワークに設定する # quantum router-gateway-set demo-router public コンピュートノードの構築 /etc/sysctl.conf の設定 ・ 以下の設定を記述する net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 ・ 設定を反映する # sysctl -e -p /etc/sysctl.conf Nova-Compute の構築 ・ Nova-Compute をインストールする # apt-get install -y nova-compute-kvm ・ /etc/nova/api-paste.ini を編集する [filter:authtoken] auth_host = 10.10.10.35 admin_tenant_name = service admin_user = nova admin_password = password 18 / 22 --disable-dhcp --name
  19. 19. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ /etc/nova/nova.conf を編集する [DEFAULT] # General verbose=True my_ip=10.10.10.36 rabbit_host=10.10.10.35 rabbit_password=password auth_strategy=keystone ec2_host=10.10.10.35 ec2_url=http://10.10.10.35:8773/services/Cloud # Networking libvirt_use_virtio_for_bridges=True network_api_class=nova.network.quantumv2.api.API quantum_url=http://10.10.10.35:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=password quantum_admin_auth_url=http://10.10.10.35:35357/v2.0 # Security Groups firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=quantum # Compute compute_driver=libvirt.LibvirtDriver connection_type=libvirt # Cinder volume_api_class=nova.volume.cinder.API 19 / 22
  20. 20. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 # Glance glance_api_servers=10.10.10.35:9292 image_service=nova.image.glance.GlanceImageService # novnc vnc_enabled=true vncserver_proxyclient_address=10.10.10.36 novncproxy_base_url=http://10.10.10.35:6080/vnc_auto.html vncserver_listen=0.0.0.0 TIPS novncproxy_base_url=http://10.0.0.35:6080/vnc_auto.html このパラメータが Openstack Dashboard で使用される URL となる。 もし、172.17.15.35 にしたい場合は変更する。 また、コントローラーノードの nova.conf にある novncproxy_host パラメータもあわせて書き 換える。 ・ サービスを再起動する # service nova-compute restart Open vSwitch の設定 ・ パッケージをインストールする # apt-get install -y openvswitch-switch TIPS kernel 3.8 系の環境で構築した場合、openvswitch-switch が依存するパッケージ openvswitch -datapath-dkms のインストールに失敗する。代替パッケージの openvswitch-datapath-ltsraring-dkms をインストールする。 # apt-get install openvswitch-datapath-lts-raring-dkms インストールの際に、openvswitch -datapath-dkms パッケージは削除される。 (参照) https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1213021 20 / 22
  21. 21. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 ・ サービスを起動する # service openvswitch-switch start ・ 内部ネットワーク用ブリッジを作成する # ovs-vsctl add-br br-int Quantum の設定 ・ Quantum をインストールする # apt-get install -y quantum-plugin-openvswitch-agent ・ /etc/quantum/quantum.conf を編集する [DEFAULT] rabbit_host = 10.10.10.35 rabbit_password = password verbose = True ・ /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini を編集する [DATABASE] sql_connection = mysql://quantum:password@10.10.10.35/quantum [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 local_ip = 10.10.10.36 enable_tunneling = True [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver ・ サービスを再起動する service quantum-plugin-openvswitch-agent restart ・ /var/log/quantum/openvswitch-agent.log を 開 い て エ ラ ー が 無 い こ と を 確 認 す る 21 / 22
  22. 22. 日本仮想化技術株式会社 Openstack 構築手順書 (Grizzly 版) 2013/10/04 作成 トラブルシューティング うまく動作しない時に確認すると良いコマンド ・ nova の稼働状況を確認する $ nova-manage service list ・ glance に登録されているイメージを確認 $ glance image-list ・ quantum の状況を確認する $ quantum agent-list 22 / 22

×