Add Network Controller + Improve Quantum Part

Patch set corrects spelling, makes the table HTML compliant rather
than CORS.

Change-Id: Ifb97b55d8670080de203327b095784f4469e0319
This commit is contained in:
Emilien Macchi
2012-12-15 14:38:09 +01:00
committed by annegentle
parent d3e51d65b0
commit d084653b82
24 changed files with 586 additions and 174 deletions

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_architecture">
<title>Architecture</title>
<mediaobject>
<imageobject role="fo">
<imagedata scale="60" fileref="figures/Quantum-PhysNet-Diagram.png"/>
</imageobject>
<imageobject role="html">
<imagedata role="html" fileref="figures/Quantum-PhysNet-Diagram.png"/>
<!-- Edit link: http://docs.google.com/drawings/d/19qtlB_EeG9TM_jpeX5DprHRd9ShngXgfpt_t5mlrUMo/edit -->
</imageobject>
</mediaobject>
<para>A standard Quantum setup has up to four distinct physical data center networks: </para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">Management
network</emphasis>. Used for internal
communication between OpenStack components. The IP
addresses on this network should be reachable only
within the data center.  </para>
</listitem>
<listitem>
<para><emphasis role="bold">Data
network</emphasis>. Used for VM data communication
within the cloud deployment. The IP addressing
requirements of this network depend on the Quantum
plugin in use.  </para>
</listitem>
<listitem>
<para><emphasis role="bold">External
network</emphasis>. Used to provide VMs with
Internet access in some deployment scenarios. The IP
addresses on this network should be reachable by
anyone on the Internet.  </para>
</listitem>
<listitem>
<para><emphasis role="bold">API
network</emphasis>. Exposes all OpenStack
APIs, including the Quantum API, to
tenants. The IP addresses on this network
should be reachable by anyone on the
Internet. This may be the same network as
the external network, as it is possible to create
a quantum subnet for the external network that uses
IP allocation ranges to use only less than the full
range of IP addresses in an IP block. </para>
</listitem>
</itemizedlist>
</section>

View File

@@ -20,19 +20,21 @@
<para>After OS Installation, reboot the server .</para>
</listitem>
<listitem>
<para>Add the repository and upgrade Ubuntu :<screen><userinput>apt-get install -y python-software-properties
add-apt-repository ppa:openstack-ubuntu-testing/folsom-trunk-testing
add-apt-repository ppa:openstack-ubuntu-testing/folsom-deps-staging
apt-get update &amp;&amp; apt-get -y dist-upgrade</userinput></screen>Reboot the server.</para>
<para>Since Ubuntu 12.04 LTS has OpenStack Essex by default, we are going to use
Cloud Archives for Folsom :<screen>apt-get install ubuntu-cloud-keyring</screen>Edit
<emphasis role="bold">/etc/apt/source.list.d/cloud-archive.list</emphasis>
:<screen>deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main </screen>Upgrade
the system (and reboot if you need)
:<screen>apt-get update &amp;&amp; apt-get upgrade</screen></para>
</listitem>
<listitem>
<para>Configure the network :</para>
<para><itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/network/interfaces</emphasis>
file :</para>
</listitem>
</itemizedlist><screen><userinput># Management Network
<listitem>
<para>Edit <emphasis role="bold">/etc/network/interfaces</emphasis> file
:</para>
</listitem>
</itemizedlist><screen><userinput># Management Network
auto eth0
iface eth0 inet static
address 192.168.0.2
@@ -40,25 +42,29 @@ auto eth0
gateway 192.168.0.254
dns-nameservers 8.8.8.8
# VMs Networks with OVS in tunnel mode
# Data Network
auto eth1
iface eth1 inet static
address 10.0.0.4
netmask 255.255.255.0</userinput></screen>Then, restart network service :<screen><userinput>service networking restart</userinput></screen></para>
address 10.10.10.2
netmask 255.255.255.0</userinput></screen>Then,
restart network service
:<screen><userinput>service networking restart</userinput></screen></para>
<para>
<itemizedlist>
<listitem>
<para>Enable <emphasis role="bold">IP forwarding</emphasis> :</para>
<para>Edit <emphasis role="bold">/etc/sysctl.conf
</emphasis>:</para>
</listitem>
</itemizedlist>
<programlisting>sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward </programlisting>
<programlisting>net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0 </programlisting>
<itemizedlist>
<listitem>
<para>Edit the <emphasis role="bold">/etc/hosts</emphasis> file and
add <emphasis role="bold">folsom-controller</emphasis> &amp;
<emphasis role="bold">folsom-compute</emphasis> hostnames
with correct IP.</para>
add <emphasis role="bold">folsom-controller</emphasis>, <emphasis
role="bold">folsom-network</emphasis> and <emphasis role="bold"
>folsom-compute</emphasis> hostnames with correct IP.</para>
</listitem>
</itemizedlist>
</para>
@@ -77,4 +83,4 @@ echo 1 > /proc/sys/net/ipv4/ip_forward </programlisting>
</itemizedlist></para>
</listitem>
</orderedlist>
</section>
</section>

View File

@@ -7,7 +7,8 @@
<para>
<orderedlist>
<listitem>
<para>Install the packages that we need :<screen><userinput>apt-get install -y kvm libvirt-bin pm-utils</userinput></screen></para>
<para>Install the packages that we need
:<screen><userinput>apt-get install -y kvm libvirt-bin pm-utils</userinput></screen></para>
</listitem>
<listitem>
<para>Configure libvirt :</para>

View File

@@ -29,7 +29,8 @@ libvirt_use_virtio_for_bridges=True</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/nova.conf</emphasis> file
and modify :<screen><userinput>[DEFAULT]
and modify
:<screen><userinput>[DEFAULT]
# MySQL Connection #
sql_connection=mysql://nova:password@192.168.0.1/nova
@@ -53,7 +54,7 @@ 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.2
metadata_host=192.168.0.3
metadata_listen=0.0.0.0
enabled_apis=metadata

View File

@@ -25,20 +25,24 @@ restart quantum-plugin-openvswitch-agent</userinput></screen></para>
<para>Configure virtual bridging :<screen><userinput>ovs-vsctl add-br br-int</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>
file and modify :<screen><userinput>[DATABASE]
<para>Edit <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis> file and
modify
:<screen><userinput>[DATABASE]
sql_connection = mysql://quantum:password@192.168.0.1:3306/quantum
reconnect_interval = 2
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.0.0.4
enable_tunneling = True
[AGENT]
root_helper = sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf</userinput></screen></para>
local_ip = 10.0.0.2
enable_tunneling = True</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/api-paste.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
admin_user = quantum
admin_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Start the Agent :<screen><userinput>service quantum-plugin-openvswitch-agent restart</userinput></screen></para>
</listitem>

View File

@@ -4,6 +4,12 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_conclusion">
<title>Conclusion</title>
<para>That's it ! You can now use OpenStack API or the Dashboard to manage your own IaaS :
<link xlink:href="http://192.168.0.1/horizon">http://192.168.0.1/horizon</link></para>
<para>We have built a basic architecture for advanced testing
purpose. This kind of architecture is close to the
production, without High Availability (HA) and some
services such as those for running OpenStack Object
Storage. You can of course add as many compute nodes
as you want. If you need more specific help, please
read the official documentation of each project or
write a post to an OpenStack mailing list.</para>
</section>

View File

@@ -10,6 +10,10 @@
<para>Install the packages :<screen><userinput>apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget \
open-iscsi iscsitarget-dkms python-cinderclient</userinput></screen></para>
</listitem>
<listitem><para>Since there is a bug in tgtadm, we have to modify <emphasis role="bold"
>/etc/tgt/targets.conf</emphasis>
:<screen># include /etc/tgt/conf.d/*.conf
include /etc/tgt/conf.d/cinder_tgt.conf </screen></para></listitem>
<listitem>
<para>Configure &amp; start the iSCSI services :<screen><userinput>sed -i 's/false/true/g' /etc/default/iscsitarget
service iscsitarget start
@@ -20,15 +24,10 @@ service open-iscsi start</userinput></screen></para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/cinder/cinder.conf</emphasis>
file and modify :<screen><userinput>[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
file and modify
:<screen><userinput>[DEFAULT]
sql_connection = mysql://cinder:password@localhost:3306/cinder
iscsi_helper = ietadm
volume_group = cinder-volumes
rabbit_password = password
logdir = /var/log/cinder
verbose = true
auth_strategy = keystone</userinput></screen></para>
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/cinder/api-paste.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
@@ -36,7 +35,8 @@ admin_user = cinder
admin_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Create the volume :<screen><userinput>fdisk /dev/sdb
<para>Create the volume (on the second disk)
:<screen><userinput>fdisk /dev/sdb
[Create a Linux partition]

View File

@@ -21,13 +21,17 @@
</itemizedlist></para>
<para>After OS Installation, reboot the server.</para>
</listitem>
<listitem>
<para>Setup the Cloud Archive in editing <emphasis role="bold">/etc/apt/sources.list</emphasis> :
<screen><userinput>deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main</userinput></screen>
Then, you should setup keyring and upgrade packages :
<screen><userinput>apt-get install ubuntu-cloud-keyring
apt-get update &amp;&amp; apt-get -y dist-upgrade</userinput></screen>Reboot the server.</para>
</listitem>
<listitem>
<para>Since Ubuntu 12.04 LTS has OpenStack Essex
by default, we are going to use the Ubuntu Cloud
Archive for Folsom
:<screen>apt-get install ubuntu-cloud-keyring</screen>Edit
<emphasis role="bold"
>/etc/apt/source.list.d/cloud-archive.list</emphasis>
:<screen>deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main </screen>Upgrade
the system (and reboot if you need)
:<screen>apt-get update &amp;&amp; apt-get upgrade</screen></para>
</listitem>
<listitem>
<para>Configure the network :</para>
<para><itemizedlist>
@@ -43,36 +47,29 @@ auto eth0
gateway 192.168.0.254
dns-nameservers 8.8.8.8
# VMs Networks with OVS in tunnel mode
# API + Public Network
auto eth1
iface eth1 inet static
address 10.0.0.3
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</userinput></screen>Then,
address 7.7.7.7
netmask 255.255.255.0</userinput></screen>Then,
restart network service :
<screen><userinput>service networking restart</userinput></screen></para>
<para>
<itemizedlist>
<listitem>
<para>Enable <emphasis role="bold">IP forwarding</emphasis> since
this node will be a gateway (with quantum-l3-agent) between
external &amp; internal network :</para>
<para>Edit <emphasis role="bold">/etc/sysctl.conf
</emphasis>:</para>
</listitem>
</itemizedlist>
<screen><userinput>sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward</userinput></screen>
<programlisting>net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0 </programlisting>
<itemizedlist>
<listitem>
<para>Edit the <emphasis role="bold">/etc/hosts</emphasis> file and
add <emphasis role="bold">folsom-controller</emphasis> &amp;
<emphasis role="bold">folsom-compute</emphasis> hostnames
with correct IP.</para>
add <emphasis role="bold">folsom-controller</emphasis>, <emphasis
role="bold">folsom-network</emphasis> and <emphasis role="bold"
>folsom-compute</emphasis> hostnames with correct IP.</para>
</listitem>
</itemizedlist>
</para>
@@ -99,7 +96,7 @@ fudge 127.127.1.0 stratum 10</userinput></screen></para>
</section>
<section xml:id="controller-mysql">
<info>
<title>MySQL</title>
<title>MySQL Database Service</title>
</info>
<para>
<orderedlist>
@@ -124,6 +121,8 @@ 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';
@@ -138,6 +137,8 @@ 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</userinput></screen></para>
</listitem>
@@ -145,7 +146,7 @@ EOF</userinput></screen></para>
</para>
</section>
<section xml:id="controller-rabbitmq">
<title>Rabbit-MQ</title>
<title>RabbitMQ Messaging Service</title>
<para>
<orderedlist>
<listitem>

View File

@@ -4,9 +4,11 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_controller-dashboard">
<title>Dashboard (Horizon)</title>
<para>Install the packages :<screen><userinput>apt-get -y install apache2 libapache2-mod-wsgi openstack-dashboard \
memcached python-memcache</userinput></screen>You
can now login with <emphasis role="bold">admin</emphasis> / <emphasis role="bold">password</emphasis> credentials or <emphasis role="bold">demo</emphasis> /
<emphasis role="bold">password</emphasis>.</para>
<para>Install the packages
:<screen><userinput>apt-get -y install apache2 libapache2-mod-wsgi openstack-dashboard \
memcached python-memcache</userinput></screen>We
can now login with <emphasis role="bold">admin</emphasis> / <emphasis role="bold"
>password</emphasis> credentials or <emphasis role="bold">demo</emphasis> / <emphasis
role="bold">password</emphasis>.</para>
</section>

View File

@@ -28,9 +28,10 @@ rabbit_password = password</userinput></screen></para>
<para>Create Glance tables into the database :<screen><userinput>glance-manage db_sync</userinput></screen></para>
</listitem>
<listitem>
<para>Download and import <link xlink:href="http://uec-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64.tar.gz">Ubuntu 12.04 UEC Image</link> :<screen><userinput>
glance image-create --location http://uec-images.ubuntu.com/releases/precise/release/ubuntu-12.04-server-cloudimg-amd64.tar.gz --is-public true --disk-format qcow2 --container-format bare --name "Ubuntu 12.04 UEC"
</userinput></screen></para>
<para>Download and import Ubuntu 12.04 LTS UEC Image
:<screen>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"</screen></para>
</listitem>
<listitem>
<para>Check if the image has been introduced in the index

View File

@@ -10,7 +10,7 @@
<para>Databases (with MySQL)</para>
</listitem>
<listitem>
<para>Queues (with Rabbit-MQ)</para>
<para>Queues (with RabbitMQ)</para>
</listitem>
<listitem>
<para>Keystone</para>
@@ -25,7 +25,7 @@
<para>Cinder</para>
</listitem>
<listitem>
<para>Quantum (with Open-vSwitch plugin)</para>
<para>Quantum Server (with Open-vSwitch plugin)</para>
</listitem>
<listitem>
<para>Dashboard (with Horizon)</para>

View File

@@ -64,8 +64,11 @@ echo "source novarc">>.bashrc</userinput></screen></para>
</itemizedlist>
</listitem>
<listitem>
<para>Download the <link xlink:href="https://github.com/EmilienM/openstack-folsom-guide/raw/master/scripts/keystone-data.sh">data script</link> and fill Keystone database with datas (users,
tenants, services) :<screen><userinput>./keystone-data.sh</userinput></screen></para>
<para>Download the <link
xlink:href="https://github.com/EmilienM/openstack-folsom-guide/raw/master/scripts/keystone-data.sh"
>data script</link> and fill Keystone database
with data (users, tenants, services)
:<screen><userinput>./keystone-data.sh</userinput></screen></para>
</listitem>
<listitem>
<para>Download the <link

View File

@@ -16,12 +16,40 @@
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/api-paste.ini</emphasis>
file and modify :<screen><userinput>admin_tenant_name = service
file and modify
:<screen><userinput>admin_tenant_name = service
admin_user = nova
admin_password = password</userinput></screen>You
should also <emphasis role="bold">delete</emphasis> each
composite with "<emphasis role="bold">volume</emphasis>".</para>
<para>We can do that manually or with this command :<screen><userinput>sed -i '/volume/d' /etc/nova/api-paste.ini</userinput></screen></para>
admin_password = password</userinput></screen>Since
we are going to use Cinder for volumes, we should also <emphasis
role="bold">delete</emphasis> each part concerning "<emphasis
role="bold">nova-volume</emphasis>" :
<screen>============================================================
[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
============================================================</screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/nova.conf</emphasis> file

View File

@@ -14,12 +14,6 @@
<listitem>
<para>Start Open-vSwitch service &amp; restart the agent :<screen><userinput>/etc/init.d/openvswitch-switch start</userinput></screen></para>
</listitem>
<listitem>
<para>Configure virtual bridging :<screen><userinput>ovs-vsctl add-br br-int
ovs-vsctl add-br br-ex
ovs-vsctl br-set-external-id br-ex bridge-id br-ex
ovs-vsctl add-port br-ex eth2</userinput></screen></para>
</listitem>
</orderedlist>
</para>
</section>
@@ -28,9 +22,9 @@ ovs-vsctl add-port br-ex eth2</userinput></screen></para>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install quantum-server python-cliff \
<para>Install the packages
:<screen><userinput>apt-get -y install quantum-server python-cliff \
quantum-plugin-openvswitch-agent \
quantum-l3-agent quantum-dhcp-agent \
python-pyparsing</userinput></screen></para>
</listitem>
<listitem>
@@ -44,36 +38,22 @@ fake_rabbit = False
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis> file and modify :<screen><userinput>[DATABASE]
<para>Edit <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis>
file and modify :<screen><userinput>[DATABASE]
sql_connection = mysql://quantum:password@localhost:3306/quantum
reconnect_interval = 2
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.0.0.3
enable_tunneling = True
[AGENT]
root_helper = sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf</userinput></screen>
<db:note xmlns:db="http://docbook.org/ns/docbook">
<db:para>It's more handy to choose <emphasis role="bold">tunnel mode</emphasis> since you don't have to configure your physical switchs for VLANs.</db:para>
enable_tunneling = True</userinput></screen>
<db:note xmlns:db="http://docbook.org/ns/docbook">
<db:para>It's more handy to choose
<emphasis role="bold">tunnel
mode</emphasis> since you don't
have to configure your physical
switches for VLANs.</db:para>
</db:note></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/quantum/l3_agent.ini</emphasis> file and modify :<screen><userinput>[DEFAULT]
debug = True
interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver
auth_url = http://localhost:35357/v2.0
auth_region = RegionOne
admin_tenant_name = service
admin_user = quantum
admin_password = password
root_helper = sudo quantum-rootwrap /etc/quantum/rootwrap.conf
metadata_ip = 192.168.0.1
use_namespaces = False</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/dhcp_agent.ini</emphasis> file and add :<screen><userinput>use_namespaces = False</userinput></screen></para>
</listitem>
@@ -85,23 +65,9 @@ admin_password = password</userinput></screen></para>
</itemizedlist>
</listitem>
<listitem>
<para>Start the services :<screen><userinput>service quantum-server restart
service quantum-plugin-openvswitch-agent restart
service quantum-dhcp-agent restart
service quantum-l3-agent restart</userinput></screen></para>
</listitem>
<listitem>
<para>Download my <link xlink:href="https://github.com/EmilienM/openstack-folsom-guide/raw/master/scripts/quantum-networking.sh">Quantum script</link>. Before launching it, you should modify
networking informations inside the script. All is commented and you can
customize belong your needs. In this script, we actually create one
tenant network with its router, and one external network connected to
the tenant router. We are using the "<emphasis role="bold">Per-tenant
Routers with Private Networks</emphasis>"
use-case.<screen><userinput>./quantum-networking.sh</userinput></screen></para>
</listitem>
<listitem>
<para>We need now to configure again the L3 Agent in editing <emphasis role="bold">/etc/quantum/l3_agent.ini</emphasis> file and modify the
values for router and external network.</para>
<para>Start the services
:<screen><userinput>service quantum-server restart
service quantum-plugin-openvswitch-agent restart</userinput></screen></para>
</listitem>
</orderedlist>
</para>

View File

@@ -4,8 +4,12 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_intro">
<title>Introduction</title>
<para>This document helps anyone who wants to deploy OpenStack Folsom for development purpose with Ubuntu 12.04 LTS (using Cloud Archives).</para>
<para>We are going to install a dual-node setup with one controller and one compute node.</para>
<para>Of course, you can setup as many computes nodes as you want.</para>
<para>This document helps anyone who wants to deploy OpenStack
Folsom for development purposes with Ubuntu 12.04 LTS (using
the Ubuntu Cloud Archive).</para>
<para>We are going to install a three-node setup with one
controller, one network and one compute node.</para>
<para>Of course, you can setup as many computes nodes as you want. This document is a good start
for beginners in OpenStack who want to install a testing infrastructure.</para>
</section>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-network-common">
<title>Common services</title>
<section xml:id="network-os">
<title>Operating System</title>
<orderedlist>
<listitem>
<para>Install Ubuntu with this parameters :<itemizedlist>
<listitem>
<para>Time zone : <emphasis role="bold">UTC</emphasis></para>
</listitem>
<listitem>
<para>Hostname : <emphasis role="bold">folsom-network</emphasis></para>
</listitem>
<listitem>
<para>Packages : <emphasis role="bold">OpenSSH-Server</emphasis></para>
</listitem>
</itemizedlist></para>
<para>After OS Installation, reboot the server.</para>
</listitem>
<listitem>
<para>Since Ubuntu 12.04 LTS has OpenStack Essex by default, we are going to use
Cloud Archives for Folsom :<screen>apt-get install ubuntu-cloud-keyring</screen>Edit
<emphasis role="bold">/etc/apt/source.list.d/cloud-archive.list</emphasis>
:<screen>deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main </screen>Upgrade
the system (and reboot if you need)
:<screen>apt-get update &amp;&amp; apt-get upgrade</screen></para>
</listitem>
<listitem>
<para>Configure the network :</para>
<para><itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/network/interfaces</emphasis> file
:</para>
</listitem>
</itemizedlist><screen><userinput># 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.0.0.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</userinput></screen>Then,
restart network service :
<screen><userinput>service networking restart</userinput></screen></para>
<para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/sysctl.conf
</emphasis>:</para>
</listitem>
</itemizedlist>
<programlisting>net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0 </programlisting>
<itemizedlist>
<listitem>
<para>Edit the <emphasis role="bold">/etc/hosts</emphasis> file and
add <emphasis role="bold">folsom-controller</emphasis>, <emphasis
role="bold">folsom-network</emphasis> and <emphasis role="bold"
>folsom-compute</emphasis> hostnames with correct IP.</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>Install Configure NTP :<itemizedlist>
<listitem>
<para>Install the package :<screen><userinput>apt-get install -y ntp</userinput></screen></para>
</listitem>
<listitem>
<para>Configure <emphasis role="bold">/etc/ntp.conf</emphasis> file :<screen><userinput>server 192.168.0.1</userinput></screen></para>
</listitem>
<listitem>
<para>Restart the service
:<screen><userinput>service ntp restart</userinput></screen></para>
</listitem>
</itemizedlist></para>
</listitem>
</orderedlist>
</section>
</section>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_network-intro">
<title>Introduction</title>
<para>The Network node will provide :
<itemizedlist>
<listitem>
<para>Virtual Routing (Quantum L3 Agent)</para>
</listitem>
<listitem>
<para>Virtual Bridging (Open-vSwitch + Quantum Agent) with tunneling</para>
</listitem>
<listitem>
<para>DHCP Server (Quantum DHCP Agent)</para>
</listitem>
</itemizedlist></para>
</section>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_network-operating">
<title>Virtual Networking</title>
<section xml:id="create-networking">
<title>Create Virtual Networking</title>
<para>
<orderedlist>
<listitem>
<para>Download the <link xlink:href="https://github.com/EmilienM/openstack-folsom-guide/raw/master/scripts/quantum-networking.sh">Quantum script</link>.
We are using the "<emphasis role="bold">Per-tenant
Routers with Private Networks</emphasis>" use-case.</para></listitem>
<listitem>
<para>Edit the script belong your networking (public network, floatings IP).</para>
</listitem>
<listitem>
<para>Execute the script.</para>
</listitem>
</orderedlist>
</para>
</section>
<section xml:id="configure-l3">
<title>L3 Configuration</title>
<itemizedlist>
<listitem>
<para>Copy the external network ID :<screen>quantum net-list</screen></para>
</listitem>
<listitem>
<para>Edit /etc/quantum/l3-agent.ini and paste the ID :<screen>gateway_external_net_id = ID</screen></para>
</listitem>
<listitem>
<para>Copy the provider router ID :<screen>quantum router-list</screen></para>
</listitem>
<listitem>
<para>Edit /etc/quantum/l3-agent.ini and paste the ID :<screen>router_id = ID</screen></para>
</listitem>
<listitem>
<para>Restart L3 Agent :<screen>service quantum-l3-agent restart</screen></para>
</listitem>
</itemizedlist>
</section>
</section>

View File

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_network-services">
<title>Network Services</title>
<section xml:id="network-ovs">
<title>Open-vSwitch</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install quantum-plugin-openvswitch-agent
quantum-dhcp-agent quantum-l3-agent</userinput></screen></para>
</listitem>
<listitem>
<para>Create Virtual Bridging
:<screen>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 </screen></para>
</listitem>
</orderedlist>
</para>
</section>
<section xml:id="network-quantum">
<title>Quantum</title>
<para>Configure Quantum services :</para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/api-paste.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
admin_user = quantum
admin_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/l3_agent.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
admin_user = quantum
admin_password = password
metadata_ip = 192.168.0.1
use_namespaces=False</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/quantum.conf</emphasis> file and modify :<screen><userinput>core_plugin = \
quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
auth_strategy = keystone
fake_rabbit = False
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini</emphasis> file and
modify :<screen>[DATABASE]
sql_connection = mysql://quantum:password@localhost: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</screen>
<db:note xmlns:db="http://docbook.org/ns/docbook">
<db:para>It's more handy to choose <emphasis
role="bold">tunnel mode</emphasis>
since you don't have to configure your
physical switches for VLANs.</db:para>
</db:note></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/dhcp_agent.ini</emphasis> file and add :<screen><userinput>use_namespaces = False</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/quantum/api-paste.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
admin_user = quantum
admin_password = password</userinput></screen></para>
</listitem>
</itemizedlist>
<para>Start the services
:<screen>service quantum-plugin-openvswitch-agent restart
service quantum-dhcp-agent restart
service quantum-l3-agent restart</screen></para>
</section>
</section>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_network">
<title>Network Node</title>
<?dbhtml stop-chunking?>
<xi:include href="basic-install_network-intro.xml" />
<xi:include href="basic-install_network-common.xml" />
<xi:include href="basic-install_network-services.xml" />
<xi:include href="basic-install_network-operating.xml" />
</section>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_operate">
<title>Create your first VM</title>
<orderedlist>
<listitem>
<para>You can now use OpenStack API or the Dashboard to manage your
own IaaS : <link
xlink:href="http://192.168.0.1/horizon"
>http://192.168.0.1/horizon</link> with demo /
password credentials.</para>
</listitem>
<listitem>
<para>Edit the security group "Default" to allow ICMP and SSH.</para>
</listitem>
<listitem>
<para>Create a personal keypair.</para>
</listitem>
<listitem>
<para>In the Dashboard, go to "Instances and Images" for
spawning a new VM.</para>
</listitem>
<listitem>
<para>Since Horizon does not manage L3 in Folsom release, we have to configure floating IP from Quantum CLI (using demo tenant).
To do that, you need to get the ext_net ID and the port_id of your VM :
<screen>quantum net-list
quantum port-list</screen></para>
</listitem>
<listitem>
<para>Now, we are going to create a floating-IP attached to the virtual port of our VM and routed to the external network :
<screen>quantum floatingip-create --port_id port_id ext_net_id</screen></para>
</listitem>
<listitem>
<para>That's it! You should be able to ping your VM using
floating IP.</para>
</listitem>
</orderedlist>
</section>

View File

@@ -4,43 +4,82 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="basic-install_requirements">
<title>Requirements</title>
<para>You need at least two machines (virtual or physical) with 3 NIC (Managment Network + VMs
Traffic in tunnel mode + Public Network) for controller node and 2 NIC (Managment
Network + VMs Traffic in tunnel mode) for compute node. You need also to download Ubuntu
12.04 (LTS).</para>
<table frame="all">
<info>
<title>Architecture and informations</title>
</info>
<tgroup cols="3">
<colspec colname="c1" colnum="1" colwidth="1.0*"/>
<colspec colname="c2" colnum="2" colwidth="1.0*"/>
<colspec colname="newCol3" colnum="3" colwidth="1*"/>
<thead>
<row>
<entry/>
<entry>controller</entry>
<entry>compute</entry>
</row>
</thead>
<tbody>
<row>
<entry>Managment Network</entry>
<entry>192.168.0.1/24</entry>
<entry>192.168.0.2/24</entry>
</row>
<row>
<entry>Hostname</entry>
<entry>folsom-controller</entry>
<entry>folsom-compute</entry>
</row>
<row>
<entry>Services</entry>
<entry>MySQL, RabbitMQ, Nova, Cinder, Glance, Keystone, Quantum,
Open-vSwitch</entry>
<entry>nova-compute, KVM, nova-api, Quantum Agent with Open-vSwitch</entry>
</row>
</tbody>
</tgroup>
</table>
<para>You need at least three machines (virtual or physical) with Ubuntu 12.04 (LTS)
installed.</para>
<table rules="all" frame="border" width="100%">
<caption>Architecture and node information</caption>
<thead>
<tr>
<td/>
<td><para>controller</para></td>
<td><para>network</para></td>
<td><para>compute</para>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<para>Hostname</para></td>
<td><para>folsom-controller</para></td>
<td><para>folsom-network</para></td>
<td><para>folsom-compute</para>
</td>
</tr>
<tr>
<td>
<para>Services</para></td>
<td><para>MySQL, RabbitMQ, Nova, Cinder, Glance,
Keystone, Quantum, Open-vSwitch</para></td>
<td><para>Quantum-L3-agent, Quantum-DHCP-agent,
Open-vSwitch</para></td>
<td><para>nova-compute, KVM, nova-api, Quantum Agent
with Open-vSwitch</para>
</td>
</tr>
<tr>
<td>
<para>Minimum number of disks</para></td>
<td><para>2</para></td>
<td><para>1</para></td>
<td><para>1</para>
</td>
</tr>
<tr>
<td>
<para>External + API network</para></td>
<td><para>7.7.7.7/24</para></td>
<td><para>7.7.7.8/24</para></td>
<td><para>-</para>
</td>
</tr>
<tr>
<td>
<para>Management network</para></td>
<td><para>192.168.0.1/24</para></td>
<td><para>192.168.0.2/24</para></td>
<td><para>192.168.0.3/24</para>
</td>
</tr>
<tr>
<td>
<para>Data network</para></td>
<td><para>-</para></td>
<td><para>10.10.10.1/24</para></td>
<td><para>10.10.10.2/24</para>
</td>
</tr>
<tr>
<td>
<para><emphasis role="bold">Total number of
NIC</emphasis></para></td>
<td><para><emphasis role="bold"
>2</emphasis></para></td>
<td><para><emphasis role="bold"
>3</emphasis></para></td>
<td><para><emphasis role="bold">2</emphasis></para>
</td>
</tr>
</tbody>
</table>
</section>

View File

@@ -7,8 +7,11 @@
xml:id="openstack-basic-install-trunk">
<title>OpenStack Basic Install</title>
<xi:include href="basic-install_intro.xml" />
<xi:include href="basic-install_architecture.xml" />
<xi:include href="basic-install_requirements.xml" />
<xi:include href="basic-install_controller.xml" />
<xi:include href="basic-install_network.xml" />
<xi:include href="basic-install_compute.xml" />
<xi:include href="basic-install_operate.xml" />
<xi:include href="basic-install_conclusion.xml" />
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB