Create a new guide for Basic Install

Patchset fixes PDF link from html, chunks with a processing
directive, and adds links for the www/ html files.

Rebase against master, clean up install html page a bit.

Change-Id: I989c732fde3a8fc3ba5a29893bbd29120a8ae41b
This commit is contained in:
Emilien Macchi
2012-11-14 18:05:38 +01:00
committed by annegentle
parent d8e1b71edb
commit af7dd74007
23 changed files with 1162 additions and 7 deletions

View File

@@ -0,0 +1,141 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openstack.docs</groupId>
<artifactId>openstack-basic-install</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>OpenStack Basic Install Guide</name>
<properties>
<!-- This is set by Jenkins according to the branch. -->
<release.path.name>folsom</release.path.name>
<comments.enabled>1</comments.enabled>
<operating.system>apt</operating.system>
<!-- This is set by Jenkins to run twice for each similar operating system group -->
<profile.os>ubuntu</profile.os>
</properties>
<!-- ################################################ -->
<!-- USE "mvn clean generate-sources" to run this POM -->
<!-- ################################################ -->
<profiles>
<profile>
<id>Rackspace Research Repositories</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>rackspace-research</id>
<name>Rackspace Research Repository</name>
<url>http://maven.research.rackspacecloud.com/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>rackspace-research</id>
<name>Rackspace Research Repository</name>
<url>http://maven.research.rackspacecloud.com/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>target/docbkx/pdf</directory>
<excludes>
<exclude>**/*.fo</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<id>goal1</id>
<goals>
<goal>generate-pdf</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<pdfUrl>basic-install-${release.path.name}.pdf</pdfUrl>
<highlightSource>false</highlightSource>
<!-- The following elements sets the autonumbering of sections in output for chapter numbers but no numbered sections-->
<sectionAutolabel>0</sectionAutolabel>
<sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>
</configuration>
</execution>
<execution>
<id>goal2</id>
<goals>
<goal>generate-webhelp</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- These parameters only apply to webhelp -->
<pdfUrl>basic-install-${release.path.name}.pdf</pdfUrl>
<enableDisqus>1</enableDisqus>
<disqusShortname>os-basicinstall</disqusShortname>
<enableGoogleAnalytics>1</enableGoogleAnalytics>
<googleAnalyticsId>UA-17511903-1</googleAnalyticsId>
<generateToc>
appendix toc,title
article/appendix nop
article toc,title
book title,figure,table,example,equation
chapter toc,title
part toc,title
preface toc,title
qandadiv toc
qandaset toc
reference toc,title
set toc,title
</generateToc>
<!-- The following elements sets the autonumbering of sections in output for chapter numbers but no numbered sections-->
<sectionAutolabel>0</sectionAutolabel>
<sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>
<postProcess>
<!-- Copies webhelp (HTML output) to desired URL location on docs.openstack.org -->
<copy
todir="${basedir}/target/docbkx/webhelp/${release.path.name}/basic-install/">
<fileset
dir="${basedir}/target/docbkx/webhelp/bk-basic-install/">
<include name="**/*" />
</fileset>
</copy>
<!--Moves PDF to the needed placement -->
<move failonerror="false"
file="${basedir}/target/docbkx/pdf/bk-basic-install.pdf"
tofile="${basedir}/target/docbkx/webhelp/${release.path.name}/basic-install/content/basic-install-${release.path.name}.pdf"/>
<!--Deletes leftover uneeded directories -->
<delete dir="${basedir}/target/docbkx/webhelp/bk-basic-install"/>
</postProcess>
</configuration>
</execution>
</executions>
<configuration>
<!-- These parameters apply to pdf and webhelp -->
<xincludeSupported>true</xincludeSupported>
<sourceDirectory>src</sourceDirectory>
<includes>
bk-basic-install.xml
</includes>
<canonicalUrlBase>http://docs.openstack.org/${release.path.name}/basic-install/content/</canonicalUrlBase>
<profileSecurity>reviewer</profileSecurity>
<branding>openstack</branding>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,80 @@
<?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_compute-common">
<title>Common services</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-compute</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>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>
</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
# VMs Networks with OVS in tunnel mode
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>
<para>
<itemizedlist>
<listitem>
<para>Enable <emphasis role="bold">IP forwarding</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>
<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>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem>
<para>Install &amp; 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>

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_compute-hypervisor">
<title>Hypervisor</title>
<para>
<orderedlist>
<listitem>
<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>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/libvirt/qemu.conf</emphasis>
file and add :<screen><userinput>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"]</userinput></screen></para>
</listitem>
<listitem>
<para>Disable <emphasis role="bold">KVM default virtual bridge</emphasis> to avoid any confusion :<screen><userinput>virsh net-destroy default
virsh net-undefine default</userinput></screen></para>
</listitem>
<listitem>
<para>Allow <emphasis role="bold">Live Migrations</emphasis> :</para>
<para>Edit <emphasis role="bold">/etc/libvirt/libvirtd.conf</emphasis> file
:<programlisting>listen_tls = 0
listen_tcp = 1
auth_tcp = "none" </programlisting></para>
<para>Modify libvirtd_opts variable in <emphasis role="bold">/etc/init/libvirt-bin.conf</emphasis> file :<screen><userinput>env libvirtd_opts="-d -l" </userinput></screen></para>
<para>Edit <emphasis role="bold">/etc/default/libvirt-bin</emphasis> file :<screen><userinput>libvirtd_opts="-d -l" </userinput></screen></para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>Restart libvirt :<screen><userinput>service libvirt-bin restart</userinput></screen>
</para>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,22 @@
<?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_compute-intro">
<title>Introduction</title>
<para>The Compute node will provide :
<itemizedlist>
<listitem>
<para>Hypervisor (KVM)</para>
</listitem>
<listitem>
<para>nova-compute</para>
</listitem>
<listitem>
<para>nova-api-metadata</para>
</listitem>
<listitem>
<para>Quantum OVS Agent</para>
</listitem>
</itemizedlist></para>
</section>

View File

@@ -0,0 +1,103 @@
<?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_compute-nova">
<title>Nova</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install nova-api-metadata nova-compute-kvm</userinput></screen></para>
</listitem>
<listitem>
<para>Configure Nova :</para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/api-paste.ini</emphasis>
file and modify :<screen><userinput>admin_tenant_name = service
admin_user = nova
admin_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold"
>/etc/nova/nova-compute.conf</emphasis> file and modify :<screen><userinput>[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</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/nova.conf</emphasis> file
and modify :<screen><userinput>[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.simple.SimpleScheduler
# 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.2
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
# 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://192.168.0.1:6080/vnc_auto.html
vncserver_proxyclient_address=127.0.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</userinput></screen></para>
</listitem>
<listitem>
<para>Restart Nova services :<screen><userinput>service nova-api-metadata restart
service nova-compute restart</userinput></screen></para>
</listitem>
</itemizedlist>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,48 @@
<?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_compute-quantum">
<title>Quantum</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get install -y quantum-plugin-openvswitch-agent</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_host = 192.168.0.1
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Start Open-vSwitch service &amp; restart the agent :<screen><userinput>/etc/init.d/openvswitch-switch start
restart quantum-plugin-openvswitch-agent</userinput></screen></para>
</listitem>
<listitem>
<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]
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>
</listitem>
<listitem>
<para>Start the Agent :<screen><userinput>service quantum-plugin-openvswitch-agent restart</userinput></screen></para>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,13 @@
<?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_compute">
<title>Compute Node</title>
<?dbhtml stop-chunking?>
<xi:include href="basic-install_compute-intro.xml" />
<xi:include href="basic-install_compute-common.xml" />
<xi:include href="basic-install_compute-hypervisor.xml" />
<xi:include href="basic-install_compute-nova.xml" />
<xi:include href="basic-install_compute-quantum.xml" />
</section>

View File

@@ -0,0 +1,9 @@
<?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_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>
</section>

View File

@@ -0,0 +1,58 @@
<?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_controller-cinder">
<title>Cinder</title>
<para>
<orderedlist>
<listitem>
<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>Configure &amp; start the iSCSI services :<screen><userinput>sed -i 's/false/true/g' /etc/default/iscsitarget
service iscsitarget start
service open-iscsi start</userinput></screen></para>
</listitem>
<listitem>
<para>Configure Cinder :</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
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>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/cinder/api-paste.ini</emphasis> file and modify :<screen><userinput>admin_tenant_name = service
admin_user = cinder
admin_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Create the volume :<screen><userinput>fdisk /dev/sdb
[Create a Linux partition]
pvcreate /dev/sdb1
vgcreate cinder-volumes /dev/sdb1</userinput></screen></para>
</listitem>
<listitem>
<para>Create Cinder tables into the database :<screen><userinput>cinder-manage db sync</userinput></screen></para>
</listitem>
<listitem>
<para>Restart the services :<screen><userinput>service cinder-api restart
service cinder-scheduler restart
service cinder-volume restart</userinput></screen></para>
</listitem>
</itemizedlist>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,161 @@
<?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_controller-common">
<title>Common services</title>
<section xml:id="controller-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-controller</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>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>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.1
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 8.8.8.8
# VMs Networks with OVS in tunnel mode
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,
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>
</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>
<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>
</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 ntp.ubuntu.com iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10</userinput></screen></para>
</listitem>
<listitem>
<para>Restart the service
:<screen><userinput>service ntp restart</userinput></screen></para>
</listitem>
</itemizedlist></para>
</listitem>
</orderedlist>
</section>
<section xml:id="controller-mysql">
<info>
<title>MySQL</title>
</info>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install mysql-server python-mysqldb</userinput></screen></para>
</listitem>
<listitem>
<para>Allow connection from the network
:<screen><userinput>sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf</userinput></screen></para>
</listitem>
<listitem>
<para>Restart the service
:<screen><userinput>service mysql restart</userinput></screen></para>
</listitem>
<listitem>
<para>Create Databases, Users, Rights :
<screen><userinput>mysql -u root -ppassword &lt;&lt;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';
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';
FLUSH PRIVILEGES;
EOF</userinput></screen></para>
</listitem>
</orderedlist>
</para>
</section>
<section xml:id="controller-rabbitmq">
<title>Rabbit-MQ</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :</para>
<screen><userinput>apt-get -y install rabbitmq-server</userinput></screen></listitem>
<listitem>
<para>Change the default password :</para>
<screen><userinput>rabbitmqctl change_password guest password</userinput></screen></listitem>
</orderedlist>
</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_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>
</section>

View File

@@ -0,0 +1,53 @@
<?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_controller-glance">
<title>Glance</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install glance glance-api python-glanceclient glance-common</userinput></screen></para>
</listitem>
<listitem>
<para>Configure Glance :</para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/glance/glance-api.conf</emphasis> and <emphasis role="bold">/etc/glance/glance-registry.conf</emphasis> files and modify :<screen><userinput>sql_connection = mysql://glance:password@localhost/glance
admin_tenant_name = service
admin_user = glance
admin_password = password</userinput></screen>For
<emphasis role="bold">glance-api.conf</emphasis>, modify :
<screen><userinput>notifier_strategy = rabbit
rabbit_password = password</userinput></screen></para>
</listitem>
<listitem>
<para>Restart Glance services :<screen><userinput>service glance-api restart &amp;&amp; service glance-registry restart</userinput></screen></para>
</listitem>
<listitem>
<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>tar xzvf ubuntu-12.04-server-cloudimg-amd64.tar.gz
glance image-create --name="Ubuntu 12.04 UEC" --public --container-format=ovf \
--disk-format=qcow2 &lt; precise-server-cloudimg-amd64.img</userinput></screen></para>
</listitem>
<listitem>
<para>Check if the image has been introduced in the index
:<screen><userinput>glance image-list
+--------+---------+-------------+------------------+------------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------+---------+-------------+------------------+------------+--------+
| 9a17961| Ubuntu | qcow2 | ovf | 1476395008 | active |
+--------+---------+-------------+------------------+------------+--------+</userinput></screen></para>
</listitem>
<listitem>
<para>You can also install <link xlink:href="https://review.openstack.org/#/c/7615/">Glance Replicator</link> (new in Folsom).
More informations about it <link xlink:href="http://www.stillhq.com/openstack/000007.html">here</link>.</para>
</listitem>
</itemizedlist>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,34 @@
<?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_controller-intro">
<title>Introduction</title>
<para>The Controller node will provide :
<itemizedlist>
<listitem>
<para>Databases (with MySQL)</para>
</listitem>
<listitem>
<para>Queues (with Rabbit-MQ)</para>
</listitem>
<listitem>
<para>Keystone</para>
</listitem>
<listitem>
<para>Glance</para>
</listitem>
<listitem>
<para>Nova (without nova-compute)</para>
</listitem>
<listitem>
<para>Cinder</para>
</listitem>
<listitem>
<para>Quantum (with Open-vSwitch plugin)</para>
</listitem>
<listitem>
<para>Dashboard (with Horizon)</para>
</listitem>
</itemizedlist></para>
</section>

View File

@@ -0,0 +1,76 @@
<?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_controller-keystone">
<title>Keystone</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages
:<screen><userinput>apt-get -y install keystone python-keystone python-keystoneclient</userinput></screen></para>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/keystone/keystone.conf</emphasis> :<programlisting>[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
(...)</programlisting></para>
</listitem>
<listitem>
<para>Restart Keystone and create the tables in the database
:<screen><userinput>service keystone restart
keystone-manage db_sync</userinput></screen></para>
</listitem>
<listitem>
<para>Load environment variables :</para>
<para>
<itemizedlist>
<listitem>
<para>Create <emphasis role="bold">novarc</emphasis> file
:<screen><userinput>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</userinput></screen></para>
</listitem>
</itemizedlist>
</para>
<itemizedlist>
<listitem>
<para>Export the variables
:<screen><userinput>source novarc
echo "source novarc">>.bashrc</userinput></screen></para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>Download the <link xlink:href="https://github.com/EmilienM/openstack-folsom-guide/blob/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>
</listitem>
<listitem>
<para>Download the <link
xlink:href="https://github.com/EmilienM/openstack-folsom-guide/blob/master/scripts/keystone-endpoints.sh">endpoint script</link> and create the endpoints (for projects) :<screen><userinput>./keystone-endpoints.sh</userinput></screen></para>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,101 @@
<?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_controller-nova">
<title>Nova</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get -y install nova-api nova-cert nova-common \
nova-scheduler python-nova python-novaclient nova-consoleauth novnc \
nova-novncproxy</userinput></screen></para>
</listitem>
<listitem>
<para>Configure Nova :</para>
<itemizedlist>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/api-paste.ini</emphasis>
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>
</listitem>
<listitem>
<para>Edit <emphasis role="bold">/etc/nova/nova.conf</emphasis> file
and modify :<screen><userinput>[DEFAULT]
# MySQL Connection #
sql_connection=mysql://nova:password@192.168.0.1/nova
# nova-scheduler #
rabbit_password=password
scheduler_driver=nova.scheduler.simple.SimpleScheduler
# 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://192.168.0.1:6080/vnc_auto.html
vncserver_proxyclient_address=127.0.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</userinput></screen></para>
</listitem>
<listitem>
<para>Create Nova tables into the database :<screen><userinput>nova-manage db sync</userinput></screen></para>
</listitem>
<listitem>
<para>Restart Nova services :<screen><userinput>service nova-api restart
service nova-cert restart
service nova-consoleauth restart
service nova-scheduler restart
service novnc restart</userinput></screen></para>
</listitem>
</itemizedlist>
</listitem>
</orderedlist>
</para>
</section>

View File

@@ -0,0 +1,109 @@
<?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_controller-quantum">
<title>Quantum</title>
<section xml:id="controller-ovs">
<title>Open-vSwitch</title>
<para>
<orderedlist>
<listitem>
<para>Install the packages :<screen><userinput>apt-get install -y openvswitch-switch</userinput></screen></para>
</listitem>
<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>
<section xml:id="controller-quantum">
<title>Quantum</title>
<para>
<orderedlist>
<listitem>
<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>
<para>Configure Quantum services :</para>
<itemizedlist>
<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><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>
</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>
<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>
</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/blob/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>
</listitem>
</orderedlist>
</para>
</section>
</section>

View File

@@ -0,0 +1,16 @@
<?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_controller">
<title>Controller Node</title>
<?dbhtml stop-chunking?>
<xi:include href="basic-install_controller-intro.xml" />
<xi:include href="basic-install_controller-common.xml" />
<xi:include href="basic-install_controller-keystone.xml" />
<xi:include href="basic-install_controller-glance.xml" />
<xi:include href="basic-install_controller-nova.xml" />
<xi:include href="basic-install_controller-cinder.xml" />
<xi:include href="basic-install_controller-quantum.xml" />
<xi:include href="basic-install_controller-dashboard.xml" />
</section>

View File

@@ -0,0 +1,11 @@
<?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_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>
</section>

View File

@@ -0,0 +1,46 @@
<?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_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>
</section>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:html="http://www.w3.org/1999/xhtml" version="5.0"
xml:id="openstack-basic-install-trunk">
<title>OpenStack Basic Install</title>
<xi:include href="basic-install_intro.xml" />
<xi:include href="basic-install_requirements.xml" />
<xi:include href="basic-install_controller.xml" />
<xi:include href="basic-install_compute.xml" />
<xi:include href="basic-install_conclusion.xml" />
</chapter>