原文链接:http://docs.openstack.org/folsom/basic-install/content/basic-install_intro.html

简介

本文档旨在帮助那些想要在Ubuntu 12.04 LTS(使用Ubuntu Cloud Archive)上部署OpenStack Folsom用于开发目的的人。我们将安装三个节点:一个控制器节点,一个网络节点和一个计算节点。当然,你可以根据需要安装更多的节点。对于那些想要安装测试基础设施的OpenStack新手来说,本文档是个好起点。

体系结构

Newton centos7 openstack 安装 如何安装openstack_Ubuntu


标准Quantum部署包括多达4个不同的物理数据中心网络:

  • 管理网络。用于OpenStack组件之间的内部通信。网络的IP地址只应该在数据中心内部可达。
  • 数据网络。用于在云部署内部虚拟机之间数据通信。网络的IP地址的编址需求依赖于使用的Quantum插件。
  • 外部网络。某些场景下,用于提供虚拟机的Internet访问。网络的IP地址应该对Internet上的任何主机可达。
  • API网络:暴露所有的OpenStackAPIs给租户,包括Quantum API。网络的IP地址应该对Internet的所有主机可达。这可能和外部网络是同一个网络,因为可以为外部网络创建一个Quantum子网,通过IP分配范围只使用整个IP块全部地址范围的一部分IP地址。

需求

至少需要三台机器(虚拟或物理)并安装了Ubuntu 12.04(LTS)。

表1.1.架构和节点信息

控制器

网络

计算

主机名

folsom-controller

folsom-network

folsom-compute

服务

MySQL, RabbitMQ, Nova, Cinder, Glance, Keystone, Quantum

Quantum-L3-agent, Quantum-DHCP-agent, Quantum Agent with Open-vSwitch

nova-compute, KVM, nova-api, Quantum Agent with Open-vSwitch

最小磁盘数

2

1

1

外部+API网络

7.7.7.7/24

7.7.7.8/24

-

管理网络

192.168.0.1/24

192.168.0.2/24

192.168.0.3/24

数据网络

-

10.10.10.1/24

10.10.10.2/24

网卡总数

2

3

2

 

控制节点

简介

控制器节点将提供:

  • 数据库(包括MySQL)
  •  队列(包括RabbitMQ)
  • KeyStone
  • Glance
  • Nova(不包括nova-compute)
  • Cinder
  • Quantum服务器(包括Open-vSwitch插件)
  • Dashboard(包括Horizon)

公共服务

操作系统

1.      安装Ubuntu,安装时设置如下参数:

  • 时区:UTC
  • 主机名:contoller
  • 软件包:OpenSSH-Server

操作系统安装完成后,重启服务器。

2.      由于Ubuntu 12.04 LTS默认包含OpenStack Essex,我们将使用Ubuntu Cloud Archive获取Folsom:

apt-get install ubuntu-cloud-keyring

 

编辑/etc/apt/sources.list.d/cloud-archive.list:

deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main

 

升级系统(需要的话重启):

apt-get update && apt-get upgrade

3.      配置网络:

Ÿ   编辑/etc/network/interfaces文件:

# Management Network
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
# API + Public Network
auto eth1
iface eth1 inet static
address 7.7.7.7
netmask 255.255.255.0
gateway 7.7.7.1
dns-nameservers 8.8.8.8

 

Ÿ   编辑/etc/sysctl.conf

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

 

然后重启网络服务:

service networking restart

 

Ÿ   编辑/etc/hosts文件,添加主机名controller,network和compute1及相应IP。

127.0.0.1       localhost
127.0.1.1       controller
192.168.0.1     controller
192.168.0.2     network
192.168.0.3     compute

 

4.      安装配置NTP

Ÿ   安装软件包:

apt-get install -y ntp

 

Ÿ   配置/etc/ntp.conf文件:

server ntp.ubuntu.com iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10

 

Ÿ   重启服务:

service ntp restart

 

MySQL数据库服务

1.      安装软件包:

apt-get install mysql-server python-mysqldb

 

2.      允许从网络连接数据库:

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf

 

3.      重启服务:

service mysql restart

 

4.      创建数据库,用户和权限:

mysql -u root -ppassword <<EOF
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'192.168.0.1' \
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'192.168.0.2' \
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'192.168.0.3' \
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'@'192.168.0.2' \
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'192.168.0.3' \
IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EOF

 

 

RabbitMQ消息服务

1.      安装软件包:

apt-get install rabbitmq-server

 

2.      修改默认口令:

rabbitmqctl change_password guest password

 

Keystone

1.      安装软件包:

apt-get install keystone python-keystone python-keystoneclient

 

2.      编辑/etc/keystone/keystone.conf:

[DEFAULT]
admin_token = password
bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
compute_port = 8774
verbose = True
debug = True
log_file = keystone.log
log_dir = /var/log/keystone
log_config = /etc/keystone/logging.conf
[sql]
connection = mysql://keystone:password@localhost:3306/keystone
idle_timeout = 200
[identity]
driver = keystone.identity.backends.sql.Identity
[catalog]
driver = keystone.catalog.backends.sql.Catalog
(...)

 

 

3.      重启Keystone并在数据库创建表:

service keystone restart
keystone-manage db_sync

 

4.      加载环境变量:

Ÿ   创建novarc文件:

export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export SERVICE_TOKEN=password

Ÿ   导出环境变量:

source novarc
echo "source novarc">>.bashrc

 

5.      下载数据脚本,并用数据(用户、租户、服务)填充Keystone数据库:

./keystone-data.sh

 

6.      下载endpoint脚本,并创建endpoints(为项目):

./keystone-endpoints.sh

如果管理器节点上的管理网络的IP地址与此例不同,请使用如下命令:

./keystone-endpoints.sh -K <ip address of the management network>

 

Glance

1.      安装软件包:

apt-get install glance glance-api glance-registry python-glanceclient glance-common

 

2.      配置Glance:

Ÿ   编辑/etc/glance/glance-api.conf和/etc/glance/glance-registry.conf文件并修改:

sql_connection = mysql://glance:password@localhost/glance
admin_tenant_name = service
admin_user = glance
admin_password = password

对glance-api.conf,修改:

notifier_strategy = rabbit
rabbit_password = password

 

Ÿ   重启Glance服务:

service glance-api restart && service glance-registry restart

 

Ÿ   在数据库中创建Glance数据表:

glance-manage db_sync

 

Ÿ   下载并导入Ubuntu12.04 LTS UEC镜像:

glance image-create \
--location http://uec-images.ubuntu.com/releases/12.04/release/ubuntu-12.04-server-cloudimg-amd64-disk1.img \
--is-public true --disk-format qcow2 --container-format bare --name "Ubuntu"

 

Ÿ   检查镜像是否已在索引中引入:

glance image-list
+--------------------------------------+--------+-------------+------------------+-----------+--------+
| ID                                   | Name   | Disk Format | Container Format | Size      | Status |
+--------------------------------------+--------+-------------+------------------+-----------+--------+
| 0d2664d3-cda9-4937-95b2-909ecf8ea362 | Ubuntu | qcow2       | bare             | 233701376 | active |
+--------------------------------------+--------+-------------+------------------+-----------+--------+

 

Ÿ   你还可以安装GlanceReplicator(Folsom新引入)。更多信息在此。

Nova

1.      安装软件包:

apt-get install nova-api nova-cert nova-common \
nova-scheduler python-nova python-novaclient nova-consoleauth novnc \
nova-novncproxy

 

2.      配置Nova:

Ÿ   编辑/etc/nova/api-paste.ini文件并修改:

admin_tenant_name = service
admin_user = nova
admin_password = password

 

由于我们将使用Cinder进行存储,因此我们还应该删除与”nova-volume”有关的部分:

============================================================
[composite:osapi_volume]
use = call:nova.api.openstack.urlmap:urlmap_factory
/: osvolumeversions
/v1: openstack_volume_api_v1
============================================================
============================================================
[composite:openstack_volume_api_v1]
use = call:nova.api.auth:pipeline_factory
noauth = faultwrap sizelimit noauth ratelimit osapi_volume_app_v1
keystone = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_volume_app_v1
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext osapi_volume_app_v1
============================================================
============================================================
[app:osapi_volume_app_v1]
paste.app_factory = nova.api.openstack.volume:APIRouter.factory
============================================================
============================================================
[pipeline:osvolumeversions]
pipeline = faultwrap osvolumeversionapp
[app:osvolumeversionapp]
paste.app_factory = nova.api.openstack.volume.versions:Versions.factory
============================================================

 

Ÿ   编辑/etc/nova/nova.conf文件并修改:

[DEFAULT]
# MySQL Connection #
sql_connection=mysql://nova:password@192.168.0.1/nova
# nova-scheduler #
rabbit_password=password
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
# nova-api #
cc_host=192.168.0.1
auth_strategy=keystone
s3_host=192.168.0.1
ec2_host=192.168.0.1
nova_url=http://192.168.0.1:8774/v1.1/
ec2_url=http://192.168.0.1:8773/services/Cloud
keystone_ec2_url=http://192.168.0.1:5000/v2.0/ec2tokens
api_paste_config=/etc/nova/api-paste.ini
allow_admin_api=true
use_deprecated_auth=false
ec2_private_dns_show_ip=True
dmz_cidr=169.254.169.254/32
ec2_dmz_host=192.168.0.1
metadata_host=192.168.0.1
metadata_listen=0.0.0.0
enabled_apis=ec2,osapi_compute,metadata
# Networking #
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.0.1:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=password
quantum_admin_auth_url=http://192.168.0.1:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
# Cinder #
volume_api_class=nova.volume.cinder.API
# Glance #
glance_api_servers=192.168.0.1:9292
image_service=nova.image.glance.GlanceImageService
# novnc #
novnc_enable=true
novncproxy_base_url=http://7.7.7.7:6080/vnc_auto.html
vncserver_proxyclient_address=192.168.0.1
vncserver_listen=0.0.0.0
# Misc #
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=true

 

Ÿ   在数据库中创建Nova数据表:

nova-manage db sync

 

Ÿ   重启Nova服务:

service nova-api restart
service nova-cert restart
service nova-consoleauth restart
service nova-scheduler restart
service nova-novncproxy restart

 

Cinder

1.      安装软件包:

apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget \
open-iscsi iscsitarget-dkms python-cinderclient linux-headers-`uname -r`

 

2.      配置并启动iSCSI服务:

sed -i 's/false/true/g' /etc/default/iscsitarget
service iscsitarget start
service open-iscsi start

 

3.      配置Cinder

Ÿ   编辑/etc/cinder/cinder.conf文件并修改:

[DEFAULT]
sql_connection = mysql://cinder:password@localhost:3306/cinder
rabbit_password = password

 

Ÿ   编辑/etc/cinder/api-paste.ini文件并修改:

admin_tenant_name = service
admin_user = cinder
admin_password = password

 

Ÿ   创建卷(在第二块磁盘上):

fdisk /dev/sdb
[Create a Linux partition]
pvcreate /dev/sdb1
vgcreate cinder-volumes /dev/sdb1

 

Ÿ   在数据库中创建Cinder表:

cinder-manage db sync

 

Ÿ   重启服务:

service cinder-api restart
service cinder-scheduler restart
service cinder-volume restart

 

Quantum

1.      安装软件包:

apt-get install quantum-server

 

2.      配置Quantum服务:

Ÿ   编辑/etc/quantum/quantum.conf文件并修改:

core_plugin = \
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
auth_strategy = keystone
fake_rabbit = False
rabbit_password = password

 

Ÿ   编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini文件并修改:

[DATABASE]
sql_connection = mysql://quantum:password@localhost:3306/quantum
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True

注意:选择使用tunnel模式更方便,因为不用为VLANs配置物理路由器。

Ÿ   编辑/etc/quantum/api-paste.ini文件并修改:

admin_tenant_name = service
admin_user = quantum
admin_password = password

 

3.      启动服务:

service quantum-server restart

 

Dashboard(Horizon)

安装软件包:

apt-get install apache2 libapache2-mod-wsgi openstack-dashboard \
memcached python-memcache

 

OpenStack Dashboard现在可以通过http://<controller_node>/horizon访问。我们可以通过admin/password或demo/password登录。

网络节点

简介

网络节点将提供:

Ÿ   支持隧道的VirtualBridging(Open-vSwitch + Quantum Agent)

Ÿ   DHCP Server(Quantum DHCP Agent)

Ÿ   Virtual Routing(Quantum L3 Agent)

公共服务

操作系统

1.      安装Ubuntu,安装时设置如下参数:

Ÿ   时区:UTC

Ÿ   主机名:folsom-network

Ÿ   软件包:OpenSSH-Server

操作系统安装完成后,重启服务器。

2.      由于Ubuntu 12.04 LTS默认包含OpenStack Essex,我们将使用Ubuntu Cloud Archive获取Folsom:

apt-get install ubuntu-cloud-keyring

编辑/etc/apt/sources.list.d/cloud-archive.list:

deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main

升级系统(需要的话重启):

apt-get update && apt-get upgrade

3.      配置网络:

Ÿ   编辑/etc/network/interfaces文件:

 

# Management Network
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 8.8.8.8
# Data Network
auto eth1
iface eth1 inet static
address 10.10.10.1
netmask 255.255.255.0
# Public Bridge
auto eth2
iface eth2 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ifconfig $IFACE down

 

 

Ÿ   编辑/etc/sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

 

然后重启网络服务:

service networking restart

 

Ÿ   编辑/etc/hosts文件,添加主机名controller,network和compute1及相应IP。

 

4.      安装配置NTP

安装软件包:

apt-get install -y ntp

 

配置/etc/ntp.conf文件:

server 192.168.0.1

 

重启服务:

service ntp restart

网络服务

Open-vSwitch

1.      安装软件包:

apt-get install quantum-plugin-openvswitch-agent \
quantum-dhcp-agent quantum-l3-agent

 

2.      启动Open vSwitch:

service openvswitch-switch start

 

3.      创建Virtual Bridging:

ovs-vsctl add-br br-int
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex eth2
ip link set up br-ex

 

Quantum

配置Quantum服务:

Ÿ   编辑/etc/quantum/l3_agent.ini文件并修改:

auth_url = http://192.168.0.1:35357/v2.0
admin_tenant_name = service
admin_user = quantum
admin_password = password
metadata_ip = 192.168.0.1
use_namespaces = False

 

Ÿ   编辑/etc/quantum/api-paste.ini文件并修改:

auth_host = 192.168.0.1
admin_tenant_name = service
admin_user = quantum
admin_password = password

 

Ÿ   编辑/etc/quantum/quantum.conf文件并修改:

 

core_plugin = \
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
auth_strategy = keystone
fake_rabbit = False
rabbit_host = 192.168.0.1
rabbit_password = password

 

Ÿ   编辑/etc/quantum/openvswitch/ovs_quantum_plugin.ini文件并修改:

[DATABASE]
sql_connection = mysql://quantum:password@192.168.0.1:3306/quantum
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.10.10.1

 

Ÿ   编辑/etc/quantum/dhcp_agent.ini文件并添加:

use_namespaces = False

 

Ÿ   启动服务:

service quantum-plugin-openvswitch-agent start
service quantum-dhcp-agent restart
service quantum-l3-agent restart

 

虚拟网络

创建虚拟网络

1.      加载环境变量:

Ÿ   创建novarc文件:

export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_AUTH_URL="http://192.168.0.1:5000/v2.0/"
export SERVICE_ENDPOINT="http://192.168.0.1:35357/v2.0"
export SERVICE_TOKEN=password

 

Ÿ   导出变量:

source novarc
echo "source novarc">>.bashrc

 

2.      下载Quantum脚本。我们使用用例“Provider Router with Private Networks”。

3.      按照你的网络编辑该脚本(公有网络,浮动IP)。

4.      执行脚本。

 

L3配置

Ÿ   拷贝外部网络ID

quantum net-list

 

Ÿ   编辑/etc/quantum/l3_agent.ini,并粘贴该ID:

gateway_external_network_id = ID

 

Ÿ   复制提供商路由器ID

quantum router-list

 

Ÿ   编辑/etc/quantum/l3_agent.ini,并粘帖该ID:

router_id = ID

 

Ÿ   重启L3代理:

service quantum-l3-agent restart

 

 

计算节点

简介

计算节点将提供:

Ÿ   Hypervisor(KVM)

Ÿ   Nova-compute

Ÿ   Quantum OVS Agent

公共服务

1.      安装Ubuntu,安装时设置如下参数:

Ÿ   时区:UTC

Ÿ   主机名:folsom-network

Ÿ   软件包:OpenSSH-Server

操作系统安装完成后,重启服务器。

2.      由于Ubuntu 12.04 LTS默认包含OpenStack Essex,我们将使用Ubuntu Cloud Archive获取Folsom:

apt-get install ubuntu-cloud-keyring

编辑/etc/apt/sources.list.d/cloud-archive.list:

deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main

升级系统(需要的话重启):

apt-get update && apt-get upgrade

3.      配置网络:

Ÿ   编辑/etc/network/interfaces文件:

# Management Network
auto eth0
iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 8.8.8.8
# Data Network
auto eth1
iface eth1 inet static
address 10.10.10.2
netmask 255.255.255.0


 

 

Ÿ   编辑/etc/sysctl.conf

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

 

然后重启网络服务:

service networking restart

 

Ÿ   编辑/etc/hosts文件,添加主机名controller,network和compute1及相应IP。

 

4.      安装配置NTP

安装软件包:

apt-get install -y ntp

 

配置/etc/ntp.conf文件:

server 192.168.0.1

 

重启服务:

service ntp restart

Hypervisor

1.      安装我们需要的软件包:

apt-get install -y kvm libvirt-bin pm-utils

 

2.      配置libvirt:

Ÿ   编辑/etc/libvirt/qemu.conf文件并添加:

cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet", "/dev/net/tun"]

 

Ÿ   关闭KVM defaultvirtual bridge以避免混淆:

virsh net-destroy default
virsh net-undefine default

 

Ÿ   允许LiveMigrations:

编辑/etc/libvirt/libvirtd.conf文件:

listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

 

在/etc/init/libvirt-bin.conf文件中修改libvirtd_opts变量:

env libvirtd_opts="-d -l"

 

编辑/etc/default/libvirt-bin文件:

libvirtd_opts="-d -l"

 

3.      重启libvirt:

service libvirt-bin restart

 

Nova

1.      安装软件包:

apt-get install nova-compute-kvm

 

2.      配置Nova:

  • 编辑/etc/nova/api-paste.ini文件并修改:
auth_host = 192.168.0.1
admin_tenant_name = service
admin_user = nova
admin_password = password
  • 编辑/etc/nova/nova-compute.conf文件并修改:
[DEFAULT]
libvirt_type=kvm
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True

 

  • 编辑/etc/nova/nova.conf并修改:
[DEFAULT]
# MySQL Connection #
sql_connection=mysql://nova:password@192.168.0.1/nova
# nova-scheduler #
rabbit_host=192.168.0.1
rabbit_password=password
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
# nova-api #
cc_host=192.168.0.1
auth_strategy=keystone
s3_host=192.168.0.1
ec2_host=192.168.0.1
nova_url=http://192.168.0.1:8774/v1.1/
ec2_url=http://192.168.0.1:8773/services/Cloud
keystone_ec2_url=http://192.168.0.1:5000/v2.0/ec2tokens
api_paste_config=/etc/nova/api-paste.ini
allow_admin_api=true
use_deprecated_auth=false
ec2_private_dns_show_ip=True
dmz_cidr=169.254.169.254/32
ec2_dmz_host=192.168.0.1
metadata_host=192.168.0.1
metadata_listen=0.0.0.0
enabled_apis=metadata
# Networking #
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.0.1:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=password
quantum_admin_auth_url=http://192.168.0.1:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
# Compute #
compute_driver=libvirt.LibvirtDriver
connection_type=libvirt
# Cinder #
volume_api_class=nova.volume.cinder.API
# Glance #
glance_api_servers=192.168.0.1:9292
image_service=nova.image.glance.GlanceImageService
# novnc #
novnc_enable=true
novncproxy_base_url=http://7.7.7.7:6080/vnc_auto.html
vncserver_proxyclient_address=192.168.0.3
vncserver_listen=0.0.0.0
# Misc #
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=true

 

 

  • 重启Nova服务:
service nova-compute restart

 

Quantum

Open vSwitch

1.      安装软件包:

apt-get install -y openvswitch-switch

 

2.      启动Open vSwitch服务:

 

service openvswitch-switch start

 

3.      配置虚拟网桥:

ovs-vsctl add-br br-int

 

Quantum

1.      安装软件包:

 

apt-get install -y quantum-plugin-openvswitch-agent

 

 

2.      编辑/etc/quantum/quantum.conf文件并修改:

core_plugin = \
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
auth_strategy = keystone
fake_rabbit = False
rabbit_host = 192.168.0.1
rabbit_password = password

 

3.      编辑/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini文件并修改:

[DATABASE]
sql_connection = mysql://quantum:password@192.168.0.1:3306/quantum
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.10.10.2
enable_tunneling = True

 

4.      启动Agent:

service quantum-plugin-openvswitch-agent restart

 

创建第一个虚拟机

1.      现在你可以使用OpenStack API或Dashboard通过demo/password来管理你自己的IaaS:http://192.168.0.1/horizon。

2.      修改安全组”Default”以允许ICMP和SSH。

3.      创建个人的keypair。

4.      在Dashboard中,去”Instances”点击“Launch Instance”生成一个新的虚拟机。

5.      由于Horizon在Folsom发布中不管理L3,因此我们需要从Quantum CLI(使用默认demo租户)配置浮动IP。为了做这一步,你需要得到ext_net ID和虚拟机的port_id:

quantum net-list -- --router:external True
quantum port-list -- --device_id <vm-uuid>

 

6.      现在,我们将创建一个绑定到我们虚拟机的虚端口的浮动IP,并路由到外部网络:

quantum floatingip-create --port_id <port_id> <ext_net_id>

 

7.      就是这样了。你应该能够通过浮动IP ping通你的虚拟机。

总结

我们已经为高级测试创建了基本架构。这种架构和生产环境类似,但没有高可用(HA)和一些服务,如运行OpenStack Object Storage。你当然可以按照需要添加更多的计算节点。如果你需要更多的帮助,请阅读每个项目的官方文档或往OpenStack邮件列表中发邮件。