Update headings, edits for consistency/clarity/ Install Guide
Partial-Bug: #1250515 backport: havana Change-Id: I11117af7e13966f70e0050f96a7b2a1c4bcb59ca author: diane fleming
This commit is contained in:
parent
55b1ecab73
commit
4247c75744
@ -45,10 +45,10 @@
|
|||||||
by using the <literal>controller</literal> and
|
by using the <literal>controller</literal> and
|
||||||
<literal>compute1</literal> host names.</para>
|
<literal>compute1</literal> host names.</para>
|
||||||
<!-- these fedora only paragraphs are confirmed not needed in centos -->
|
<!-- these fedora only paragraphs are confirmed not needed in centos -->
|
||||||
<para os="fedora">Disable the <systemitem role="service"
|
<para os="fedora">Disable the <systemitem class="service"
|
||||||
>NetworkManager</systemitem> service and enable the
|
>NetworkManager</systemitem> service and enable the
|
||||||
<systemitem role="service">network</systemitem> service. The
|
<systemitem class="service">network</systemitem> service. The
|
||||||
<systemitem role="service">network</systemitem> service is
|
<systemitem class="service">network</systemitem> service is
|
||||||
more suitable for the static network configuration done in this
|
more suitable for the static network configuration done in this
|
||||||
guide.</para>
|
guide.</para>
|
||||||
|
|
||||||
@ -56,7 +56,6 @@
|
|||||||
<prompt>#</prompt> <userinput>service network start</userinput>
|
<prompt>#</prompt> <userinput>service network start</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig NetworkManager off</userinput>
|
<prompt>#</prompt> <userinput>chkconfig NetworkManager off</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig network on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig network on</userinput></screen>
|
||||||
|
|
||||||
<note os="fedora">
|
<note os="fedora">
|
||||||
<para>Since Fedora 19, <literal>firewalld</literal> replaces
|
<para>Since Fedora 19, <literal>firewalld</literal> replaces
|
||||||
<literal>iptables</literal> as the default firewall
|
<literal>iptables</literal> as the default firewall
|
||||||
@ -72,13 +71,12 @@
|
|||||||
<prompt>#</prompt> <userinput>chkconfig firewalld off</userinput>
|
<prompt>#</prompt> <userinput>chkconfig firewalld off</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig iptables on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig iptables on</userinput></screen>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para os="opensuse;sles">When you set up your system, use the
|
<para os="opensuse;sles">When you set up your system, use the
|
||||||
traditional network scripts and do not use <systemitem
|
traditional network scripts and do not use <systemitem
|
||||||
role="service">NetworkManager</systemitem>. You can change the
|
class="service">NetworkManager</systemitem>. You can change
|
||||||
settings after installation with the YaST network module:</para>
|
the settings after installation with the YaST network
|
||||||
|
module:</para>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
|
||||||
|
|
||||||
<para>Configure both <literal>eth0</literal> and
|
<para>Configure both <literal>eth0</literal> and
|
||||||
<literal>eth1</literal>. The examples in this guide use the
|
<literal>eth1</literal>. The examples in this guide use the
|
||||||
<literal>192.168.0.<replaceable>x</replaceable></literal> IP
|
<literal>192.168.0.<replaceable>x</replaceable></literal> IP
|
||||||
@ -86,7 +84,6 @@
|
|||||||
<literal>10.0.0.<replaceable>x</replaceable></literal> IP
|
<literal>10.0.0.<replaceable>x</replaceable></literal> IP
|
||||||
addresses for the external network. Make sure to connect your
|
addresses for the external network. Make sure to connect your
|
||||||
network devices to the correct network.</para>
|
network devices to the correct network.</para>
|
||||||
|
|
||||||
<para>In this guide, the controller node uses the
|
<para>In this guide, the controller node uses the
|
||||||
<literal>192.168.0.10</literal> and
|
<literal>192.168.0.10</literal> and
|
||||||
<literal>10.0.0.10</literal> IP addresses. When you create the
|
<literal>10.0.0.10</literal> IP addresses. When you create the
|
||||||
@ -103,7 +100,6 @@
|
|||||||
</imageobject>
|
</imageobject>
|
||||||
</mediaobject>
|
</mediaobject>
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
<example os="fedora">
|
<example os="fedora">
|
||||||
<title><filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename></title>
|
<title><filename>/etc/sysconfig/network-scripts/ifcfg-eth0</filename></title>
|
||||||
<programlisting language="ini"># Internal Network
|
<programlisting language="ini"># Internal Network
|
||||||
@ -115,7 +111,6 @@ NETMASK=255.255.255.0
|
|||||||
DEFROUTE=yes
|
DEFROUTE=yes
|
||||||
ONBOOT=yes</programlisting>
|
ONBOOT=yes</programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example os="fedora">
|
<example os="fedora">
|
||||||
<title><filename>/etc/sysconfig/network-scripts/ifcfg-eth1</filename></title>
|
<title><filename>/etc/sysconfig/network-scripts/ifcfg-eth1</filename></title>
|
||||||
<programlisting language="ini"># External Network
|
<programlisting language="ini"># External Network
|
||||||
@ -127,7 +122,6 @@ NETMASK=255.255.255.0
|
|||||||
DEFROUTE=yes
|
DEFROUTE=yes
|
||||||
ONBOOT=yes</programlisting>
|
ONBOOT=yes</programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para os="opensuse;sles">To configure the network interfaces,
|
<para os="opensuse;sles">To configure the network interfaces,
|
||||||
start the YaST network module, as follows:</para>
|
start the YaST network module, as follows:</para>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>yast2 network</userinput></screen>
|
||||||
@ -189,72 +183,57 @@ iface eth1 inet static
|
|||||||
older versions of Fedora, you set this in the file
|
older versions of Fedora, you set this in the file
|
||||||
<filename>/etc/sysconfig/network</filename>. Change the line
|
<filename>/etc/sysconfig/network</filename>. Change the line
|
||||||
starting with <literal>HOSTNAME=</literal>.</para>
|
starting with <literal>HOSTNAME=</literal>.</para>
|
||||||
|
|
||||||
<programlisting language="ini" os="rhel;fedora;centos">HOSTNAME=controller</programlisting>
|
<programlisting language="ini" os="rhel;fedora;centos">HOSTNAME=controller</programlisting>
|
||||||
|
|
||||||
<para os="fedora">As of Fedora 18, Fedora uses the
|
<para os="fedora">As of Fedora 18, Fedora uses the
|
||||||
<filename>/etc/hostname</filename> file, which contains a
|
<filename>/etc/hostname</filename> file, which contains a
|
||||||
single line with the host name.</para>
|
single line with the host name.</para>
|
||||||
|
|
||||||
<para os="ubuntu;debian">To configure this host name to be
|
<para os="ubuntu;debian">To configure this host name to be
|
||||||
available when the system reboots, you must specify it in the
|
available when the system reboots, you must specify it in the
|
||||||
<filename>/etc/hostname</filename> file, which contains a
|
<filename>/etc/hostname</filename> file, which contains a
|
||||||
single line with the host name.</para>
|
single line with the host name.</para>
|
||||||
|
|
||||||
<para>Finally, ensure that each node can reach the other nodes by
|
<para>Finally, ensure that each node can reach the other nodes by
|
||||||
using host names. You must manually edit the
|
using host names. You must manually edit the
|
||||||
<filename>/etc/hosts</filename> file on each system. For
|
<filename>/etc/hosts</filename> file on each system. For
|
||||||
large-scale deployments, use DNS or a configuration management
|
large-scale deployments, use DNS or a configuration management
|
||||||
system like Puppet.</para>
|
system like Puppet.</para>
|
||||||
|
|
||||||
<programlisting>127.0.0.1 localhost
|
<programlisting>127.0.0.1 localhost
|
||||||
192.168.0.10 controller
|
192.168.0.10 controller
|
||||||
192.168.0.11 compute1</programlisting>
|
192.168.0.11 compute1</programlisting>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="basics-ntp">
|
<section xml:id="basics-ntp">
|
||||||
<title>Network Time Protocol (NTP)</title>
|
<title>Network Time Protocol (NTP)</title>
|
||||||
|
|
||||||
<para>To synchronize services across multiple machines, you must
|
<para>To synchronize services across multiple machines, you must
|
||||||
install NTP. The examples in this guide configure the controller
|
install NTP. The examples in this guide configure the controller
|
||||||
node as the reference server and any additional nodes to set
|
node as the reference server and any additional nodes to set
|
||||||
their time from the controller node.</para>
|
their time from the controller node.</para>
|
||||||
|
|
||||||
<para>Install the <literal>ntp</literal> package on each system
|
<para>Install the <literal>ntp</literal> package on each system
|
||||||
running OpenStack services.</para>
|
running OpenStack services.</para>
|
||||||
|
|
||||||
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen>
|
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install ntp</userinput></screen>
|
||||||
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen>
|
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install ntp</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install ntp</userinput></screen>
|
||||||
|
|
||||||
<para os="rhel;fedora;centos;opensuse;sles">Set up the NTP server
|
<para os="rhel;fedora;centos;opensuse;sles">Set up the NTP server
|
||||||
on your controller node so that it receives data by modifying
|
on your controller node so that it receives data by modifying
|
||||||
the <filename>ntp.conf</filename> file and restarting the
|
the <filename>ntp.conf</filename> file and restarting the
|
||||||
service.</para>
|
service.</para>
|
||||||
|
|
||||||
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service ntpd start</userinput>
|
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service ntpd start</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig ntpd on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig ntpd on</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service ntp start</userinput>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service ntp start</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig ntp on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig ntp on</userinput></screen>
|
||||||
|
|
||||||
<para>On additional nodes, it is advised that you configure the
|
<para>On additional nodes, it is advised that you configure the
|
||||||
other nodes to synchronize their time from the controller node rather
|
other nodes to synchronize their time from the controller node
|
||||||
than from outside of your LAN. To do so, install the ntp daemon as above,
|
rather than from outside of your LAN. To do so, install the ntp
|
||||||
then edit <filename>/etc/ntp.conf</filename> and change the
|
daemon as above, then edit <filename>/etc/ntp.conf</filename>
|
||||||
<code>server</code> directive to use the controller node as internet time
|
and change the <code>server</code> directive to use the
|
||||||
source.</para>
|
controller node as internet time source.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="basics-database">
|
<section xml:id="basics-database">
|
||||||
<title>MySQL database</title>
|
<title>MySQL database</title>
|
||||||
|
|
||||||
<para os="ubuntu;debian;rhel;fedora;centos">Most OpenStack
|
<para os="ubuntu;debian;rhel;fedora;centos">Most OpenStack
|
||||||
services require a database to store information. The examples
|
services require a database to store information. These examples
|
||||||
in this guide use a MySQL database that runs on the controller
|
use a MySQL database that runs on the controller node. You must
|
||||||
node. You must install the MySQL database on the controller
|
install the MySQL database on the controller node. You must
|
||||||
node. You must install MySQL client software on any additional
|
install MySQL client software on any additional nodes that
|
||||||
nodes that access MySQL:</para>
|
access MySQL.</para>
|
||||||
<para os="opensuse;sles">Most OpenStack services require a
|
<para os="opensuse;sles">Most OpenStack services require a
|
||||||
database to store information. This guide uses a MySQL database
|
database to store information. This guide uses a MySQL database
|
||||||
on SUSE Linux Enterprise Server and a compatible database on
|
on SUSE Linux Enterprise Server and a compatible database on
|
||||||
@ -267,37 +246,36 @@ iface eth1 inet static
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para><phrase os="sles">For SUSE Linux Enterprise Server:
|
<para><phrase os="sles">For SUSE Linux Enterprise Server:
|
||||||
</phrase> On the controller node, install the MySQL client,
|
</phrase> On the controller node, install the MySQL client,
|
||||||
the MySQL database, and the MySQL Python library.</para>
|
database, and Python library.</para>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mysql-client mysql python-mysql</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install mysql-client mysql python-mysql</userinput></screen>
|
||||||
<para os="opensuse">For openSUSE: On the controller node,
|
<para os="opensuse">For openSUSE: On the controller node,
|
||||||
install the MariaDB client, the MariaDB database, and the
|
install the MariaDB client and database, and the MySQL
|
||||||
MySQL Python library.</para>
|
Python library.</para>
|
||||||
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client mariadb python-mysql</userinput></screen>
|
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper install mariadb-client mariadb python-mysql</userinput></screen>
|
||||||
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb mysql-server</userinput></screen>
|
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install python-mysqldb mysql-server</userinput></screen>
|
||||||
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql mysql-server MySQL-python</userinput></screen>
|
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>yum install mysql mysql-server MySQL-python</userinput></screen>
|
||||||
<note os="ubuntu;debian">
|
<note os="ubuntu;debian">
|
||||||
<para>When you install the server package, you are prompted
|
<para>When you install the server package, you are prompted
|
||||||
for the root password for the database. Be sure to choose
|
for the root password for the database. Choose a strong
|
||||||
a strong password and remember it.</para>
|
password and remember it.</para>
|
||||||
</note>
|
</note>
|
||||||
<para>Edit <filename os="ubuntu;debian"
|
<para>Edit <filename os="ubuntu;debian"
|
||||||
>/etc/mysql/my.cnf</filename><filename
|
>/etc/mysql/my.cnf</filename><filename
|
||||||
os="opensuse;sles;rhel;fedora;centos"
|
os="opensuse;sles;rhel;fedora;centos"
|
||||||
>/etc/my.cnf</filename> and set the
|
>/etc/my.cnf</filename> and set the
|
||||||
<literal>bind-address</literal> to the internal IP address
|
<literal>bind-address</literal> to the internal IP address
|
||||||
of the controller, to allow access from outside the
|
of the controller, to enable access from outside the
|
||||||
controller node.</para>
|
controller node.</para>
|
||||||
<programlisting language="ini"># Instead of skip-networking the default is now to listen only on
|
<programlisting language="ini"># Instead of skip-networking the default is now to listen only on
|
||||||
# localhost which is more compatible and is not less secure.
|
# localhost which is more compatible and is not less secure.
|
||||||
bind-address = 192.168.0.10</programlisting>
|
bind-address = 192.168.0.10</programlisting>
|
||||||
|
<para os="ubuntu;debian">Restart the MySQL service to apply
|
||||||
<para os="ubuntu;debian">Restart the MySQL service to apply the
|
the changes:</para>
|
||||||
changes:</para>
|
|
||||||
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service mysql restart</userinput></screen>
|
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service mysql restart</userinput></screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>On any nodes besides the controller node, just install
|
<para>On nodes other than the controller node, install the
|
||||||
the <phrase os="ubuntu;debian;rhel;fedora;centos"
|
<phrase os="ubuntu;debian;rhel;fedora;centos"
|
||||||
>MySQL</phrase>
|
>MySQL</phrase>
|
||||||
<phrase os="opensuse">MariaDB (on openSUSE)</phrase> client
|
<phrase os="opensuse">MariaDB (on openSUSE)</phrase> client
|
||||||
and the MySQL Python library on any system that does not
|
and the MySQL Python library on any system that does not
|
||||||
@ -319,22 +297,18 @@ bind-address = 192.168.0.10</programlisting>
|
|||||||
<prompt>#</prompt> <userinput>chkconfig mysqld on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig mysqld on</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service mysql start</userinput>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service mysql start</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig mysql on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig mysql on</userinput></screen>
|
||||||
|
|
||||||
<para os="rhel;centos;fedora;opensuse;sles">Finally, you should
|
<para os="rhel;centos;fedora;opensuse;sles">Finally, you should
|
||||||
set a root password for your <phrase os="rhel;fedora;centos"
|
set a root password for your <phrase os="rhel;fedora;centos"
|
||||||
>MySQL</phrase>
|
>MySQL</phrase>
|
||||||
<phrase os="opensuse;sles">MariaDB or MySQL</phrase> database.
|
<phrase os="opensuse;sles">MariaDB or MySQL</phrase> database.
|
||||||
The OpenStack programs that set up databases and tables prompt
|
The OpenStack programs that set up databases and tables prompt
|
||||||
you for this password if it is set.</para>
|
you for this password if it is set.</para>
|
||||||
|
|
||||||
<para os="ubuntu;debian;rhel;centos;fedora;opensuse;sles">You must
|
<para os="ubuntu;debian;rhel;centos;fedora;opensuse;sles">You must
|
||||||
delete the anonymous users that are created when the database is
|
delete the anonymous users that are created when the database is
|
||||||
first started. Otherwise, database connection problems occur
|
first started. Otherwise, database connection problems occur
|
||||||
when you follow the instructions in this guide. To do this, use
|
when you follow the instructions in this guide. To do this, use
|
||||||
the <command>mysql_secure_installation</command> command.</para>
|
the <command>mysql_secure_installation</command> command.</para>
|
||||||
|
|
||||||
<screen os="ubuntu;debian;rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>mysql_secure_installation</userinput></screen>
|
<screen os="ubuntu;debian;rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>mysql_secure_installation</userinput></screen>
|
||||||
|
|
||||||
<para><phrase os="rhel;centos;fedora;opensuse;sles">If you have
|
<para><phrase os="rhel;centos;fedora;opensuse;sles">If you have
|
||||||
not already set a root database password, press
|
not already set a root database password, press
|
||||||
<keycap>ENTER</keycap> when you are prompted for the
|
<keycap>ENTER</keycap> when you are prompted for the
|
||||||
@ -342,26 +316,22 @@ bind-address = 192.168.0.10</programlisting>
|
|||||||
for you to secure your database installation. Respond
|
for you to secure your database installation. Respond
|
||||||
<userinput>yes</userinput> to all prompts unless you have a
|
<userinput>yes</userinput> to all prompts unless you have a
|
||||||
good reason to do otherwise.</para>
|
good reason to do otherwise.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="basics-packages">
|
<section xml:id="basics-packages">
|
||||||
<title>OpenStack packages</title>
|
<title>OpenStack packages</title>
|
||||||
|
|
||||||
<para>Distributions might release OpenStack packages as part of
|
<para>Distributions might release OpenStack packages as part of
|
||||||
their distribution or through other methods because the
|
their distribution or through other methods because the
|
||||||
OpenStack and distribution release times are independent of each
|
OpenStack and distribution release times are independent of each
|
||||||
other.</para>
|
other.</para>
|
||||||
<para>This section describes the additional configuration you must
|
<para>This section describes the configuration you must
|
||||||
complete after you configure machines to install the latest
|
complete after you configure machines to install the latest
|
||||||
OpenStack packages.</para>
|
OpenStack packages.</para>
|
||||||
|
|
||||||
<para os="fedora;centos;rhel">The examples in this guide use the
|
<para os="fedora;centos;rhel">The examples in this guide use the
|
||||||
OpenStack packages from the RDO repository. These packages work
|
OpenStack packages from the RDO repository. These packages work
|
||||||
on Red Hat Enterprise Linux 6, compatible versions of CentOS,
|
on Red Hat Enterprise Linux 6, compatible versions of CentOS,
|
||||||
and Fedora 19. To enable the RDO repository, download and
|
and Fedora 19. To enable the RDO repository, download and
|
||||||
install the <package>rdo-release-havana</package>
|
install the <package>rdo-release-havana</package>
|
||||||
package.</para>
|
package.</para>
|
||||||
|
|
||||||
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/rdo-release-havana-6.noarch.rpm</userinput></screen>
|
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://repos.fedorapeople.org/repos/openstack/openstack-havana/rdo-release-havana-6.noarch.rpm</userinput></screen>
|
||||||
<para os="fedora;centos;rhel">The EPEL package includes GPG keys
|
<para os="fedora;centos;rhel">The EPEL package includes GPG keys
|
||||||
for package signing and repository information. This should only
|
for package signing and repository information. This should only
|
||||||
@ -372,23 +342,20 @@ bind-address = 192.168.0.10</programlisting>
|
|||||||
>http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html</link>).
|
>http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html</link>).
|
||||||
For example:</para>
|
For example:</para>
|
||||||
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</userinput></screen>
|
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</userinput></screen>
|
||||||
|
|
||||||
<para os="fedora;centos;rhel">The
|
<para os="fedora;centos;rhel">The
|
||||||
<package>openstack-utils</package> package contains utility
|
<package>openstack-utils</package> package contains utility
|
||||||
programs that make installation and configuration easier. These
|
programs that make installation and configuration easier. These
|
||||||
programs are used throughout this guide. Install
|
programs are used throughout this guide. Install
|
||||||
<package>openstack-utils</package>. This verifies that you can
|
<package>openstack-utils</package>. This verifies that you can
|
||||||
access the RDO repository.</para>
|
access the RDO repository.</para>
|
||||||
|
|
||||||
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-utils</userinput></screen>
|
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>yum install openstack-utils</userinput></screen>
|
||||||
|
|
||||||
<para os="opensuse;sles">Use the Open Build Service repositories
|
<para os="opensuse;sles">Use the Open Build Service repositories
|
||||||
for Havana based on your openSUSE or SUSE Linux Enterprise
|
for Havana based on your openSUSE or SUSE Linux Enterprise
|
||||||
Server version, for example if you run openSUSE 12.3 use:</para>
|
Server version, for example if you run openSUSE 12.3 use:</para>
|
||||||
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Havana/openSUSE_12.3 Havana</userinput></screen>
|
<screen os="opensuse"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Havana/openSUSE_12.3 Havana</userinput></screen>
|
||||||
<para os="sles"> If you use SUSE Linux Enterprise Server 11 SP3,
|
<para os="sles"> If you use SUSE Linux Enterprise Server 11 SP3,
|
||||||
use:
|
use:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Havana/SLE_11_SP3 Havana</userinput></screen></para>
|
<screen os="sles"><prompt>#</prompt> <userinput>zypper addrepo -f obs://Cloud:OpenStack:Havana/SLE_11_SP3 Havana</userinput></screen>
|
||||||
<para os="opensuse">For openSUSE 13.1, nothing needs to be done
|
<para os="opensuse">For openSUSE 13.1, nothing needs to be done
|
||||||
because OpenStack Havana packages are part of the distribution
|
because OpenStack Havana packages are part of the distribution
|
||||||
itself.</para>
|
itself.</para>
|
||||||
@ -397,9 +364,7 @@ bind-address = 192.168.0.10</programlisting>
|
|||||||
configuration easier. These programs are used throughout this
|
configuration easier. These programs are used throughout this
|
||||||
guide. Install <package>openstack-utils</package>. This verifies
|
guide. Install <package>openstack-utils</package>. This verifies
|
||||||
that you can access the Open Build Service repository:</para>
|
that you can access the Open Build Service repository:</para>
|
||||||
|
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-utils</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-utils</userinput></screen>
|
||||||
|
|
||||||
<procedure xml:id="ubuntu-cloud-archive" os="ubuntu">
|
<procedure xml:id="ubuntu-cloud-archive" os="ubuntu">
|
||||||
<title>To use the Ubuntu Cloud Archive for Havana</title>
|
<title>To use the Ubuntu Cloud Archive for Havana</title>
|
||||||
<para>The <link
|
<para>The <link
|
||||||
@ -417,7 +382,6 @@ bind-address = 192.168.0.10</programlisting>
|
|||||||
<screen><prompt>#</prompt> <userinput>apt-get update && apt-get dist-upgrade</userinput> </screen></para>
|
<screen><prompt>#</prompt> <userinput>apt-get update && apt-get dist-upgrade</userinput> </screen></para>
|
||||||
</step>
|
</step>
|
||||||
</procedure>
|
</procedure>
|
||||||
|
|
||||||
<procedure xml:id="debian-cloud-archive" os="debian">
|
<procedure xml:id="debian-cloud-archive" os="debian">
|
||||||
<title>To use the Debian Wheezy backports archive for
|
<title>To use the Debian Wheezy backports archive for
|
||||||
Havana</title>
|
Havana</title>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
xml:id="ch_horizon">
|
xml:id="ch_horizon">
|
||||||
<title>Add a dashboard</title>
|
<title>Add the dashboard</title>
|
||||||
<para>The OpenStack dashboard, also known as <link
|
<para>The OpenStack dashboard, also known as <link
|
||||||
xlink:href="https://github.com/openstack/horizon/"
|
xlink:href="https://github.com/openstack/horizon/"
|
||||||
>Horizon</link>, is a Web interface that enables cloud
|
>Horizon</link>, is a Web interface that enables cloud
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
linkend="basics-packages"/>.</para>
|
linkend="basics-packages"/>.</para>
|
||||||
<warning>
|
<warning>
|
||||||
<para>If you previously set up networking for your compute node by using
|
<para>If you previously set up networking for your compute node by using
|
||||||
<systemitem role="service"
|
<systemitem class="service"
|
||||||
>nova-network</systemitem>, this configuration
|
>nova-network</systemitem>, this configuration
|
||||||
overrides those settings.</para>
|
overrides those settings.</para>
|
||||||
</warning>
|
</warning>
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
</mediaobject>
|
</mediaobject>
|
||||||
</figure>
|
</figure>
|
||||||
<para>Technical details: Compute with KVM, local ephemeral
|
<para>Technical details: Compute with KVM, local ephemeral
|
||||||
storage, <systemitem role="service">nova-network</systemitem> in multi-host flatDHCP mode, MySQL,
|
storage, <systemitem class="service">nova-network</systemitem> in multi-host flatDHCP mode, MySQL,
|
||||||
nova-api, default scheduler, <phrase os="fedora;rhel;centos"
|
nova-api, default scheduler, <phrase os="fedora;rhel;centos"
|
||||||
>Qpid for messaging,</phrase><phrase
|
>Qpid for messaging,</phrase><phrase
|
||||||
os="ubuntu;debian;opensuse">RabbitMQ for
|
os="ubuntu;debian;opensuse">RabbitMQ for
|
||||||
@ -58,7 +58,7 @@
|
|||||||
xlink:href="http://docs.openstack.org/trunk/openstack-ops/content/"
|
xlink:href="http://docs.openstack.org/trunk/openstack-ops/content/"
|
||||||
><citetitle>OpenStack Operations
|
><citetitle>OpenStack Operations
|
||||||
Guide</citetitle></link>. Same as the basic architecture
|
Guide</citetitle></link>. Same as the basic architecture
|
||||||
but with the Block Storage Service LVM/iSCSI back end, <systemitem role="service">nova-network</systemitem> in
|
but with the Block Storage Service LVM/iSCSI back end, <systemitem class="service">nova-network</systemitem> in
|
||||||
multi-host with FlatDHCP, Live Migration back end, shared
|
multi-host with FlatDHCP, Live Migration back end, shared
|
||||||
storage with NFS, and Object Storage. One controller node
|
storage with NFS, and Object Storage. One controller node
|
||||||
and multiple compute nodes.</para>
|
and multiple compute nodes.</para>
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||||
<?dbhtml-stop-chunking?>
|
<?dbhtml-stop-chunking?>
|
||||||
|
|
||||||
<title>System requirements</title>
|
<title>System requirements</title>
|
||||||
<para><emphasis role="bold">Hardware</emphasis>: OpenStack Object
|
<para><emphasis role="bold">Hardware</emphasis>: OpenStack Object
|
||||||
Storage is designed to run on commodity hardware.</para>
|
Storage is designed to run on commodity hardware.</para>
|
||||||
@ -77,14 +76,13 @@
|
|||||||
requests.</para>
|
requests.</para>
|
||||||
<para>Optimize your proxy servers for best CPU
|
<para>Optimize your proxy servers for best CPU
|
||||||
performance. The Proxy Services are more CPU
|
performance. The Proxy Services are more CPU
|
||||||
and network I/O intensive. If you are using
|
and network I/O intensive. If you are using 10
|
||||||
10g networking to the proxy, or are
|
GB networking to the proxy, or are terminating
|
||||||
terminating SSL traffic at the proxy, greater
|
SSL traffic at the proxy, greater CPU power is
|
||||||
CPU power will be required.</para></td>
|
required.</para></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<para><emphasis role="bold">Operating system</emphasis>: OpenStack
|
<para><emphasis role="bold">Operating system</emphasis>: OpenStack
|
||||||
Object Storage currently runs on Ubuntu, RHEL, CentOS, Fedora,
|
Object Storage currently runs on Ubuntu, RHEL, CentOS, Fedora,
|
||||||
openSUSE, or SLES.</para>
|
openSUSE, or SLES.</para>
|
||||||
|
@ -43,16 +43,14 @@
|
|||||||
</note>
|
</note>
|
||||||
<note os="debian">
|
<note os="debian">
|
||||||
<title>Note for Debian users</title>
|
<title>Note for Debian users</title>
|
||||||
|
<para>To install the Apache package:</para>
|
||||||
<para>It is as well possible to install the apache
|
<screen><prompt>#</prompt> <userinput>apt-get install openstack-dashboard-apache</userinput></screen>
|
||||||
package:
|
<para>This command installs and configures Apache
|
||||||
<screen><prompt>#</prompt> <userinput>apt-get install openstack-dashboard-apache</userinput></screen>
|
correctly, provided that the user asks for it
|
||||||
This will install and configure Apache correctly,
|
during the <package>debconf</package> prompts. The
|
||||||
provided that the user asks for it during the
|
default SSL certificate is self-signed, and it is
|
||||||
debconf prompts. The default SSL certificate is
|
probably wise to have it signed by a root
|
||||||
self-signed, and it is probably wise to have it
|
Certificate Authority (CA).</para>
|
||||||
signed by a root CA (Certificate
|
|
||||||
Authority).</para>
|
|
||||||
</note>
|
</note>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
@ -178,8 +176,8 @@
|
|||||||
<prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
|
<prompt>#</prompt> <userinput>service memcached restart</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>You can now access the dashboard at <uri
|
<para>You can now access the dashboard at <uri os="ubuntu"
|
||||||
os="ubuntu">http://controller/horizon</uri>
|
>http://controller/horizon</uri>
|
||||||
<uri os="debian">https://controller/</uri>
|
<uri os="debian">https://controller/</uri>
|
||||||
<uri os="centos;fedora;rhel"
|
<uri os="centos;fedora;rhel"
|
||||||
>http://controller/dashboard</uri>
|
>http://controller/dashboard</uri>
|
||||||
|
@ -46,8 +46,8 @@
|
|||||||
database. The examples in this guide use the MySQL database
|
database. The examples in this guide use the MySQL database
|
||||||
that is used by other OpenStack services.</para>
|
that is used by other OpenStack services.</para>
|
||||||
<para>Configure the location of the database. The Image Service
|
<para>Configure the location of the database. The Image Service
|
||||||
provides the <systemitem role="service"
|
provides the <systemitem class="service"
|
||||||
>glance-api</systemitem> and <systemitem role="service"
|
>glance-api</systemitem> and <systemitem class="service"
|
||||||
>glance-registry</systemitem> services, each with its own
|
>glance-registry</systemitem> services, each with its own
|
||||||
configuration file. You must update both configuration files
|
configuration file. You must update both configuration files
|
||||||
throughout this section. Replace
|
throughout this section. Replace
|
||||||
@ -61,25 +61,21 @@
|
|||||||
<filename>/etc/glance/glance-api.conf</filename> and
|
<filename>/etc/glance/glance-api.conf</filename> and
|
||||||
<filename>/etc/glance/glance-registry.conf</filename> and
|
<filename>/etc/glance/glance-registry.conf</filename> and
|
||||||
change the <literal>[DEFAULT]</literal> section.</para>
|
change the <literal>[DEFAULT]</literal> section.</para>
|
||||||
<programlisting os="ubuntu;debian" language="ini">
|
<programlisting os="ubuntu;debian" language="ini">...
|
||||||
...
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
...
|
...
|
||||||
# SQLAlchemy connection string for the reference implementation
|
# SQLAlchemy connection string for the reference implementation
|
||||||
# registry server. Any valid SQLAlchemy connection string is fine.
|
# registry server. Any valid SQLAlchemy connection string is fine.
|
||||||
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
|
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
|
||||||
sql_connection = mysql://glance:GLANCE_DBPASS@<replaceable>controller</replaceable>/glance
|
sql_connection = mysql://glance:GLANCE_DBPASS@<replaceable>controller</replaceable>/glance
|
||||||
...
|
...</programlisting>
|
||||||
</programlisting>
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles">
|
<step os="rhel;centos;fedora;opensuse;sles">
|
||||||
<para>Use the <command>openstack-db</command> command to create
|
<para>Use the <command>openstack-db</command> command to create
|
||||||
the Image Service database and tables and a
|
the Image Service database and tables and a
|
||||||
<literal>glance</literal> database user:</para>
|
<literal>glance</literal> database user:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>openstack-db --init --service glance --password <replaceable>GLANCE_DBPASS</replaceable></userinput></screen>
|
<screen><prompt>#</prompt> <userinput>openstack-db --init --service glance --password <replaceable>GLANCE_DBPASS</replaceable></userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>By default, the Ubuntu packages create an SQLite database.
|
<para>By default, the Ubuntu packages create an SQLite database.
|
||||||
Delete the <filename>glance.sqlite</filename> file created in
|
Delete the <filename>glance.sqlite</filename> file created in
|
||||||
@ -96,12 +92,10 @@ IDENTIFIED BY '<replaceable>GLANCE_DBPASS</replaceable>';</userinput>
|
|||||||
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
|
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
|
||||||
IDENTIFIED BY '<replaceable>GLANCE_DBPASS</replaceable>';</userinput></screen>
|
IDENTIFIED BY '<replaceable>GLANCE_DBPASS</replaceable>';</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>Create the database tables for the Image Service:</para>
|
<para>Create the database tables for the Image Service:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>glance-manage db_sync</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>glance-manage db_sync</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Create a <literal>glance</literal> user that the Image
|
<para>Create a <literal>glance</literal> user that the Image
|
||||||
Service can use to authenticate with the Identity Service.
|
Service can use to authenticate with the Identity Service.
|
||||||
@ -116,7 +110,6 @@ IDENTIFIED BY '<replaceable>GLANCE_DBPASS</replaceable>';</userinput></screen>
|
|||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Add the credentials to the Image Service configuration
|
<para>Add the credentials to the Image Service configuration
|
||||||
files:</para>
|
files:</para>
|
||||||
|
|
||||||
<screen os="centos;rhel;fedora;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
|
<screen os="centos;rhel;fedora;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
|
||||||
auth_host <replaceable>controller</replaceable></userinput>
|
auth_host <replaceable>controller</replaceable></userinput>
|
||||||
<prompt>#</prompt> <userinput>openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
|
<prompt>#</prompt> <userinput>openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
|
||||||
@ -159,7 +152,6 @@ admin_password = GLANCE_PASS
|
|||||||
<prompt>#</prompt> <userinput>cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini</userinput>
|
<prompt>#</prompt> <userinput>cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini</userinput>
|
||||||
<prompt>#</prompt> <userinput>cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini</userinput>
|
<prompt>#</prompt> <userinput>cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
<para>Edit each file to set the following options in the
|
<para>Edit each file to set the following options in the
|
||||||
<literal>[filter:authtoken]</literal> section:</para>
|
<literal>[filter:authtoken]</literal> section:</para>
|
||||||
<programlisting language="ini">[filter:authtoken]
|
<programlisting language="ini">[filter:authtoken]
|
||||||
@ -169,7 +161,6 @@ admin_user=glance
|
|||||||
admin_tenant_name=service
|
admin_tenant_name=service
|
||||||
admin_password=<replaceable>GLANCE_PASS</replaceable></programlisting>
|
admin_password=<replaceable>GLANCE_PASS</replaceable></programlisting>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Register the Image Service with the Identity Service so
|
<para>Register the Image Service with the Identity Service so
|
||||||
that other OpenStack services can locate it. Register the
|
that other OpenStack services can locate it. Register the
|
||||||
@ -186,17 +177,15 @@ admin_password=<replaceable>GLANCE_PASS</replaceable></programlisting>
|
|||||||
--internalurl=http://<replaceable>controller</replaceable>:9292 \
|
--internalurl=http://<replaceable>controller</replaceable>:9292 \
|
||||||
--adminurl=http://<replaceable>controller</replaceable>:9292</userinput></screen>
|
--adminurl=http://<replaceable>controller</replaceable>:9292</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>Restart the <systemitem role="service">glance</systemitem>
|
<para>Restart the <systemitem class="service">glance</systemitem>
|
||||||
service with its new settings.</para>
|
service with its new settings.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>service glance-registry restart</userinput>
|
<screen><prompt>#</prompt> <userinput>service glance-registry restart</userinput>
|
||||||
<prompt>#</prompt> <userinput>service glance-api restart</userinput></screen>
|
<prompt>#</prompt> <userinput>service glance-api restart</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;fedora;centos;opensuse;sles">
|
<step os="rhel;fedora;centos;opensuse;sles">
|
||||||
<para>Start the <systemitem role="service"
|
<para>Start the <systemitem class="service"
|
||||||
>glance-api</systemitem> and <systemitem role="service"
|
>glance-api</systemitem> and <systemitem class="service"
|
||||||
>glance-registry</systemitem> services and configure them to
|
>glance-registry</systemitem> services and configure them to
|
||||||
start when the system boots:</para>
|
start when the system boots:</para>
|
||||||
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-glance-api start</userinput>
|
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-glance-api start</userinput>
|
||||||
|
@ -21,8 +21,9 @@
|
|||||||
Guide</citetitle></link>.</para>
|
Guide</citetitle></link>.</para>
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
<step>
|
||||||
<para>Download the image into a dedicated
|
<para>Download the image into a dedicated directory using
|
||||||
directory using <command>wget</command> or <command>curl</command>:</para>
|
<command>wget</command> or
|
||||||
|
<command>curl</command>:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>mkdir images</userinput>
|
<screen><prompt>$</prompt> <userinput>mkdir images</userinput>
|
||||||
<prompt>$</prompt> <userinput>cd images/</userinput>
|
<prompt>$</prompt> <userinput>cd images/</userinput>
|
||||||
<prompt>$</prompt> <userinput>wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img</userinput></screen>
|
<prompt>$</prompt> <userinput>wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img</userinput></screen>
|
||||||
@ -36,9 +37,8 @@
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><literal><replaceable>imageLabel</replaceable></literal></term>
|
<term><literal><replaceable>imageLabel</replaceable></literal></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Arbitrary label. This is the name by
|
<para>Arbitrary label. The name by which users
|
||||||
which users will refer to the
|
refer to the image.</para>
|
||||||
image.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -87,13 +87,12 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies image access: <itemizedlist>
|
<para>Specifies image access: <itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>true - All users will be able
|
<para>true - All users can view and
|
||||||
to view and use the image.</para>
|
use the image.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>false - Only administrators
|
<para>false - Only administrators
|
||||||
will be able to view and use the
|
can view and use the image.</para>
|
||||||
image.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist></para>
|
</itemizedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -29,8 +29,8 @@
|
|||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>In the configuration file, specify the location of the
|
<para>In the configuration file, specify the location of the
|
||||||
database where the Orchestration service stores data. The
|
database where the Orchestration service stores data. These
|
||||||
examples in this guide use a MySQL database with a
|
examples use a MySQL database with a
|
||||||
<literal>heat</literal> user on the controller node. Replace
|
<literal>heat</literal> user on the controller node. Replace
|
||||||
<replaceable>HEAT_DBPASS</replaceable> with the password for
|
<replaceable>HEAT_DBPASS</replaceable> with the password for
|
||||||
the database user:</para>
|
the database user:</para>
|
||||||
@ -46,12 +46,12 @@ connection = mysql://heat:<replaceable>HEAT_DBPASS</replaceable>@controller/heat
|
|||||||
</step>
|
</step>
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>By default, the Ubuntu packages create an SQLite database.
|
<para>By default, the Ubuntu packages create an SQLite database.
|
||||||
Delete the <filename>heat.sqlite</filename> file created in
|
Delete the <filename>heat.sqlite</filename> file that was created in
|
||||||
the <filename>/var/lib/heat/</filename> directory so that it
|
the <filename>/var/lib/heat/</filename> directory so that it
|
||||||
does not get used by mistake.</para>
|
does not get used by mistake.</para>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Use the password you set previously to log in as root and
|
<para>Use the password that you set previously to log in as <literal>root</literal> and
|
||||||
create a <literal>heat</literal> database user:</para>
|
create a <literal>heat</literal> database user:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput>
|
<screen><prompt>#</prompt> <userinput>mysql -u root -p</userinput>
|
||||||
<prompt>mysql></prompt> <userinput>CREATE DATABASE heat;</userinput>
|
<prompt>mysql></prompt> <userinput>CREATE DATABASE heat;</userinput>
|
||||||
@ -83,14 +83,12 @@ verbose = True
|
|||||||
log_dir=/var/log/heat</programlisting>
|
log_dir=/var/log/heat</programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step os="opensuse;sles;ubuntu">
|
<step os="opensuse;sles;ubuntu">
|
||||||
<para>Configure the Orchestration Service to use the RabbitMQ message
|
<para>Configure the Orchestration Service to use the RabbitMQ
|
||||||
broker.</para>
|
message broker.</para>
|
||||||
|
<para os="ubuntu">Edit <filename>/etc/heat/heat.conf</filename>
|
||||||
<para os="ubuntu">Edit <filename>/etc/heat/heat.conf</filename> and
|
and modify the <literal>[DEFAULT]</literal> section:</para>
|
||||||
modify the <literal>[DEFAULT]</literal> section:</para>
|
|
||||||
<programlisting os="ubuntu" language="ini">rabbit_host = controller
|
<programlisting os="ubuntu" language="ini">rabbit_host = controller
|
||||||
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
||||||
|
|
||||||
<para os="opensuse;sles">Run the following commands:</para>
|
<para os="opensuse;sles">Run the following commands:</para>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_host controller</userinput>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_host controller</userinput>
|
||||||
<prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_password <replaceable>RABBIT_PASS</replaceable></userinput></screen>
|
<prompt>#</prompt> <userinput>openstack-config --set /etc/heat/heat.conf DEFAULT rabbit_password <replaceable>RABBIT_PASS</replaceable></userinput></screen>
|
||||||
@ -104,10 +102,10 @@ rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
|||||||
<prompt>#</prompt> <userinput>keystone user-role-add --user=heat --tenant=service --role=admin</userinput></screen>
|
<prompt>#</prompt> <userinput>keystone user-role-add --user=heat --tenant=service --role=admin</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Edit the <filename>/etc/heat/heat.conf</filename> file
|
<para>Edit the <filename>/etc/heat/heat.conf</filename> file to
|
||||||
and change the <literal>[keystone_authtoken]</literal> and
|
change the <literal>[keystone_authtoken]</literal> and
|
||||||
<literal>[ec2_authtoken]</literal> sections to add credentials
|
<literal>[ec2_authtoken]</literal> sections to add
|
||||||
to the Orchestration Service:</para>
|
credentials to the Orchestration Service:</para>
|
||||||
<programlisting language="ini">[keystone_authtoken]
|
<programlisting language="ini">[keystone_authtoken]
|
||||||
auth_host = controller
|
auth_host = controller
|
||||||
auth_port = 35357
|
auth_port = 35357
|
||||||
@ -155,12 +153,11 @@ keystone_ec2_uri = http://<replaceable>controller</replaceable>:5000/v2.0/ec2tok
|
|||||||
<prompt>#</prompt> <userinput>service heat-engine restart</userinput></screen>
|
<prompt>#</prompt> <userinput>service heat-engine restart</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step os="rhel;fedora;centos;opensuse;sles">
|
<step os="rhel;fedora;centos;opensuse;sles">
|
||||||
<para>Start the <systemitem role="service"
|
<para>Start the <systemitem class="service"
|
||||||
>heat-api</systemitem>, <systemitem role="service"
|
>heat-api</systemitem>, <systemitem class="service"
|
||||||
class="service">heat-api-cfn</systemitem> and <systemitem
|
>heat-api-cfn</systemitem> and <systemitem class="service"
|
||||||
role="service" class="service">heat-engine</systemitem>
|
>heat-engine</systemitem> services and configure them to
|
||||||
services and configure them to start when the system
|
start when the system boots:</para>
|
||||||
boots:</para>
|
|
||||||
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-heat-api start</userinput>
|
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-heat-api start</userinput>
|
||||||
<prompt>#</prompt> <userinput>service openstack-heat-api-cfn start</userinput>
|
<prompt>#</prompt> <userinput>service openstack-heat-api-cfn start</userinput>
|
||||||
<prompt>#</prompt> <userinput>service openstack-heat-engine start</userinput>
|
<prompt>#</prompt> <userinput>service openstack-heat-engine start</userinput>
|
||||||
|
@ -1,24 +1,22 @@
|
|||||||
<section xmlns="http://docbook.org/ns/docbook"
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
xml:id="keystone-services"
|
xml:id="keystone-services"
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<title>Define services and API endpoints</title>
|
<title>Define services and API endpoints</title>
|
||||||
|
|
||||||
<para>The Identity Service also tracks what OpenStack services are
|
<para>The Identity Service also tracks what OpenStack services are
|
||||||
installed and where to locate them on the network. For each service
|
installed and where to locate them on the network. For each
|
||||||
on your OpenStack installation, you must call
|
service on your OpenStack installation, you must call
|
||||||
<command>keystone service-create</command> to describe the service
|
<command>keystone service-create</command> to describe the
|
||||||
and <command>keystone endpoint-create</command> to specify the API
|
service and <command>keystone endpoint-create</command> to specify
|
||||||
endpoints associated with the service.</para>
|
the API endpoints associated with the service.</para>
|
||||||
|
<para>For now, create a service for the Identity Service itself that
|
||||||
<para>For now, create a service for the Identity Service itself.
|
uses normal authentication instead of the authorization token when
|
||||||
This will allow you to stop using the authorization token and instead
|
you run the <command>keystone</command> command in the
|
||||||
use normal authentication when using the <command>keystone</command>
|
future.</para>
|
||||||
command in the future.</para>
|
<procedure>
|
||||||
|
<step>
|
||||||
<para>First, create a service entry for the Identity Service.</para>
|
<para>Create a service entry for the Identity Service:</para>
|
||||||
|
<screen><prompt>#</prompt> <userinput>keystone service-create --name=keystone --type=identity \
|
||||||
<screen><prompt>#</prompt> <userinput>keystone service-create --name=keystone --type=identity \
|
|
||||||
--description="Keystone Identity Service"</userinput>
|
--description="Keystone Identity Service"</userinput>
|
||||||
<computeroutput>+-------------+----------------------------------+
|
<computeroutput>+-------------+----------------------------------+
|
||||||
| Property | Value |
|
| Property | Value |
|
||||||
@ -28,17 +26,17 @@
|
|||||||
| name | keystone |
|
| name | keystone |
|
||||||
| type | identity |
|
| type | identity |
|
||||||
+-------------+----------------------------------+</computeroutput></screen>
|
+-------------+----------------------------------+</computeroutput></screen>
|
||||||
|
<para>The service ID is randomly generated and is different from
|
||||||
<para>The service id is randomly generated, and will be different
|
the one shown here.</para>
|
||||||
from the one shown above when you run the command. Next, specify
|
</step>
|
||||||
an API endpoint for the Identity Service using the service id you
|
<step>
|
||||||
received. When you specify an endpoint, you provide three URLs
|
<para>Specify an API endpoint for the Identity Service by using
|
||||||
for the public API, the internal API, and the admin API. In this
|
the returned service ID. When you specify an endpoint, you
|
||||||
guide, we use the hostname <literal>controller</literal>. Note
|
provide URLs for the public API, internal API, and admin API.
|
||||||
that the Identity Service uses a different port for the admin
|
In this guide, the <literal>controller</literal> host name is
|
||||||
API.</para>
|
used. Note that the Identity Service uses a different port for
|
||||||
|
the admin API.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
|
<screen><prompt>#</prompt> <userinput>keystone endpoint-create \
|
||||||
--service-id=<replaceable>the_service_id_above</replaceable> \
|
--service-id=<replaceable>the_service_id_above</replaceable> \
|
||||||
--publicurl=http://<replaceable>controller</replaceable>:5000/v2.0 \
|
--publicurl=http://<replaceable>controller</replaceable>:5000/v2.0 \
|
||||||
--internalurl=http://<replaceable>controller</replaceable>:5000/v2.0 \
|
--internalurl=http://<replaceable>controller</replaceable>:5000/v2.0 \
|
||||||
@ -52,12 +50,12 @@
|
|||||||
| publicurl | http://controller:5000/v2.0 |
|
| publicurl | http://controller:5000/v2.0 |
|
||||||
| region | regionOne |
|
| region | regionOne |
|
||||||
| service_id | 15c11a23667e427e91bc31335b45f4bd |
|
| service_id | 15c11a23667e427e91bc31335b45f4bd |
|
||||||
+-------------+-----------------------------------+
|
+-------------+-----------------------------------+</computeroutput></screen>
|
||||||
</computeroutput>
|
</step>
|
||||||
</screen>
|
<step>
|
||||||
|
<para>As you add other services to your OpenStack installation,
|
||||||
<para>As you add other services to your OpenStack installation, you
|
call these commands to register the services with the Identity
|
||||||
will call these commands again to register those services with the
|
Service.</para>
|
||||||
Identity Service.</para>
|
</step>
|
||||||
|
</procedure>
|
||||||
</section>
|
</section>
|
||||||
|
@ -262,8 +262,9 @@ admin_password = <replaceable>NEUTRON_PASS</replaceable></programlisting>
|
|||||||
|
|
||||||
<step os="opensuse;sles;ubuntu">
|
<step os="opensuse;sles;ubuntu">
|
||||||
<para>Configure the RabbitMQ access. Edit the
|
<para>Configure the RabbitMQ access. Edit the
|
||||||
<filename>/etc/neutron/neutron.conf</filename> file to modify the
|
<filename>/etc/neutron/neutron.conf</filename> file to
|
||||||
following parameters in the <literal>DEFAULT</literal> section.</para>
|
modify the following parameters in the
|
||||||
|
<literal>DEFAULT</literal> section.</para>
|
||||||
<programlisting language="ini">rabbit_host = controller
|
<programlisting language="ini">rabbit_host = controller
|
||||||
rabbit_userid = guest
|
rabbit_userid = guest
|
||||||
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
||||||
@ -352,7 +353,8 @@ admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
|
|||||||
<screen os="debian;rhel;fedora;centos"><prompt>#</prompt> <userinput>service openvswitch start</userinput></screen>
|
<screen os="debian;rhel;fedora;centos"><prompt>#</prompt> <userinput>service openvswitch start</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service openvswitch-switch start</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service openvswitch-switch start</userinput></screen>
|
||||||
|
|
||||||
<para os="rhel;fedora;centos;opensuse;sles">And configure it to start when the system boots:</para>
|
<para os="rhel;fedora;centos;opensuse;sles">And configure
|
||||||
|
it to start when the system boots:</para>
|
||||||
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>chkconfig openvswitch on</userinput></screen>
|
<screen os="rhel;fedora;centos"><prompt>#</prompt> <userinput>chkconfig openvswitch on</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>chkconfig openvswitch-switch on</userinput></screen>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>chkconfig openvswitch-switch on</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
@ -401,81 +403,89 @@ GATEWAY=EXTERNAL_INTERFACE_GATEWAY</programlisting>
|
|||||||
<!-- TODO(sross): support other distros -->
|
<!-- TODO(sross): support other distros -->
|
||||||
<step>
|
<step>
|
||||||
<para>You must set some common configuration options no
|
<para>You must set some common configuration options no
|
||||||
matter which networking technology you choose to use with
|
matter which networking technology you choose to use
|
||||||
Open vSwitch. Configure the L3 and DHCP agents to use
|
with Open vSwitch. Configure the L3 and DHCP agents to
|
||||||
<acronym>OVS</acronym> and namespaces. Edit the
|
use <acronym>OVS</acronym> and namespaces. Edit the
|
||||||
<filename>/etc/neutron/l3_agent.ini</filename> and
|
<filename>/etc/neutron/l3_agent.ini</filename> and
|
||||||
<filename>/etc/neutron/dhcp_agent.ini</filename>
|
<filename>/etc/neutron/dhcp_agent.ini</filename>
|
||||||
files, respectively:</para>
|
files, respectively:</para>
|
||||||
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
|
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
|
||||||
use_namespaces = True</programlisting>
|
use_namespaces = True</programlisting>
|
||||||
<para os="rhel;centos">You must enable veth support if you
|
<para os="rhel;centos">You must enable veth support if you
|
||||||
use certain kernels. Some kernels, such as recent versions
|
use certain kernels. Some kernels, such as recent
|
||||||
of RHEL (not RHOS) and CentOS, only partially support
|
versions of RHEL (not RHOS) and CentOS, only partially
|
||||||
namespaces. Edit the previous
|
support namespaces. Edit the previous files, as
|
||||||
files, as follows:</para>
|
follows:</para>
|
||||||
<programlisting language="ini" os="rhel;centos">ovs_use_veth = True</programlisting>
|
<programlisting language="ini" os="rhel;centos">ovs_use_veth = True</programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Similarly, you must also tell Neutron core to use
|
<para>Similarly, you must also tell Neutron core to use
|
||||||
<acronym>OVS</acronym>. Edit the
|
<acronym>OVS</acronym>. Edit the
|
||||||
<filename>/etc/neutron/neutron.conf</filename> file:</para>
|
<filename>/etc/neutron/neutron.conf</filename>
|
||||||
|
file:</para>
|
||||||
<programlisting language="ini">core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2</programlisting>
|
<programlisting language="ini">core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2</programlisting>
|
||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Choose a networking technology to create the virtual networks.
|
<para>Choose a networking technology to create the virtual
|
||||||
Neutron supports GRE tunneling, VLANs, and VXLANs. This guide
|
networks. Neutron supports GRE tunneling, VLANs, and
|
||||||
shows how to configure GRE tunneling and VLANs.</para>
|
VXLANs. This guide shows how to configure GRE tunneling
|
||||||
|
and VLANs.</para>
|
||||||
<para>
|
<para>
|
||||||
<link linkend="install-neutron.install-plug-in.ovs.gre">GRE
|
<link linkend="install-neutron.install-plug-in.ovs.gre"
|
||||||
tunneling</link> is simpler to set up because it does not
|
>GRE tunneling</link> is simpler to set up because it
|
||||||
require any special configuration from any physical network
|
does not require any special configuration from any
|
||||||
hardware. However, its protocol makes it difficult to filter
|
physical network hardware. However, its protocol makes
|
||||||
traffic on the physical network. Additionally, this configuration
|
it difficult to filter traffic on the physical network.
|
||||||
does not use namespaces. You can have only one router for each
|
Additionally, this configuration does not use
|
||||||
network node. However, you can enable namespacing, and potentially
|
namespaces. You can have only one router for each
|
||||||
veth, as described in the section detailing how to use VLANs with
|
network node. However, you can enable namespacing, and
|
||||||
<acronym>OVS</acronym>).</para>
|
potentially veth, as described in the section detailing
|
||||||
|
how to use VLANs with <acronym>OVS</acronym>).</para>
|
||||||
<note os="ubuntu">
|
<note os="ubuntu">
|
||||||
<para>On Ubuntu 12.04 LTS with GRE you must install
|
<para>On Ubuntu 12.04 LTS with GRE you must install
|
||||||
openvswitch-datapath-dkms and restart the service to enable the
|
openvswitch-datapath-dkms and restart the service to
|
||||||
GRE flow so that OVS 1.10 and higher is used. Make sure you are
|
enable the GRE flow so that OVS 1.10 and higher is
|
||||||
running the OVS 1.10 kernel module in addition to the OVS 1.10
|
used. Make sure you are running the OVS 1.10 kernel
|
||||||
userspace. Both the kernel module and userspace are required for
|
module in addition to the OVS 1.10 userspace. Both the
|
||||||
VXLAN support. The error you see in the
|
kernel module and userspace are required for VXLAN
|
||||||
<filename>/var/log/openvswitchovs-vswitchd.log</filename> log
|
support. The error you see in the
|
||||||
file is "Stderr: 'ovs-ofctl: -1: negative values not supported
|
<filename>/var/log/openvswitchovs-vswitchd.log</filename>
|
||||||
for in_port\n'". If you see this error, make sure
|
log file is "Stderr: 'ovs-ofctl: -1: negative values
|
||||||
<command>modinfo openvswitch</command> shows the right
|
not supported for in_port\n'". If you see this error,
|
||||||
version. Also check the output from <command>dmesg</command> for
|
make sure <command>modinfo openvswitch</command> shows
|
||||||
the version of the OVS module being loaded.</para>
|
the right version. Also check the output from
|
||||||
|
<command>dmesg</command> for the version of the OVS
|
||||||
|
module being loaded.</para>
|
||||||
</note>
|
</note>
|
||||||
<para>On the other hand, <link
|
<para>On the other hand, <link
|
||||||
linkend="install-neutron.install-plug-in.ovs.vlan">VLAN
|
linkend="install-neutron.install-plug-in.ovs.vlan"
|
||||||
tagging</link> modifies the ethernet header of packets. You can
|
>VLAN tagging</link> modifies the ethernet header of
|
||||||
filter packets on the physical network through normal methods.
|
packets. You can filter packets on the physical network
|
||||||
However, not all NICs handle the increased packet size of
|
through normal methods. However, not all NICs handle the
|
||||||
VLAN-tagged packets well, and you might need to complete
|
increased packet size of VLAN-tagged packets well, and
|
||||||
additional configuration on physical network hardware to ensure
|
you might need to complete additional configuration on
|
||||||
that your Neutron VLANs do not interfere with any other VLANs on
|
physical network hardware to ensure that your Neutron
|
||||||
your network and that any physical network hardware between nodes
|
VLANs do not interfere with any other VLANs on your
|
||||||
does not strip VLAN tags.</para>
|
network and that any physical network hardware between
|
||||||
|
nodes does not strip VLAN tags.</para>
|
||||||
<note>
|
<note>
|
||||||
<para>While the examples in this guide enable network namespaces
|
<para>While the examples in this guide enable network
|
||||||
by default, you can disable them if issues occur or your kernel
|
namespaces by default, you can disable them if issues
|
||||||
does not support them. Edit the
|
occur or your kernel does not support them. Edit the
|
||||||
<filename>/etc/neutron/l3_agent.ini</filename> and
|
<filename>/etc/neutron/l3_agent.ini</filename> and
|
||||||
<filename>/etc/neutron/dhcp_agent.ini</filename> files,
|
<filename>/etc/neutron/dhcp_agent.ini</filename>
|
||||||
respectively:</para>
|
files, respectively:</para>
|
||||||
<programlisting language="ini">use_namespaces = False</programlisting>
|
<programlisting language="ini">use_namespaces = False</programlisting>
|
||||||
<para>Edit the <filename>/etc/neutron/neutron.conf</filename> file
|
<para>Edit the
|
||||||
|
<filename>/etc/neutron/neutron.conf</filename> file
|
||||||
to disable overlapping IP addresses:</para>
|
to disable overlapping IP addresses:</para>
|
||||||
<programlisting language="ini">allow_overlapping_ips = False</programlisting>
|
<programlisting language="ini">allow_overlapping_ips = False</programlisting>
|
||||||
<para>Note that when network namespaces are disabled, you can have
|
<para>Note that when network namespaces are disabled,
|
||||||
only one router for each network node and overlapping IP
|
you can have only one router for each network node and
|
||||||
addresses are not supported.</para>
|
overlapping IP addresses are not supported.</para>
|
||||||
<para>You must complete additional steps after you create the
|
<para>You must complete additional steps after you
|
||||||
initial Neutron virtual networks and router.</para>
|
create the initial Neutron virtual networks and
|
||||||
|
router.</para>
|
||||||
</note>
|
</note>
|
||||||
</step>
|
</step>
|
||||||
<!-- TODO(sross): support provider networks? you need to modify things above for this to work -->
|
<!-- TODO(sross): support provider networks? you need to modify things above for this to work -->
|
||||||
@ -762,10 +772,12 @@ router_id = <replaceable>EXT_TO_INT_ID</replaceable></programlisting>
|
|||||||
<para>Disable packet destination filtering (route
|
<para>Disable packet destination filtering (route
|
||||||
verification) to let the networking services route traffic
|
verification) to let the networking services route traffic
|
||||||
to the VMs. Edit the <filename>/etc/sysctl.conf</filename>
|
to the VMs. Edit the <filename>/etc/sysctl.conf</filename>
|
||||||
file and run the following command to activate changes:</para>
|
file and run the following command to activate
|
||||||
|
changes:</para>
|
||||||
<programlisting language="ini">net.ipv4.conf.all.rp_filter=0
|
<programlisting language="ini">net.ipv4.conf.all.rp_filter=0
|
||||||
net.ipv4.conf.default.rp_filter=0</programlisting>
|
net.ipv4.conf.default.rp_filter=0</programlisting>
|
||||||
<screen><prompt>#</prompt> <userinput>sysctl -p</userinput></screen></step>
|
<screen><prompt>#</prompt> <userinput>sysctl -p</userinput></screen>
|
||||||
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Install and configure your networking plug-in
|
<para>Install and configure your networking plug-in
|
||||||
components. To install and configure the network plug-in
|
components. To install and configure the network plug-in
|
||||||
@ -915,8 +927,8 @@ firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewal
|
|||||||
<para>After you complete OVS configuration <emphasis>and
|
<para>After you complete OVS configuration <emphasis>and
|
||||||
the core Neutron configuration after this
|
the core Neutron configuration after this
|
||||||
section</emphasis>, restart the Neutron Open vSwitch
|
section</emphasis>, restart the Neutron Open vSwitch
|
||||||
agent<phrase os="opensuse;sles;fedora;centos;rhel">, and set it
|
agent<phrase os="opensuse;sles;fedora;centos;rhel">,
|
||||||
to start at boot</phrase>:</para>
|
and set it to start at boot</phrase>:</para>
|
||||||
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput>
|
<screen os="fedora;centos;rhel"><prompt>#</prompt> <userinput>service neutron-openvswitch-agent restart</userinput>
|
||||||
<prompt>#</prompt> <userinput>chkconfig neutron-openvswitch-agent on</userinput></screen>
|
<prompt>#</prompt> <userinput>chkconfig neutron-openvswitch-agent on</userinput></screen>
|
||||||
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service openstack-neutron-openvswitch-agent restart</userinput>
|
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service openstack-neutron-openvswitch-agent restart</userinput>
|
||||||
@ -1061,9 +1073,8 @@ admin_password = <replaceable>NEUTRON_PASS</replaceable></programlisting>
|
|||||||
</step>
|
</step>
|
||||||
<step>
|
<step>
|
||||||
<para>Tell Nova about Neutron. Specifically, you must tell
|
<para>Tell Nova about Neutron. Specifically, you must tell
|
||||||
Nova that Neutron will be handling networking and the
|
Nova that Neutron handles networking and the firewall. Edit
|
||||||
firewall. Edit the <filename>/etc/nova/nova.conf</filename>
|
the <filename>/etc/nova/nova.conf</filename> file:</para>
|
||||||
file:</para>
|
|
||||||
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
||||||
neutron_url=http://<replaceable>controller</replaceable>:9696
|
neutron_url=http://<replaceable>controller</replaceable>:9696
|
||||||
neutron_auth_strategy=keystone
|
neutron_auth_strategy=keystone
|
||||||
@ -1075,8 +1086,8 @@ firewall_driver=nova.virt.firewall.NoopFirewallDriver
|
|||||||
security_group_api=neutron</programlisting>
|
security_group_api=neutron</programlisting>
|
||||||
<note>
|
<note>
|
||||||
<para>Regardless of which firewall driver you chose when you
|
<para>Regardless of which firewall driver you chose when you
|
||||||
configure the network and compute nodes, set this driver
|
configured the network and compute nodes, set this driver
|
||||||
as the No-Op firewall. The difference is that this is a
|
as the No-Op firewall. This firewall is a
|
||||||
<emphasis>Nova</emphasis> firewall, and because Neutron
|
<emphasis>Nova</emphasis> firewall, and because Neutron
|
||||||
handles the Firewall, you must tell Nova not to use
|
handles the Firewall, you must tell Nova not to use
|
||||||
one.</para>
|
one.</para>
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<literal>True</literal> in the configuration file for
|
<literal>True</literal> in the configuration file for
|
||||||
each agent. The default is <literal>True</literal>.</para>
|
each agent. The default is <literal>True</literal>.</para>
|
||||||
</note>
|
</note>
|
||||||
<para>The following table describes the nodes:</para>
|
<para>This table describes the nodes:</para>
|
||||||
<informaltable rules="all" width="100%">
|
<informaltable rules="all" width="100%">
|
||||||
<col width="20%"/>
|
<col width="20%"/>
|
||||||
<col width="80%"/>
|
<col width="80%"/>
|
||||||
@ -128,7 +128,8 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Glance is installed, configured, and running. In
|
<para>Glance is installed, configured, and running. In
|
||||||
addition, an image named tty must be present.</para>
|
addition, an image named <literal>tty</literal> must
|
||||||
|
be present.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Identity is installed, configured, and running. A
|
<para>Identity is installed, configured, and running. A
|
||||||
@ -142,45 +143,41 @@
|
|||||||
<para>Additional services: <itemizedlist>
|
<para>Additional services: <itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>RabbitMQ is running with default guest
|
<para>RabbitMQ is running with default guest
|
||||||
and its password</para>
|
and its password.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem
|
<listitem
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>MySQL server (user is <emphasis
|
<para>MySQL server (user is <emphasis
|
||||||
role="bold">root</emphasis> and
|
role="bold">root</emphasis> and
|
||||||
password is <emphasis role="bold"
|
password is <emphasis role="bold"
|
||||||
>root</emphasis>)</para>
|
>root</emphasis>).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist></para>
|
</itemizedlist></para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
<para><emphasis role="bold">Compute node</emphasis></para>
|
<para><emphasis role="bold">Compute node</emphasis></para>
|
||||||
<para>Compute is installed and configured.</para>
|
<para>Install and configure Compute.</para>
|
||||||
<section xml:id="demo_routers_with_private_networks_installions">
|
<section xml:id="demo_routers_with_private_networks_installions">
|
||||||
<title>Install</title>
|
<title>Install</title>
|
||||||
<para>
|
<itemizedlist>
|
||||||
<itemizedlist>
|
<listitem>
|
||||||
<listitem>
|
<para><emphasis role="bold">Controller nodeNetworking
|
||||||
<para><emphasis role="bold">Controller
|
server</emphasis></para>
|
||||||
nodeNetworking server</emphasis></para>
|
<procedure>
|
||||||
<orderedlist>
|
<step>
|
||||||
<listitem>
|
<para>Install the Networking server.</para>
|
||||||
<para>Install the Networking
|
</step>
|
||||||
server.</para>
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
</listitem>
|
<para>Create database <emphasis role="bold"
|
||||||
<listitem
|
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
|
||||||
<para>Create database <emphasis
|
|
||||||
role="bold"
|
|
||||||
>ovs_neutron</emphasis>.</para>
|
>ovs_neutron</emphasis>.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Update the Networking configuration
|
<para>Update the Networking configuration
|
||||||
file, <filename>
|
file, <filename>
|
||||||
/etc/neutron/neutron.conf</filename>,
|
/etc/neutron/neutron.conf</filename>,
|
||||||
with plug-in choice and Identity
|
with plug-in choice and Identity Service
|
||||||
Service user as necessary:</para>
|
user as necessary:</para>
|
||||||
<programlisting language="ini" os="rhel;centos;fedora;opensuse;sles;ubuntu">[DEFAULT]
|
<programlisting language="ini" os="rhel;centos;fedora;opensuse;sles;ubuntu">[DEFAULT]
|
||||||
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = <replaceable>controller</replaceable>
|
rabbit_host = <replaceable>controller</replaceable>
|
||||||
@ -193,55 +190,49 @@ connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@<replacea
|
|||||||
[keystone_authtoken]
|
[keystone_authtoken]
|
||||||
admin_tenant_name=service
|
admin_tenant_name=service
|
||||||
admin_user=neutron
|
admin_user=neutron
|
||||||
admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
admin_password=<replaceable>NEUTRON_PASS</replaceable></programlisting>
|
||||||
</programlisting>
|
<programlisting language="ini" os="debian">[DEFAULT]
|
||||||
<programlisting language="ini" os="debian">[DEFAULT]
|
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = <replaceable>controller</replaceable>
|
rabbit_host = <replaceable>controller</replaceable>
|
||||||
rabbit_password = <replaceable>RABBIT_PASS</replaceable>
|
rabbit_password = <replaceable>RABBIT_PASS</replaceable>
|
||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@<replaceable>controller</replaceable>:3306/neutron
|
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@<replaceable>controller</replaceable>:3306/neutron</programlisting>
|
||||||
</programlisting>
|
</step>
|
||||||
</listitem>
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<listitem
|
<para>Update the plug-in configuration file,
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>:</para>
|
||||||
<para>Update the plug-in configuration
|
<programlisting language="ini">[ovs]
|
||||||
file,
|
|
||||||
<filename>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>:</para>
|
|
||||||
<programlisting language="ini">[ovs]
|
|
||||||
tenant_network_type = gre
|
tenant_network_type = gre
|
||||||
tunnel_id_ranges = 1:1000
|
tunnel_id_ranges = 1:1000
|
||||||
enable_tunneling = True
|
enable_tunneling = True</programlisting>
|
||||||
</programlisting>
|
</step>
|
||||||
</listitem>
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<listitem
|
<para>Start the Networking server.</para>
|
||||||
os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<para>The Networking server can be a service
|
||||||
<para>Start the Networking server</para>
|
of the operating system. The command to
|
||||||
<para>The Networking server can be a
|
start the service depends on your
|
||||||
service of the operating system. The
|
operating system. The following command
|
||||||
command to start the service depends
|
runs the Networking server
|
||||||
on your operating system. The
|
directly:</para>
|
||||||
following command runs the Networking
|
<screen><prompt>#</prompt> <userinput>neutron-server --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
||||||
server directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-server --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
|
||||||
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</procedure>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Compute nodeCompute </emphasis><orderedlist>
|
<para><emphasis role="bold">Compute nodeCompute </emphasis><procedure>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Install Compute services.</para>
|
<para>Install Compute services.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Update the Compute <filename>
|
<para>Update the Compute <filename>
|
||||||
/etc/nova/nova.conf</filename>
|
/etc/nova/nova.conf</filename>
|
||||||
configuration file. Make sure the
|
configuration file. Make sure the
|
||||||
following line appears at the end
|
following line appears at the end of
|
||||||
of this file:</para>
|
this file:</para>
|
||||||
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
<programlisting language="ini">network_api_class=nova.network.neutronv2.api.API
|
||||||
|
|
||||||
neutron_admin_username=neutron
|
neutron_admin_username=neutron
|
||||||
neutron_admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
neutron_admin_password=<replaceable>NEUTRON_PASS</replaceable>
|
||||||
@ -250,37 +241,35 @@ neutron_auth_strategy=keystone
|
|||||||
neutron_admin_tenant_name=service
|
neutron_admin_tenant_name=service
|
||||||
neutron_url=http://controlnode:9696/
|
neutron_url=http://controlnode:9696/
|
||||||
|
|
||||||
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
|
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver</programlisting>
|
||||||
</programlisting>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Restart relevant Compute
|
||||||
<para>Restart relevant Compute
|
services.</para>
|
||||||
services.</para>
|
</step>
|
||||||
</listitem>
|
</procedure></para>
|
||||||
</orderedlist></para>
|
</listitem>
|
||||||
</listitem>
|
<listitem>
|
||||||
<listitem>
|
<para><emphasis role="bold">Compute and Networking
|
||||||
<para><emphasis role="bold">Compute and Networking
|
nodeL2 agent</emphasis></para>
|
||||||
nodeL2 agent</emphasis></para>
|
<procedure>
|
||||||
<orderedlist>
|
<step>
|
||||||
<listitem>
|
<para>Install and start Open vSwitch.</para>
|
||||||
<para>Install and start Open
|
</step>
|
||||||
vSwitch.</para>
|
<step>
|
||||||
</listitem>
|
<para>Install the L2 agent (Neutron Open
|
||||||
<listitem>
|
vSwitch agent).</para>
|
||||||
<para>Install the L2 agent (Neutron Open
|
</step>
|
||||||
vSwitch agent).</para>
|
<step>
|
||||||
</listitem>
|
<para>Add the integration bridge to the Open
|
||||||
<listitem>
|
vSwitch:</para>
|
||||||
<para>Add the integration bridge to the
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-int</userinput></screen>
|
||||||
Open vSwitch:</para>
|
</step>
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-int</userinput></screen>
|
<step>
|
||||||
</listitem>
|
<para>Update the Networking configuration
|
||||||
<listitem>
|
file, <filename>
|
||||||
<para>Update the Networking configuration
|
/etc/neutron/neutron.conf</filename>:</para>
|
||||||
file, <filename>
|
<programlisting language="ini">[DEFAULT]
|
||||||
/etc/neutron/neutron.conf</filename>:</para>
|
|
||||||
<programlisting language="ini">[DEFAULT]
|
|
||||||
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = <replaceable>controller</replaceable>
|
rabbit_host = <replaceable>controller</replaceable>
|
||||||
@ -289,152 +278,143 @@ notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
|||||||
|
|
||||||
[database]
|
[database]
|
||||||
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@<replaceable>controller</replaceable>:3306/neutron</programlisting>
|
connection = mysql://neutron:<replaceable>NEUTRON_DBPASS</replaceable>@<replaceable>controller</replaceable>:3306/neutron</programlisting>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Update the plug-in configuration
|
<para>Update the plug-in configuration file,
|
||||||
file, <filename>
|
<filename>
|
||||||
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>.</para>
|
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini</filename>.</para>
|
||||||
<para>Compute node:</para>
|
<para>Compute node:</para>
|
||||||
<programlisting language="ini">[ovs]
|
<programlisting language="ini">[ovs]
|
||||||
tenant_network_type = gre
|
tenant_network_type = gre
|
||||||
tunnel_id_ranges = 1:1000
|
tunnel_id_ranges = 1:1000
|
||||||
enable_tunneling = True
|
enable_tunneling = True
|
||||||
local_ip = 9.181.89.202
|
local_ip = 9.181.89.202</programlisting>
|
||||||
</programlisting>
|
<para>Network node:</para>
|
||||||
<para>Network node:</para>
|
<programlisting language="ini">[ovs]
|
||||||
<programlisting language="ini">[ovs]
|
|
||||||
tenant_network_type = gre
|
tenant_network_type = gre
|
||||||
tunnel_id_ranges = 1:1000
|
tunnel_id_ranges = 1:1000
|
||||||
enable_tunneling = True
|
enable_tunneling = True
|
||||||
local_ip = 9.181.89.203
|
local_ip = 9.181.89.203</programlisting>
|
||||||
</programlisting>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Create the integration bridge <emphasis
|
||||||
<para>Create the integration bridge
|
role="bold">br-int</emphasis>:</para>
|
||||||
<emphasis role="bold"
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl --may-exist add-br br-int</userinput></screen>
|
||||||
>br-int</emphasis>:</para>
|
</step>
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl --may-exist add-br br-int</userinput></screen>
|
<step>
|
||||||
</listitem>
|
<para>Start the Networking L2 agent</para>
|
||||||
<listitem>
|
<para>The Networking Open vSwitch L2 agent can
|
||||||
<para>Start the Networking L2 agent</para>
|
be a service of operating system. The
|
||||||
<para>The Networking Open vSwitch L2 agent
|
command to start depends on your operating
|
||||||
can be a service of operating system.
|
systems. The following command runs the
|
||||||
The command to start depends on your
|
service directly:</para>
|
||||||
operating systems. The following
|
<screen><prompt>#</prompt> <userinput>neutron-openvswitch-agent --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
||||||
command runs the service
|
|
||||||
directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-openvswitch-agent --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
|
|
||||||
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
--config-file /etc/neutron/neutron.conf</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</procedure>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Network nodeDHCP
|
<para><emphasis role="bold">Network nodeDHCP
|
||||||
agent</emphasis></para>
|
agent</emphasis></para>
|
||||||
<orderedlist>
|
<procedure>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Install the DHCP agent.</para>
|
<para>Install the DHCP agent.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Update the Networking configuration
|
<para>Update the Networking configuration
|
||||||
file, <filename>
|
file, <filename>
|
||||||
/etc/neutron/neutron.conf</filename></para>
|
/etc/neutron/neutron.conf</filename></para>
|
||||||
<programlisting language="ini">[DEFAULT]
|
<programlisting language="ini">[DEFAULT]
|
||||||
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
|
||||||
control_exchange = neutron
|
control_exchange = neutron
|
||||||
rabbit_host = <replaceable>controller</replaceable>
|
rabbit_host = <replaceable>controller</replaceable>
|
||||||
rabbit_password = <replaceable>RABBIT_PASS</replaceable>
|
rabbit_password = <replaceable>RABBIT_PASS</replaceable>
|
||||||
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
notification_driver = neutron.openstack.common.notifier.rabbit_notifier
|
||||||
allow_overlapping_ips = True</programlisting>
|
allow_overlapping_ips = True</programlisting>
|
||||||
<para><emphasis role="bold">Set
|
<para><emphasis role="bold">Set
|
||||||
<literal>allow_overlapping_ips</literal>
|
<literal>allow_overlapping_ips</literal>
|
||||||
because TenantA and TenantC use
|
because TenantA and TenantC use
|
||||||
overlapping
|
overlapping subnets.</emphasis></para>
|
||||||
subnets.</emphasis></para>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Update the DHCP <filename>
|
||||||
<para>Update the DHCP <filename>
|
/etc/neutron/dhcp_agent.ini</filename>
|
||||||
/etc/neutron/dhcp_agent.ini</filename>
|
configuration file:</para>
|
||||||
configuration file:</para>
|
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</programlisting>
|
||||||
<programlisting language="ini">interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver</programlisting>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Start the DHCP agent.</para>
|
||||||
<para>Start the DHCP agent.</para>
|
<para>The Networking DHCP agent can be a
|
||||||
<para>The Networking DHCP agent can be a
|
service of operating system. The command
|
||||||
service of operating system. The
|
to start the service depends on your
|
||||||
command to start the service depends
|
operating system. The following command
|
||||||
on your operating system. The
|
runs the service directly:</para>
|
||||||
following command runs the service
|
<screen><prompt>#</prompt> <userinput>neutron-dhcp-agent --config-file /etc/neutron/neutron.conf \
|
||||||
directly:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-dhcp-agent --config-file /etc/neutron/neutron.conf \
|
|
||||||
--config-file /etc/neutron/dhcp_agent.ini</userinput></screen>
|
--config-file /etc/neutron/dhcp_agent.ini</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</procedure>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis role="bold">Network nodeL3
|
<para><emphasis role="bold">Network nodeL3
|
||||||
agent</emphasis></para>
|
agent</emphasis></para>
|
||||||
<orderedlist>
|
<procedure>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Install the L3 agent.</para>
|
<para>Install the L3 agent.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Add the external network
|
<para>Add the external network bridge</para>
|
||||||
bridge</para>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-ex</userinput></screen>
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-br br-ex</userinput></screen>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Add the physical interface, for example
|
||||||
<para>Add the physical interface, for
|
eth0, that is connected to the outside
|
||||||
example eth0, that is connected to the
|
network to this bridge:</para>
|
||||||
outside network to this bridge:</para>
|
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-port br-ex eth0</userinput></screen>
|
||||||
<screen><prompt>#</prompt> <userinput>ovs-vsctl add-port br-ex eth0</userinput></screen>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Update the L3 configuration file
|
||||||
<para>Update the L3 configuration file
|
<filename>
|
||||||
<filename>
|
/etc/neutron/l3_agent.ini</filename>:</para>
|
||||||
/etc/neutron/l3_agent.ini</filename>:</para>
|
<programlisting language="ini">[DEFAULT]
|
||||||
<programlisting language="ini">[DEFAULT]
|
|
||||||
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
|
interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver
|
||||||
use_namespaces=True</programlisting>
|
use_namespaces=True</programlisting>
|
||||||
<para><emphasis role="bold">Set the
|
<para><emphasis role="bold">Set the
|
||||||
<literal>use_namespaces</literal>
|
<literal>use_namespaces</literal>
|
||||||
option (it is True by default)
|
option (it is True by default) because
|
||||||
because TenantA and TenantC have
|
TenantA and TenantC have overlapping
|
||||||
overlapping subnets, and the
|
subnets, and the routers are hosted on
|
||||||
routers are hosted on one l3 agent
|
one l3 agent network
|
||||||
network node.</emphasis></para>
|
node.</emphasis></para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Start the L3 agent</para>
|
<para>Start the L3 agent</para>
|
||||||
<para>The Networking L3 agent can be a
|
<para>The Networking L3 agent can be a service
|
||||||
service of operating system. The
|
of operating system. The command to start
|
||||||
command to start the service depends
|
the service depends on your operating
|
||||||
on your operating system. The
|
system. The following command starts the
|
||||||
following command starts the agent
|
agent directly:</para>
|
||||||
directly:</para>
|
<screen><prompt>#</prompt> <userinput>neutron-l3-agent --config-file /etc/neutron/neutron.conf \
|
||||||
<screen><prompt>#</prompt> <userinput>neutron-l3-agent --config-file /etc/neutron/neutron.conf \
|
|
||||||
--config-file /etc/neutron/l3_agent.ini</userinput></screen>
|
--config-file /etc/neutron/l3_agent.ini</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</procedure>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="demo_per_tenant_router_network_config">
|
<section xml:id="demo_per_tenant_router_network_config">
|
||||||
<title>Configure logical network</title>
|
<title>Configure logical network</title>
|
||||||
<para>All of the commands below can be executed on the network
|
<para>You can run these commands on the network node.</para>
|
||||||
node.</para>
|
|
||||||
<note>
|
<note>
|
||||||
<para>Ensure that the following environment variables are
|
<para>Ensure that the following environment variables are
|
||||||
set. Various clients use these to access the Identity
|
set. Various clients use these to access the Identity
|
||||||
Service.</para>
|
Service.</para>
|
||||||
</note>
|
<programlisting language="bash">export OS_USERNAME=admin
|
||||||
<programlisting language="bash">export OS_USERNAME=admin
|
|
||||||
export OS_PASSWORD=adminpassword
|
export OS_PASSWORD=adminpassword
|
||||||
export OS_TENANT_NAME=admin
|
export OS_TENANT_NAME=admin
|
||||||
export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
||||||
<orderedlist>
|
</note>
|
||||||
<listitem>
|
<procedure>
|
||||||
|
<step>
|
||||||
<para>Get the tenant ID (Used as $TENANT_ID
|
<para>Get the tenant ID (Used as $TENANT_ID
|
||||||
later):</para>
|
later):</para>
|
||||||
<screen><prompt>#</prompt> <userinput>keystone tenant-list</userinput>
|
<screen><prompt>#</prompt> <userinput>keystone tenant-list</userinput>
|
||||||
@ -446,11 +426,10 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
| 3719a4940bf24b5a8124b58c9b0a6ee6 | TenantB | True |
|
| 3719a4940bf24b5a8124b58c9b0a6ee6 | TenantB | True |
|
||||||
| 5fcfbc3283a142a5bb6978b549a511ac | demo | True |
|
| 5fcfbc3283a142a5bb6978b549a511ac | demo | True |
|
||||||
| b7445f221cda4f4a8ac7db6b218b1339 | admin | True |
|
| b7445f221cda4f4a8ac7db6b218b1339 | admin | True |
|
||||||
+----------------------------------+---------+---------+
|
+----------------------------------+---------+---------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
<para>Get user information:</para>
|
||||||
<para>Get the user information:</para>
|
|
||||||
<screen><prompt>#</prompt> <userinput>keystone user-list</userinput>
|
<screen><prompt>#</prompt> <userinput>keystone user-list</userinput>
|
||||||
<computeroutput>+----------------------------------+-------+---------+-------------------+
|
<computeroutput>+----------------------------------+-------+---------+-------------------+
|
||||||
| id | name | enabled | email |
|
| id | name | enabled | email |
|
||||||
@ -460,10 +439,9 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
| 8e37cb8193cb4873a35802d257348431 | UserC | True | |
|
| 8e37cb8193cb4873a35802d257348431 | UserC | True | |
|
||||||
| c11f6b09ed3c45c09c21cbbc23e93066 | UserB | True | |
|
| c11f6b09ed3c45c09c21cbbc23e93066 | UserB | True | |
|
||||||
| ca567c4f6c0942bdac0e011e97bddbe3 | UserA | True | |
|
| ca567c4f6c0942bdac0e011e97bddbe3 | UserA | True | |
|
||||||
+----------------------------------+-------+---------+-------------------+
|
+----------------------------------+-------+---------+-------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
|
||||||
<para>Create the external network and its subnet by
|
<para>Create the external network and its subnet by
|
||||||
admin user:</para>
|
admin user:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron net-create Ext-Net --provider:network_type local --router:external true</userinput>
|
<screen><prompt>#</prompt> <userinput>neutron net-create Ext-Net --provider:network_type local --router:external true</userinput>
|
||||||
@ -482,8 +460,7 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
| status | ACTIVE |
|
| status | ACTIVE |
|
||||||
| subnets | |
|
| subnets | |
|
||||||
| tenant_id | b7445f221cda4f4a8ac7db6b218b1339 |
|
| tenant_id | b7445f221cda4f4a8ac7db6b218b1339 |
|
||||||
+---------------------------+--------------------------------------+
|
+---------------------------+--------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
|
||||||
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron subnet-create Ext-Net 30.0.0.0/24 --disable-dhcp</userinput>
|
<screen><prompt>#</prompt> <userinput>neutron subnet-create Ext-Net 30.0.0.0/24 --disable-dhcp</userinput>
|
||||||
<computeroutput>Created a new subnet:
|
<computeroutput>Created a new subnet:
|
||||||
@ -501,8 +478,7 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
| name | |
|
| name | |
|
||||||
| network_id | 2c757c9e-d3d6-4154-9a77-336eb99bd573 |
|
| network_id | 2c757c9e-d3d6-4154-9a77-336eb99bd573 |
|
||||||
| tenant_id | b7445f221cda4f4a8ac7db6b218b1339 |
|
| tenant_id | b7445f221cda4f4a8ac7db6b218b1339 |
|
||||||
+------------------+--------------------------------------------+
|
+------------------+--------------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
|
||||||
<para><emphasis role="bold">
|
<para><emphasis role="bold">
|
||||||
<literal>provider:network_type local</literal>
|
<literal>provider:network_type local</literal>
|
||||||
means that Networking does not have to realize
|
means that Networking does not have to realize
|
||||||
@ -511,8 +487,8 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
means that an external network is created
|
means that an external network is created
|
||||||
where you can create floating IP and router
|
where you can create floating IP and router
|
||||||
gateway port.</emphasis></para>
|
gateway port.</emphasis></para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Add an IP on external network to br-ex.</para>
|
<para>Add an IP on external network to br-ex.</para>
|
||||||
<para>Because br-ex is the external network bridge,
|
<para>Because br-ex is the external network bridge,
|
||||||
add an IP 30.0.0.100/24 to br-ex and ping the
|
add an IP 30.0.0.100/24 to br-ex and ping the
|
||||||
@ -520,13 +496,13 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
node.</para>
|
node.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>ip addr add 30.0.0.100/24 dev br-ex</userinput>
|
<screen><prompt>#</prompt> <userinput>ip addr add 30.0.0.100/24 dev br-ex</userinput>
|
||||||
<prompt>#</prompt> <userinput>ip link set br-ex up</userinput></screen>
|
<prompt>#</prompt> <userinput>ip link set br-ex up</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Serve TenantA.</para>
|
<para>Serve TenantA.</para>
|
||||||
<para>For TenantA, create a private network, subnet,
|
<para>For TenantA, create a private network, subnet,
|
||||||
server, router, and floating IP.</para>
|
server, router, and floating IP.</para>
|
||||||
<orderedlist>
|
<substeps>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create a network for TenantA:</para>
|
<para>Create a network for TenantA:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 net-create TenantA-Net</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 net-create TenantA-Net</userinput>
|
||||||
@ -561,17 +537,15 @@ export OS_AUTH_URL=http://127.0.0.1:5000/v2.0/</programlisting>
|
|||||||
| status | ACTIVE |
|
| status | ACTIVE |
|
||||||
| subnets | |
|
| subnets | |
|
||||||
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
||||||
+---------------------------+--------------------------------------+
|
+---------------------------+--------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
|
||||||
<para>The network has GRE tunnel ID (for
|
<para>The network has GRE tunnel ID (for
|
||||||
example, provider:segmentation_id)
|
example, provider:segmentation_id)
|
||||||
1.</para>
|
1.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create a subnet on the network
|
<para>Create a subnet on the network
|
||||||
TenantA-Net:</para>
|
TenantA-Net:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|
||||||
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantA-Net 10.0.0.0/24</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantA-Net 10.0.0.0/24</userinput>
|
||||||
<computeroutput>Created a new subnet:
|
<computeroutput>Created a new subnet:
|
||||||
+------------------+--------------------------------------------+
|
+------------------+--------------------------------------------+
|
||||||
@ -588,23 +562,20 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| name | |
|
| name | |
|
||||||
| network_id | 7d0e8d5d-c63c-4f13-a117-4dc4e33e7d68 |
|
| network_id | 7d0e8d5d-c63c-4f13-a117-4dc4e33e7d68 |
|
||||||
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
||||||
+------------------+--------------------------------------------+
|
+------------------+--------------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
</step>
|
||||||
</listitem>
|
<step>
|
||||||
<listitem>
|
|
||||||
<para>Create a server for TenantA:</para>
|
<para>Create a server for TenantA:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>nova --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>$</prompt> <userinput>nova --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
||||||
--nic net-id=7d0e8d5d-c63c-4f13-a117-4dc4e33e7d68 TenantA_VM1</userinput></screen>
|
--nic net-id=7d0e8d5d-c63c-4f13-a117-4dc4e33e7d68 TenantA_VM1</userinput></screen>
|
||||||
<screen><prompt>$</prompt> <userinput>nova --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>$</prompt> <userinput>nova --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 list</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 list</userinput>
|
||||||
<computeroutput>
|
<computeroutput>+--------------------------------------+-------------+--------+----------------------+
|
||||||
+--------------------------------------+-------------+--------+----------------------+
|
|
||||||
| ID | Name | Status | Networks |
|
| ID | Name | Status | Networks |
|
||||||
+--------------------------------------+-------------+--------+----------------------+
|
+--------------------------------------+-------------+--------+----------------------+
|
||||||
| 7c5e6499-7ef7-4e36-8216-62c2941d21ff | TenantA_VM1 | ACTIVE | TenantA-Net=10.0.0.3 |
|
| 7c5e6499-7ef7-4e36-8216-62c2941d21ff | TenantA_VM1 | ACTIVE | TenantA-Net=10.0.0.3 |
|
||||||
+--------------------------------------+-------------+--------+----------------------+
|
+--------------------------------------+-------------+--------+----------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
|
||||||
<note>
|
<note>
|
||||||
<para>It is important to understand that
|
<para>It is important to understand that
|
||||||
you should not attach the instance to
|
you should not attach the instance to
|
||||||
@ -613,8 +584,8 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
accessible from the external
|
accessible from the external
|
||||||
network.</para>
|
network.</para>
|
||||||
</note>
|
</note>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create and configure a router for
|
<para>Create and configure a router for
|
||||||
TenantA:</para>
|
TenantA:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
@ -629,8 +600,7 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| name | TenantA-R1 |
|
| name | TenantA-R1 |
|
||||||
| status | ACTIVE |
|
| status | ACTIVE |
|
||||||
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
||||||
+-----------------------+--------------------------------------+
|
+-----------------------+--------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
--os-auth-url=http://localhost:5000/v2.0 router-interface-add \
|
||||||
TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657</userinput></screen>
|
TenantA-R1 51e2c223-0492-4385-b6e9-83d4e6d10657</userinput></screen>
|
||||||
@ -639,11 +609,15 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 \
|
--os-auth-url=http://localhost:5000/v2.0 \
|
||||||
router-gateway-set TenantA-R1 Ext-Net</userinput></screen>
|
router-gateway-set TenantA-R1 Ext-Net</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
</substeps>
|
||||||
<para>Associate a floating IP for
|
</step>
|
||||||
TenantA_VM1.</para>
|
<step>
|
||||||
<para>1. Create a floating IP:</para>
|
<para>Associate a floating IP for TenantA_VM1.</para>
|
||||||
|
<substeps>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Create a floating IP:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 floatingip-create Ext-Net</userinput>
|
||||||
<computeroutput>Created a new floatingip:
|
<computeroutput>Created a new floatingip:
|
||||||
@ -657,9 +631,10 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| port_id | |
|
| port_id | |
|
||||||
| router_id | |
|
| router_id | |
|
||||||
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
| tenant_id | 247e478c599f45b5bd297e8ddbbc9b6a |
|
||||||
+---------------------+--------------------------------------+
|
+---------------------+--------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
</step>
|
||||||
<para>2. Get the port ID of the VM with ID
|
<step>
|
||||||
|
<para>Get the port ID of the VM with ID
|
||||||
7c5e6499-7ef7-4e36-8216-62c2941d21ff:</para>
|
7c5e6499-7ef7-4e36-8216-62c2941d21ff:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 port-list -- \
|
--os-auth-url=http://localhost:5000/v2.0 port-list -- \
|
||||||
@ -668,9 +643,10 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| id | name | mac_address | fixed_ips |
|
| id | name | mac_address | fixed_ips |
|
||||||
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
|
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
|
||||||
| 6071d430-c66e-4125-b972-9a937c427520 | | fa:16:3e:a0:73:0d | {"subnet_id": "51e2c223-0492-4385-b6e9-83d4e6d10657", "ip_address": "10.0.0.3"} |
|
| 6071d430-c66e-4125-b972-9a937c427520 | | fa:16:3e:a0:73:0d | {"subnet_id": "51e2c223-0492-4385-b6e9-83d4e6d10657", "ip_address": "10.0.0.3"} |
|
||||||
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
|
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+</computeroutput></screen>
|
||||||
</computeroutput></screen>
|
</step>
|
||||||
<para>3. Associate the floating IP with the VM
|
<step>
|
||||||
|
<para>Associate the floating IP with the VM
|
||||||
port:</para>
|
port:</para>
|
||||||
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
<screen><prompt>$</prompt> <userinput>neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 floatingip-associate \
|
--os-auth-url=http://localhost:5000/v2.0 floatingip-associate \
|
||||||
@ -684,18 +660,19 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
| 5a1f90ed-aa3c-4df3-82cb-116556e96bf1 | 10.0.0.3 | 30.0.0.2 | 6071d430-c66e-4125-b972-9a937c427520 |
|
| 5a1f90ed-aa3c-4df3-82cb-116556e96bf1 | 10.0.0.3 | 30.0.0.2 | 6071d430-c66e-4125-b972-9a937c427520 |
|
||||||
+--------------------------------------+------------------+---------------------+--------------------------------------+
|
+--------------------------------------+------------------+---------------------+--------------------------------------+
|
||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
</substeps>
|
||||||
<para>Ping the public network from the server
|
</step>
|
||||||
of TenantA.</para>
|
<step>
|
||||||
<para>In my environment, 192.168.1.0/24 is my
|
<para>Ping the public network from the server of
|
||||||
public network connected with my physical
|
TenantA.</para>
|
||||||
router, which also connects to the
|
<para>In my environment, 192.168.1.0/24 is my public
|
||||||
external network 30.0.0.0/24. With the
|
network connected with my physical router, which
|
||||||
floating IP and virtual router, we can
|
also connects to the external network 30.0.0.0/24.
|
||||||
ping the public network within the server
|
With the floating IP and virtual router, you can
|
||||||
of tenant A:</para>
|
ping the public network within the server of
|
||||||
<screen><prompt>$</prompt> <userinput>ping 192.168.1.1</userinput>
|
tenant A:</para>
|
||||||
|
<screen><prompt>$</prompt> <userinput>ping 192.168.1.1</userinput>
|
||||||
<computeroutput>PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
|
<computeroutput>PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
|
||||||
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=1.74 ms
|
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=1.74 ms
|
||||||
64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=1.50 ms
|
64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=1.50 ms
|
||||||
@ -705,11 +682,10 @@ neutron --os-tenant-name TenantA --os-username UserA --os-password password \
|
|||||||
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
|
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
|
||||||
rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms
|
rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms
|
||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Ping floating IP of the TenantA's
|
<para>Ping floating IP of the TenantA's server:</para>
|
||||||
server:</para>
|
<screen><prompt>$</prompt> <userinput>ping 30.0.0.2</userinput>
|
||||||
<screen><prompt>$</prompt> <userinput>ping 30.0.0.2</userinput>
|
|
||||||
<computeroutput>PING 30.0.0.2 (30.0.0.2) 56(84) bytes of data.
|
<computeroutput>PING 30.0.0.2 (30.0.0.2) 56(84) bytes of data.
|
||||||
64 bytes from 30.0.0.2: icmp_req=1 ttl=63 time=45.0 ms
|
64 bytes from 30.0.0.2: icmp_req=1 ttl=63 time=45.0 ms
|
||||||
64 bytes from 30.0.0.2: icmp_req=2 ttl=63 time=0.898 ms
|
64 bytes from 30.0.0.2: icmp_req=2 ttl=63 time=0.898 ms
|
||||||
@ -719,22 +695,20 @@ rtt min/avg/max/mdev = 1.234/1.495/1.745/0.211 ms
|
|||||||
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
|
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
|
||||||
rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
||||||
</computeroutput></screen>
|
</computeroutput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create other servers for TenantA.</para>
|
<para>Create other servers for TenantA.</para>
|
||||||
<para>We can create more servers for TenantA
|
<para>You can create more servers for TenantA and add
|
||||||
and add floating IPs for them.</para>
|
floating IPs for them.</para>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
<step>
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Serve TenantC.</para>
|
<para>Serve TenantC.</para>
|
||||||
<para>For TenantC, we will create two private networks
|
<para>For TenantC, you create two private networks
|
||||||
with subnet 10.0.0.0/24 and subnet 10.0.1.0/24,
|
with subnet 10.0.0.0/24 and subnet 10.0.1.0/24,
|
||||||
some servers, one router to connect to these two
|
some servers, one router to connect to these two
|
||||||
subnets and some floating IPs.</para>
|
subnets and some floating IPs.</para>
|
||||||
<orderedlist>
|
<substeps>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create networks and subnets for
|
<para>Create networks and subnets for
|
||||||
TenantC:</para>
|
TenantC:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
@ -748,7 +722,7 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net2 \
|
--os-auth-url=http://localhost:5000/v2.0 subnet-create TenantC-Net2 \
|
||||||
10.0.1.0/24 --name TenantC-Subnet2</userinput>
|
10.0.1.0/24 --name TenantC-Subnet2</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
<para>After that we can use admin user to
|
<para>After that you can use admin user to
|
||||||
query the network's provider network
|
query the network's provider network
|
||||||
information:</para>
|
information:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron net-show TenantC-Net1</userinput>
|
<screen><prompt>#</prompt> <userinput>neutron net-show TenantC-Net1</userinput>
|
||||||
@ -789,22 +763,22 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
also note the network IDs and subnet IDs
|
also note the network IDs and subnet IDs
|
||||||
because you use them to create VMs and
|
because you use them to create VMs and
|
||||||
router.</para>
|
router.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create a server TenantC-VM1 for TenantC
|
<para>Create a server TenantC-VM1 for TenantC
|
||||||
on TenantC-Net1.</para>
|
on TenantC-Net1.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
||||||
--nic net-id=91309738-c317-40a3-81bb-bed7a3917a85 TenantC_VM1</userinput></screen>
|
--nic net-id=91309738-c317-40a3-81bb-bed7a3917a85 TenantC_VM1</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create a server TenantC-VM3 for TenantC
|
<para>Create a server TenantC-VM3 for TenantC
|
||||||
on TenantC-Net2.</para>
|
on TenantC-Net2.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
--os-auth-url=http://localhost:5000/v2.0 boot --image tty --flavor 1 \
|
||||||
--nic net-id=5b373ad2-7866-44f4-8087-f87148abd623 TenantC_VM3</userinput></screen>
|
--nic net-id=5b373ad2-7866-44f4-8087-f87148abd623 TenantC_VM3</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>List servers of TenantC.</para>
|
<para>List servers of TenantC.</para>
|
||||||
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>nova --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 list</userinput>
|
--os-auth-url=http://localhost:5000/v2.0 list</userinput>
|
||||||
@ -816,16 +790,16 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
+--------------------------------------+-------------+--------+-----------------------+</computeroutput></screen>
|
+--------------------------------------+-------------+--------+-----------------------+</computeroutput></screen>
|
||||||
<para>Note the server IDs because you use them
|
<para>Note the server IDs because you use them
|
||||||
later.</para>
|
later.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Make sure servers get their IPs.</para>
|
<para>Make sure servers get their IPs.</para>
|
||||||
<para>You can use VNC to log on the VMs to
|
<para>You can use VNC to log on the VMs to
|
||||||
check if they get IPs. If not, you must
|
check if they get IPs. If not, you must
|
||||||
make sure that the Networking components
|
make sure that the Networking components
|
||||||
are running correctly and the GRE tunnels
|
are running correctly and the GRE tunnels
|
||||||
work.</para>
|
work.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Create and configure a router for
|
<para>Create and configure a router for
|
||||||
TenantC:</para>
|
TenantC:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
@ -839,8 +813,8 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
<screen><prompt>#</prompt> <userinput>neutron --os-tenant-name TenantC --os-username UserC --os-password password \
|
||||||
--os-auth-url=http://localhost:5000/v2.0 \
|
--os-auth-url=http://localhost:5000/v2.0 \
|
||||||
router-gateway-set TenantC-R1 Ext-Net</userinput></screen>
|
router-gateway-set TenantC-R1 Ext-Net</userinput></screen>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Checkpoint: ping from within TenantC's
|
<para>Checkpoint: ping from within TenantC's
|
||||||
servers.</para>
|
servers.</para>
|
||||||
<para>Because a router connects to two
|
<para>Because a router connects to two
|
||||||
@ -849,8 +823,8 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
the router is set, TenantC's servers can
|
the router is set, TenantC's servers can
|
||||||
ping external network IPs, such as
|
ping external network IPs, such as
|
||||||
192.168.1.1, 30.0.0.1, and so on.</para>
|
192.168.1.1, 30.0.0.1, and so on.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Associate floating IPs for TenantC's
|
<para>Associate floating IPs for TenantC's
|
||||||
servers.</para>
|
servers.</para>
|
||||||
<para>Because a router connects to two
|
<para>Because a router connects to two
|
||||||
@ -860,16 +834,16 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
servers can ping external network IPs,
|
servers can ping external network IPs,
|
||||||
such as 192.168.1.1, 30.0.0.1, and so
|
such as 192.168.1.1, 30.0.0.1, and so
|
||||||
on.</para>
|
on.</para>
|
||||||
</listitem>
|
</step>
|
||||||
<listitem>
|
<step>
|
||||||
<para>Associate floating IPs for TenantC's
|
<para>Associate floating IPs for TenantC's
|
||||||
servers.</para>
|
servers.</para>
|
||||||
<para>You can use similar commands to the ones
|
<para>You can use similar commands to the ones
|
||||||
used in the section for TenantA.</para>
|
used in the section for TenantA.</para>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</substeps>
|
||||||
</listitem>
|
</step>
|
||||||
</orderedlist>
|
</procedure>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="section_use-cases-tenant-router">
|
<section xml:id="section_use-cases-tenant-router">
|
||||||
<title>Use case: per-tenant routers with private
|
<title>Use case: per-tenant routers with private
|
||||||
@ -881,20 +855,18 @@ rtt min/avg/max/mdev = 0.898/15.621/45.027/20.793 ms
|
|||||||
networks, potentially uplinking those networks to a
|
networks, potentially uplinking those networks to a
|
||||||
router. This model enables tenant-defined, multi-tier
|
router. This model enables tenant-defined, multi-tier
|
||||||
applications, with each tier being a separate network
|
applications, with each tier being a separate network
|
||||||
behind the router. Since there are multiple routers,
|
behind the router. Because there are multiple routers,
|
||||||
tenant subnets can overlap without conflicting, since
|
tenant subnets can overlap without conflicting, because
|
||||||
access to external networks all happens via SNAT or
|
access to external networks all happens through SNAT or
|
||||||
Floating IPs. Each router uplink and floating IP is
|
floating IPs. Each router uplink and floating IP is
|
||||||
allocated from the external network subnet.</para>
|
allocated from the external network subnet.</para>
|
||||||
<para>
|
<mediaobject>
|
||||||
<mediaobject>
|
<imageobject>
|
||||||
<imageobject>
|
<imagedata scale="55"
|
||||||
<imagedata scale="55"
|
fileref="../common/figures/UseCase-MultiRouter.png"
|
||||||
fileref="../common/figures/UseCase-MultiRouter.png"
|
align="left"/>
|
||||||
align="left"/>
|
</imageobject>
|
||||||
</imageobject>
|
</mediaobject>
|
||||||
</mediaobject>
|
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1mmQc8cBUoTEfEns-ehIyQSTvOrjUdl5xeGDv9suVyAY/edit -->
|
||||||
<!--Image source link: https://docs.google.com/a/nicira.com/drawings/d/1mmQc8cBUoTEfEns-ehIyQSTvOrjUdl5xeGDv9suVyAY/edit -->
|
|
||||||
</para>
|
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
xml:id="nova-controller">
|
xml:id="nova-controller">
|
||||||
<title>Install the Compute controller services</title>
|
<title>Install Compute controller services</title>
|
||||||
|
|
||||||
<para>Compute is a collection of services that enable you to launch
|
<para>Compute is a collection of services that enable you to launch
|
||||||
virtual machine instances. You can configure these services to run
|
virtual machine instances. You can configure these services to run
|
||||||
on separate nodes or the same node. In this guide, most services
|
on separate nodes or the same node. In this guide, most services
|
||||||
@ -17,13 +16,10 @@
|
|||||||
<package>openstack-nova</package> meta-package, which
|
<package>openstack-nova</package> meta-package, which
|
||||||
installs various Compute packages that are used on the
|
installs various Compute packages that are used on the
|
||||||
controller node.</para>
|
controller node.</para>
|
||||||
|
|
||||||
<screen os="fedora;rhel;centos"><prompt>#</prompt> <userinput>yum install openstack-nova python-novaclient</userinput></screen>
|
<screen os="fedora;rhel;centos"><prompt>#</prompt> <userinput>yum install openstack-nova python-novaclient</userinput></screen>
|
||||||
|
|
||||||
<para os="ubuntu;debian;opensuse;sles">Install these Compute
|
<para os="ubuntu;debian;opensuse;sles">Install these Compute
|
||||||
packages, which provide the Compute services that run on the
|
packages, which provide the Compute services that run on the
|
||||||
controller node.</para>
|
controller node.</para>
|
||||||
|
|
||||||
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install nova-novncproxy novnc nova-api \
|
<screen os="ubuntu"><prompt>#</prompt> <userinput>apt-get install nova-novncproxy novnc nova-api \
|
||||||
nova-ajax-console-proxy nova-cert nova-conductor \
|
nova-ajax-console-proxy nova-cert nova-conductor \
|
||||||
nova-consoleauth nova-doc nova-scheduler \
|
nova-consoleauth nova-doc nova-scheduler \
|
||||||
@ -38,7 +34,6 @@
|
|||||||
openstack-nova-consoleauth openstack-nova-doc \
|
openstack-nova-consoleauth openstack-nova-doc \
|
||||||
openstack-nova-novncproxy python-novaclient</userinput></screen>
|
openstack-nova-novncproxy python-novaclient</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="debian">
|
<step os="debian">
|
||||||
<para>Respond to the prompts for <link
|
<para>Respond to the prompts for <link
|
||||||
linkend="debconf-dbconfig-common">database
|
linkend="debconf-dbconfig-common">database
|
||||||
@ -49,7 +44,6 @@
|
|||||||
>API endpoint</link> registration. The <command>nova-manage
|
>API endpoint</link> registration. The <command>nova-manage
|
||||||
db sync</command> command runs automatically.</para>
|
db sync</command> command runs automatically.</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
<para>Compute stores information in a database. The examples in
|
<para>Compute stores information in a database. The examples in
|
||||||
this guide use the MySQL database that is used by other
|
this guide use the MySQL database that is used by other
|
||||||
@ -59,7 +53,6 @@
|
|||||||
service password:</para>
|
service password:</para>
|
||||||
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
|
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
|
||||||
database connection mysql://nova:<replaceable>NOVA_DBPASS</replaceable>@controller/nova</userinput></screen>
|
database connection mysql://nova:<replaceable>NOVA_DBPASS</replaceable>@controller/nova</userinput></screen>
|
||||||
|
|
||||||
<para os="ubuntu;debian">Edit the
|
<para os="ubuntu;debian">Edit the
|
||||||
<filename>/etc/nova/nova.conf</filename> file and add these
|
<filename>/etc/nova/nova.conf</filename> file and add these
|
||||||
lines to the <literal>[database]</literal> section:</para>
|
lines to the <literal>[database]</literal> section:</para>
|
||||||
@ -67,9 +60,7 @@
|
|||||||
[database]
|
[database]
|
||||||
# The SQLAlchemy connection string used to connect to the database
|
# The SQLAlchemy connection string used to connect to the database
|
||||||
connection = mysql://nova:NOVA_DBPASS@controller/nova</programlisting>
|
connection = mysql://nova:NOVA_DBPASS@controller/nova</programlisting>
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="fedora;rhel;centos;opensuse;sles">
|
<step os="fedora;rhel;centos;opensuse;sles">
|
||||||
<para>Run the <command>openstack-db</command> command to create
|
<para>Run the <command>openstack-db</command> command to create
|
||||||
the Compute service database and tables and a
|
the Compute service database and tables and a
|
||||||
@ -81,7 +72,7 @@ connection = mysql://nova:NOVA_DBPASS@controller/nova</programlisting>
|
|||||||
Delete the <filename>nova.sqlite</filename> file created in
|
Delete the <filename>nova.sqlite</filename> file created in
|
||||||
the <filename>/var/lib/nova/</filename> directory so that it
|
the <filename>/var/lib/nova/</filename> directory so that it
|
||||||
does not get used by mistake.</para>
|
does not get used by mistake.</para>
|
||||||
</step>
|
</step>
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>Use the password you created previously to log in as root.
|
<para>Use the password you created previously to log in as root.
|
||||||
Create a <literal>nova</literal> database user:</para>
|
Create a <literal>nova</literal> database user:</para>
|
||||||
@ -93,24 +84,22 @@ IDENTIFIED BY '<replaceable>NOVA_DBPASS</replaceable>';</userinput>
|
|||||||
IDENTIFIED BY '<replaceable>NOVA_DBPASS</replaceable>';</userinput></screen>
|
IDENTIFIED BY '<replaceable>NOVA_DBPASS</replaceable>';</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>Create the tables for the Compute service:</para>
|
<para>Create the Compute service tables:</para>
|
||||||
<screen><prompt>#</prompt> <userinput>nova-manage db sync</userinput></screen>
|
<screen><prompt>#</prompt> <userinput>nova-manage db sync</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
<para>Set the <literal>my_ip</literal>,
|
<para>Set the <option>my_ip</option>,
|
||||||
<literal>vncserver_listen</literal>, and
|
<option>vncserver_listen</option>, and
|
||||||
<literal>vncserver_proxyclient_address</literal>
|
<option>vncserver_proxyclient_address</option>
|
||||||
configuration keys to the internal IP address of the
|
configuration options to the internal IP address of the
|
||||||
controller node:</para>
|
controller node:</para>
|
||||||
|
|
||||||
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.0.10</userinput>
|
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.0.10</userinput>
|
||||||
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 192.168.0.10</userinput>
|
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 192.168.0.10</userinput>
|
||||||
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.0.10</userinput></screen>
|
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.0.10</userinput></screen>
|
||||||
<para os="ubuntu">Edit the
|
<para os="ubuntu">Edit the
|
||||||
<filename>/etc/nova/nova.conf</filename> file and add these
|
<filename>/etc/nova/nova.conf</filename> file and add these
|
||||||
lines to the <literal>[DEFAULT]</literal> section:</para>
|
lines to the <literal>[DEFAULT]</literal> section:</para>
|
||||||
<para os="debian">In Debian, the the <package>debconf</package>
|
<para os="debian">In Debian, the <package>debconf</package>
|
||||||
package automatically sets up <literal>my_ip</literal>
|
package automatically sets up <literal>my_ip</literal>
|
||||||
parameter but you must edit the
|
parameter but you must edit the
|
||||||
<filename>/etc/nova/nova.conf</filename> file to configure
|
<filename>/etc/nova/nova.conf</filename> file to configure
|
||||||
@ -129,7 +118,6 @@ vncserver_proxyclient_address=192.168.0.10</programlisting>
|
|||||||
authenticate with the Identity Service. Use the
|
authenticate with the Identity Service. Use the
|
||||||
<literal>service</literal> tenant and give the user the
|
<literal>service</literal> tenant and give the user the
|
||||||
<literal>admin</literal> role:</para>
|
<literal>admin</literal> role:</para>
|
||||||
|
|
||||||
<screen><prompt>#</prompt> <userinput>keystone user-create --name=nova --pass=<replaceable>NOVA_PASS</replaceable> --email=<replaceable>nova@example.com</replaceable></userinput>
|
<screen><prompt>#</prompt> <userinput>keystone user-create --name=nova --pass=<replaceable>NOVA_PASS</replaceable> --email=<replaceable>nova@example.com</replaceable></userinput>
|
||||||
<prompt>#</prompt> <userinput>keystone user-role-add --user=nova --tenant=service --role=admin</userinput></screen>
|
<prompt>#</prompt> <userinput>keystone user-role-add --user=nova --tenant=service --role=admin</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
@ -150,16 +138,16 @@ vncserver_proxyclient_address=192.168.0.10</programlisting>
|
|||||||
...
|
...
|
||||||
auth_strategy=keystone</programlisting>
|
auth_strategy=keystone</programlisting>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Add the credentials to the
|
<para>Add the credentials to the
|
||||||
<filename>/etc/nova/api-paste.ini</filename> file. Add these
|
<filename>/etc/nova/api-paste.ini</filename> file. Add these
|
||||||
options to the <literal>[filter:authtoken]</literal>
|
options to the <literal>[filter:authtoken]</literal>
|
||||||
section:</para>
|
section:</para>
|
||||||
<note><title>Use of .ini files</title>
|
<note>
|
||||||
<para>Files with the extension <filename>.ini</filename>
|
<title>Use of .ini files</title>
|
||||||
sometimes need to be edited during initial setup. However,
|
<para>You might sometimes have to edit <filename>.ini</filename> files
|
||||||
they should not be used for general configuration tasks.</para>
|
during initial setup. However,
|
||||||
|
do not edit these files for general configuration tasks.</para>
|
||||||
</note>
|
</note>
|
||||||
<programlisting language="ini">[filter:authtoken]
|
<programlisting language="ini">[filter:authtoken]
|
||||||
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
|
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
|
||||||
@ -178,7 +166,6 @@ admin_password=<replaceable>NOVA_PASS</replaceable></programlisting>
|
|||||||
</note>
|
</note>
|
||||||
</step>
|
</step>
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
|
|
||||||
<para>You must register Compute with the Identity Service so
|
<para>You must register Compute with the Identity Service so
|
||||||
that other OpenStack services can locate it. Register the
|
that other OpenStack services can locate it. Register the
|
||||||
service and specify the endpoint:</para>
|
service and specify the endpoint:</para>
|
||||||
@ -186,7 +173,6 @@ admin_password=<replaceable>NOVA_PASS</replaceable></programlisting>
|
|||||||
<screen><prompt>#</prompt> <userinput>keystone service-create --name=nova --type=compute \
|
<screen><prompt>#</prompt> <userinput>keystone service-create --name=nova --type=compute \
|
||||||
--description="Nova Compute service"</userinput></screen>
|
--description="Nova Compute service"</userinput></screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
|
||||||
<para>Use the <literal>id</literal> property that is returned to
|
<para>Use the <literal>id</literal> property that is returned to
|
||||||
create the endpoint.</para>
|
create the endpoint.</para>
|
||||||
@ -195,18 +181,15 @@ admin_password=<replaceable>NOVA_PASS</replaceable></programlisting>
|
|||||||
--publicurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s \
|
--publicurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s \
|
||||||
--internalurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s \
|
--internalurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s \
|
||||||
--adminurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s</userinput></screen>
|
--adminurl=http://<replaceable>controller</replaceable>:8774/v2/%\(tenant_id\)s</userinput></screen>
|
||||||
|
|
||||||
</step>
|
</step>
|
||||||
<step os="fedora;rhel;centos">
|
<step os="fedora;rhel;centos">
|
||||||
<para>Set these configuration keys to configure Compute to use
|
<para>Set these configuration keys to configure Compute to use
|
||||||
the Qpid message broker:</para>
|
the Qpid message broker:</para>
|
||||||
|
|
||||||
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
|
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
|
||||||
DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid</userinput>
|
DEFAULT rpc_backend nova.openstack.common.rpc.impl_qpid</userinput>
|
||||||
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname <replaceable>controller</replaceable></userinput>
|
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname <replaceable>controller</replaceable></userinput>
|
||||||
</screen>
|
</screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step os="ubuntu">
|
<step os="ubuntu">
|
||||||
<para>Set these configuration keys to configure Compute to use
|
<para>Set these configuration keys to configure Compute to use
|
||||||
the RabbitMQ message broker. Add them to the
|
the RabbitMQ message broker. Add them to the
|
||||||
@ -251,7 +234,6 @@ rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
|
|||||||
<step>
|
<step>
|
||||||
<para>To verify your configuration, list available
|
<para>To verify your configuration, list available
|
||||||
images:</para>
|
images:</para>
|
||||||
|
|
||||||
<screen><prompt>#</prompt> <userinput>nova image-list</userinput>
|
<screen><prompt>#</prompt> <userinput>nova image-list</userinput>
|
||||||
<computeroutput>+--------------------------------------+-----------------+--------+--------+
|
<computeroutput>+--------------------------------------+-----------------+--------+--------+
|
||||||
| ID | Name | Status | Server |
|
| ID | Name | Status | Server |
|
||||||
|
Loading…
Reference in New Issue
Block a user