Revise End User Guide to make style consistent for procedures

bug: #1214054

Change-Id: I5380b5342fbb82593fc0931d09e66518dcb4e904
author: diane fleming
This commit is contained in:
Diane Fleming 2013-08-19 15:46:24 -05:00
parent d99f9c634e
commit 4bdd9635de
97 changed files with 3247 additions and 6558 deletions

View File

@ -15,7 +15,7 @@
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.9.2</version>
<version>1.9.2</version>
<executions>
<execution>
<id>generate-webhelp</id>

View File

@ -9,6 +9,6 @@
<title>cinder command-line client</title>
<para>Learn how to use nova and cinder commands to create and
manage volumes.</para>
<xi:include href="../../openstack-user/src/section_cli_manage_volumes.xml"/>
<xi:include href="../../common/section_cinder_cli_commands.xml"/>
<xi:include href="../../openstack-user/src/section_cinder_cli_manage_volumes.xml"/>
<xi:include href="../../openstack-user/src/section_cinder_cli_commands.xml"/>
</chapter>

View File

@ -11,5 +11,5 @@
<xi:include
href="../../common/section_glance_cli_manage_images.xml"/>
<xi:include
href="../../common/section_glance_cli_commands.xml"/>
href="../../openstack-user/src/section_glance_cli_commands.xml"/>
</chapter>

View File

@ -10,6 +10,6 @@
<para>Learn how to use the heat client. This service orchestrates multiple
composite cloud applications using a REST API that emulates the AWS CloudFormation
API.</para>
<xi:include href="../../openstack-user/src/section_cli_heat.xml"/>
<xi:include href="../../common/section_heat_cli_commands.xml"/>
<xi:include href="../../openstack-user/src/section_heat_cli.xml"/>
<xi:include href="../../openstack-user/src/section_heat_cli_commands.xml"/>
</chapter>

View File

@ -9,5 +9,5 @@
<title>keystone command-line client</title>
<para>Learn how to use the keystone client.</para>
<xi:include
href="../../common/section_keystone_cli_commands.xml"/>
href="../../openstack-user/src/section_keystone_cli_commands.xml"/>
</chapter>

View File

@ -246,6 +246,6 @@ CSV Formatter:
<xi:include
href="../../common/section_neutron_cli_manage_networks.xml"/>
<xi:include
href="../../common/section_neutron_cli_commands.xml"/>
href="../../openstack-user/src/section_neutron_cli_commands.xml"/>
</chapter>

View File

@ -8,9 +8,9 @@
<title>nova command-line client</title>
<para>Learn how to use the nova command-line
client.</para>
<xi:include href="../../openstack-user/src/section_cli_configure_instances.xml"/>
<xi:include href="../../openstack-user/src/section_nova_cli_configure_instances.xml"/>
<xi:include href="../../common/section_nova_cli_boot.xml"/>
<!-- <xi:include href="../../common/section_nova_cli_userdata.xml"/> -->
<xi:include href="../../openstack-user/src/section_cli_manage_instances.xml"/>
<xi:include href="../../common/section_nova_cli_commands.xml"/>
<xi:include href="../../openstack-user/src/section_nova_cli_manage_instances.xml"/>
<xi:include href="../../openstack-user/src/section_nova_cli_commands.xml"/>
</chapter>

View File

@ -8,5 +8,5 @@
<?dbhtml stop-chunking?>
<title>swift command-line client</title>
<para>Learn how to use the swift client.</para>
<xi:include href="../../common/section_swift_cli_commands.xml"/>
<xi:include href="../../openstack-user/src/section_swift_cli_commands.xml"/>
</chapter>

View File

@ -13,21 +13,27 @@
<appendix xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="nova_summary">
xml:id="nova_summary" label="A">
<title>Command reference</title>
<xi:include
href="section_keystone_cli_commands.xml"/>
<?hard page-break?>
<xi:include href="section_glance_cli_commands.xml"/>
href="../openstack-user/src/section_keystone_cli_commands.xml"/>
<?hard page-break?>
<xi:include
href="section_neutron_cli_commands.xml"/>
href="../openstack-user/src/section_glance_cli_commands.xml"/>
<?hard page-break?>
<xi:include href="section_nova_cli_commands.xml"/>
<xi:include
href="../openstack-user/src/section_neutron_cli_commands.xml"/>
<?hard page-break?>
<xi:include href="section_cinder_cli_commands.xml"/>
<xi:include
href="../openstack-user/src/section_nova_cli_commands.xml"/>
<?hard page-break?>
<xi:include href="section_swift_cli_commands.xml"/>
<xi:include
href="../openstack-user/src/section_cinder_cli_commands.xml"/>
<?hard page-break?>
<xi:include href="section_heat_cli_commands.xml"/>
<xi:include
href="../openstack-user/src/section_swift_cli_commands.xml"/>
<?hard page-break?>
<xi:include
href="../openstack-user/src/section_heat_cli_commands.xml"
/>
</appendix>

View File

@ -6,13 +6,75 @@
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="resources">
xml:id="resources" label="">
<title>Resources</title>
<para>For the available OpenStack documentation, see <link
xlink:href="http://docs.openstack.org"
>docs.openstack.org</link>.</para>
<db:para>For assistance with OpenStack, go to <link xlink:href="ask.openstack.org">ask.openstack.org</link>.</db:para>
<!-- <para>For the Rackspace SDKs, see the <link
<para>The following books are of interest to
administrators:</para>
<itemizedlist>
<listitem>
<para>
<link
xlink:href="http://docs.openstack.org/grizzly/openstack-block-storage/admin/content/"
><citetitle>Block Storage Service
Administration
Guide</citetitle></link>
</para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/grizzly/openstack-compute/admin/content/"
><citetitle>Compute Administration
Guide</citetitle></link>
</para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/trunk/openstack-ha/content/index.html"
><citetitle>High Availability
Guide</citetitle></link></para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/grizzly/openstack-network/admin/content/"
><citetitle>Networking
Administration
Guide</citetitle></link>
</para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/grizzly/openstack-object-storage/admin/content/"
><citetitle>Object Storage
Administration
Guide</citetitle></link>
</para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/ops/"
><citetitle>Operations
Guide</citetitle></link></para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/sec/"
><citetitle>Security
Guide</citetitle></link></para>
</listitem>
<listitem>
<para><link
xlink:href="http://docs.openstack.org/trunk/openstack-image/content/"
><citetitle>Virtual Machine Image
Guide</citetitle></link></para>
</listitem>
</itemizedlist>
<para>For assistance with OpenStack, go to <link
xlink:href="ask.openstack.org"
>ask.openstack.org</link>.</para>
<!-- <para>For the Rackspace SDKs, see the <link
xlink:href="http://developer.rackspace.com"
>Rackspace Developer Center</link>.</para> -->
<para>To provide feedback on documentation, join and use the

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="access_and_security">
<title>Set up access and security</title>
<para>Before you launch a virtual machine, you can add security
group rules to enable users to ping and SSH to the instances.
To do so, you either add rules to the default security group
or add a security group with rules.</para>
<para>A security group is a named collection of network access
rules that you use to limit the types of traffic that have
access to instances. When you launch an instance, you can
assign it to one or more security groups. The associated rules
in each security group control the traffic to instances in the
group. Any incoming traffic that is not matched by a rule is
denied access by default. You can add rules to or remove rules from a
security group. Rules are automatically enforced as soon as
you create or modify them.</para>
<para>Keypairs are SSH credentials that are injected into images
when they are launched. For this to work, the image must
contain the <literal>cloud-init</literal> package.</para>
<!-- <xi:include href="nova_cli_secgroups.xml"/>
<xi:include href="nova_cli_sshkeys.xml"/>
<xi:include href="nova_cli_floatingip.xml"/> -->
<xi:include href="../openstack-user/src/section_cli_configure_instances.xml"/>
</section>

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="concepts" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0">
<title>OpenStack concepts</title>
<para xml:id="instances">Instances are virtual machines that run inside the
cloud.</para>
<para xml:id="launch_instances">You can launch an instance directly from one of the
available OpenStack images or from an image that you have
copied to a persistent volume. The OpenStack Image Service
provides a pool of images that are accessible to members of
different projects.</para>
</section>

View File

@ -27,5 +27,5 @@
| 9c554aaef7804ba49e1b21cbd97d218a | services | True |
+----------------------------------+----------+---------+</computeroutput></screen>
</para></note>
<xi:include href="../openstack-admin-user/src/section_cli_set_compute_quotas.xml"/>
<xi:include href="../openstack-user-admin/src/section_cli_set_compute_quotas.xml"/>
</section>

View File

@ -9,173 +9,104 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:raxm="http://docs.rackspace.com/api/metadata" version="5.0"
xml:id="section_dashboard_overview">
<info>
<title>Overview</title>
</info>
<?dbhtml stop-chunking?>
<para>The following requirements must be fulfilled to access the
OpenStack dashboard:</para>
<itemizedlist>
<listitem>
<para>The cloud operator has set up an OpenStack
cloud.</para>
</listitem>
<listitem>
<para>You have a recent Web browser that supports HTML5.
It must have cookies and JavaScript enabled. To use
the VNC client for the dashboard, which is based on
noVNC, your browser must support HTML5 Canvas and
HTML5 WebSockets. For more details and a list of
browsers that support noVNC, see <link
xlink:href="https://github.com/kanaka/noVNC/blob/master/README.md"
>https://github.com/kanaka/noVNC/blob/master/README.md</link>,
and <link
xlink:href="https://github.com/kanaka/noVNC/wiki/Browser-support"
>https://github.com/kanaka/noVNC/wiki/Browser-support</link>,
respectively.</para>
</listitem>
</itemizedlist>
<para>Learn how to log in to the dashboard and get a short
overview of the interface.</para>
<section xml:id="log_in_dashboard">
<title>Log in to the dashboard</title>
<procedure>
<title>To log in to the dashboard</title>
<step>
<para>Ask your cloud operator for the following
information:</para>
<itemizedlist>
<listitem>
<para>The host name or public IP address from
which you can access the dashboard.</para>
<para>The dashboard is available on the node
that has the
<literal>nova-dashboard</literal>
server role.</para>
</listitem>
<listitem>
<para>The user name and password with which
you can log in to the dashboard.</para>
</listitem>
</itemizedlist>
</step>
<step>
<para>Open a Web browser that supports HTML5. Make
sure that JavaScript and cookies are
enabled.</para>
</step>
<step>
<para>As a URL, enter the host name or IP address that
you got from the cloud operator.</para>
<literallayout>https://<replaceable>IP_ADDRESS_OR_HOSTNAME</replaceable>/</literallayout>
<note>
<title>Certificate Warning</title>
<para>You might get a certificate warning when you
try to access the URL for the first time
depending on your browser and browser options.
In case no certificate is provided when the
cloud operator sets up the dashboard, the
OpenStack cloud uses a self-signed certificate
that is not considered trustworthy by default.
In this case, verify the certificate. To
proceed anyway, you can add an exception in
the browser to bypass the warning.</para>
</note>
</step>
<step>
<para>On the dashboard log in page, enter your user
name and password and click <guibutton>Sign
In</guibutton>.</para>
</step>
</procedure>
<para>After you log in, the following page appears:</para>
<figure os="enduser" xml:id="dashboard_main_page_user">
<title>OpenStack dashboard &ndash; Overview</title>
xml:id="log_in_dashboard">
<title>Log in to the dashboard</title>
<?dbhtml-stop-chunking?>
<para>The dashboard is available on the node with the
<literal>nova-dashboard</literal> server role.</para>
<procedure>
<step>
<para>Ask the cloud operator for the host name or public
IP address from which you can access the dashboard,
and your user name and password.</para>
</step>
<step>
<para>Open a Web browser. Make sure that JavaScript and
cookies are enabled.</para>
<note>
<para>To use the Virtual Network Computing (VNC)
client for the dashboard, your browser must
support HTML5 Canvas and HTML5 WebSockets. The VNC
client is based on noVNC. For details, see <link
xlink:href="https://github.com/kanaka/noVNC/blob/master/README.md"
>noVNC: HTML5 VNC Client</link>. For a list of
supported browsers, see <link
xlink:href="https://github.com/kanaka/noVNC/wiki/Browser-support"
xlink:show="embed">Browser
support</link>.</para>
</note>
</step>
<step>
<para>In the address bar, type the host name or IP address
that you got from the cloud operator:</para>
<screen><userinput>https://<replaceable>IP_ADDRESS_OR_HOSTNAME</replaceable>/</userinput></screen>
<note>
<title>Certificate Warning</title>
<para>If a certificate warning appears when you try to
access the URL for the first time, a self-signed
certificate is in use, which is not considered
trustworthy by default. Verify the certificate or
add an exception in the browser to bypass the
warning.</para>
</note>
</step>
<step>
<para>On the <guilabel>Log In</guilabel> page, enter your
user name and password, and click <guibutton>Sign
In</guibutton>.</para>
<para>The top-level row shows your user name. You can also
access <guilabel>Settings</guilabel> or sign out of
the dashboard.</para>
<para>The visible tabs and functions in the dashboard
depend on the access permissions, or <emphasis
role="italic">roles</emphasis>, of the user you
are logged in as.</para>
<para>If you are logged in as an end user, the main screen
shows the <link linkend="dashboard_project_tab"
>Project</link> tab.</para>
<para>If you are logged in as an administrator, the main
screen shows the <link linkend="dashboard_project_tab"
>Project</link> tab and <link
linkend="dashboard_admin_tab">Admin</link>
tab.</para>
</step>
</procedure>
<section xml:id="dashboard_project_tab">
<title>OpenStack dashboard&mdash;Project tab</title>
<para>Select a project from the drop-down list on the left
side to view and perform tasks for resources created by
users of that project. The <guilabel>Project</guilabel>
tab displays the details of the projects to which you
belong.</para>
<informalfigure xml:id="dashboard_project_user">
<mediaobject>
<imageobject>
<imagedata fileref="figures/dashboard-project.png"
format="PNG" contentwidth="6in" width="6in"/>
</imageobject>
</mediaobject>
</figure>
<figure os="adminuser" xml:id="dashboard_main_page_admin">
<title>OpenStack dashboard &ndash; Overview</title>
<mediaobject>
<imageobject>
<imagedata
fileref="figures/dashboard_admin_overview.png"
format="PNG" contentwidth="6in" width="6in"/>
</imageobject>
</mediaobject>
</figure>
<para>The top-level row shows the user name that you logged in
with. You can also access <guilabel>Settings</guilabel> or
<guibutton>Sign Out</guibutton> of the Web
interface.</para>
<note>
<para>The visible tabs and functions in the dashboard
depend on the access permissions of the user that is
logged in. They are defined by roles.</para>
</note>
<para os="enduser">If you are logged in as an end user rather
than an admin user, the main screen shows only the
<guilabel>Project</guilabel> tab.</para>
<para os="adminuser">If you are logged in as an administrator,
the main screen shows the <guilabel>Project</guilabel> and
<guilabel>Admin</guilabel> tabs.</para>
</section>
<section xml:id="dashboard_project_tab">
<title>OpenStack dashboard &ndash; Project tab</title>
<para>This tab shows details for the projects, or projects, of
which you are a member. <figure os="enduser"
xml:id="dashboard_project_user">
<title>OpenStack dashboard &ndash; Project tab</title>
<mediaobject>
<imageobject>
<imagedata
fileref="figures/dashboard-project.png"
format="PNG" contentwidth="6in"
width="6in"/>
</imageobject>
</mediaobject>
</figure>
<figure os="adminuser" xml:id="dashboard_project_admin">
<title>OpenStack dashboard &ndash; Project tab</title>
<mediaobject>
<imageobject>
<imagedata
fileref="figures/dashboard_admin_project_tab.png"
format="PNG" contentwidth="6in"
width="6in"/>
</imageobject>
</mediaobject>
</figure></para>
<para>Select a project from the drop-down list on the
left-hand side to access the following categories:</para>
<variablelist wordsize="10">
</informalfigure>
<para>Then, access the following categories to perform the
following tasks:</para>
<variablelist>
<varlistentry>
<term><guilabel>Overview</guilabel></term>
<listitem>
<para>Shows basic reports on the project.</para>
<para>View reports for the project.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Instances</guilabel></term>
<listitem>
<para>Lists instances and volumes created by users
of the project.</para>
<para>From here, you can stop, pause, or reboot
any instances or connect to them through
virtual network computing (VNC).</para>
<para>View, launch, create a snapshot from, stop,
pause, or reboot instances, or connect to them
through VNC.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Volumes</guilabel></term>
<listitem>
<para>Lists volumes created by users of the
project.</para>
<para>From here, you can create or delete
<para>View, create, edit, and delete
volumes.</para>
</listitem>
</varlistentry>
@ -183,40 +114,49 @@
<term><guilabel>Images &amp;
Snapshots</guilabel></term>
<listitem>
<para>Lists images and snapshots created by users
of the project, plus any images that are
publicly available. Includes volume snapshots.
From here, you can create and delete images
and snapshots, and launch instances from
images and snapshots.</para>
<para>View images, instance snapshots, and volume
snapshots created by users of the project,
plus any images that are publicly available.
Create, edit, and delete images, and launch
instances from images and snapshots.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Access &amp;
Security</guilabel></term>
<listitem>
<para>On the <guilabel>Security Groups</guilabel>
tab, you can list, create, and delete security
groups and edit rules for security
groups.</para>
<para>On the <guilabel>Keypairs</guilabel> tab,
you can list, create, and import keypairs, and
delete keypairs.</para>
<para>On the <guilabel>Floating IPs</guilabel>
tab, you can allocate an IP address to or
release it from a project.</para>
<para>On the <guilabel>API Access</guilabel> tab,
you can list the API endpoints.</para>
<itemizedlist>
<listitem>
<para><guilabel>Security Groups</guilabel>
tab. View, create, edit, and delete
security groups and security group
rules.</para>
</listitem>
<listitem>
<para><guilabel>Keypairs</guilabel> tab.
View, create, edit, and import
keypairs, and delete keypairs.</para>
</listitem>
<listitem>
<para><guilabel>Floating IPs</guilabel>
tab. Allocate an IP address to or
release it from a project.</para>
</listitem>
<listitem>
<para><guilabel>API Access</guilabel> tab.
View API endpoints.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<section os="adminuser" xml:id="dashboard_admin_tab">
<title>OpenStack dashboard &ndash; Admin tab</title>
<para>This tab shows details for the projects, or projects, of
which you are a member.</para>
<figure xml:id="dashboard_admin_project_tab">
<title>OpenStack dashboard &ndash; Admin tab</title>
<section xml:id="dashboard_admin_tab">
<title>OpenStack dashboard&mdash;Admin tab</title>
<para>Enables administrative users to view usage and manage
instances, volumes, flavors, images, projects, users,
services, and quotas.</para>
<informalfigure xml:id="dashboard_admin_project_tab">
<mediaobject>
<imageobject>
<imagedata
@ -224,67 +164,79 @@
format="PNG" contentwidth="6in" width="6in"/>
</imageobject>
</mediaobject>
</figure>
<para>On the <guilabel>Admin</guilabel> tab, you can access
the following categories:</para>
<variablelist wordsize="10">
</informalfigure>
<para>On the <guilabel>Admin</guilabel> tab, access the
following categories to perform the following
tasks:</para>
<variablelist>
<varlistentry>
<term>Overview</term>
<term><guilabel>Overview</guilabel></term>
<listitem>
<para>Shows basic reports.</para>
<para>View basic reports.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Instances</term>
<term><guilabel>Instances</guilabel></term>
<listitem>
<para>Lists all currently running instances
belonging to various users and projects. Not
all projects are visible to the administrator,
though.</para>
<para>View, pause, resume, suspend, migrate, soft
or hard reboot, and delete running instances
that belong to users of some, but not all,
projects. Also, view the log for an instance
or access an instance through VNC.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Services</term>
<term><guilabel>Volumes</guilabel></term>
<listitem>
<para>Lists the defined services.</para>
<para>View, create, edit, and delete volumes and
volume types.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Flavors</term>
<term><guilabel>Flavors</guilabel></term>
<listitem>
<para>Lists the available <quote>sizes</quote> of
the VMs that users can launch.</para>
<para>View, create, edit, view extra specs for,
and delete flavors. A flavor is size for an
instance.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Images</term>
<term><guilabel>Images</guilabel></term>
<listitem>
<para>Shows the custom images that have been
uploaded. Lets you edit image properties or
delete images, if needed.</para>
<para>View, create, edit properties for, and
delete custom images.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Project</term>
<term><guilabel>Projects</guilabel></term>
<listitem>
<para>Lists the available projects. Lets you
create projects and assign users to the
projects.</para>
<para>View, create, assign users to, remove users
from, and delete projects.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Users</term>
<term><guilabel>Users</guilabel></term>
<listitem>
<para>Gives an overview of all users.</para>
<para>View, create, enable, disable, and delete
users.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Quotas</term>
<term><guilabel>System Info</guilabel></term>
<listitem>
<para>Lists the default quota values, which are
hard-coded in OpenStack Nova. Includes
parameters such as the number of CPUs, RAM, or
instances.</para>
<itemizedlist>
<listitem>
<para><guilabel>Services</guilabel> tab.
View services.</para>
</listitem>
<listitem>
<para><guilabel>Default Quotas</guilabel>
tab. View default quota values. Quotas
are hard-coded in OpenStack Compute
and define the maximum allowable size
and number of resources.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="section_dashboad_install">
<title>Install the dashboard</title>
<?dbhtml stop-chunking?>
<para>The following instructions show an example dashboard
deployment configured with an Apache web server.</para>
<para>To install the OpenStack dashboard, complete the following
high-level steps:</para>
<orderedlist>
<listitem>
<para>Meet the system requirements for accessing the
dashboard. See <xref
linkend="dashboard-system-requirements"/>.</para>
</listitem>
<listitem>
<para>Install the OpenStack Dashboard framework, including
Apache and related modules. See <xref
linkend="installing-openstack-dashboard"/>.</para>
</listitem>
<!-- <listitem>
<para>Configure the dashboard.</para>
<para>Then, restart and run the Apache server.</para>
<para>See <xref linkend="configure-dashboard"/>.</para>
</listitem>-->
<!-- <listitem>
<para>Verify your installation. See <xref
linkend="verify-dashboard"/>.</para>
</listitem>-->
</orderedlist>
<itemizedlist>
<title>Next steps:</title>
<para>After you install the dashboard, you can complete the
following tasks:</para>
<listitem>
<para>To customize your dashboard, see <xref
linkend="dashboard-custom-brand"/>.</para>
</listitem>
<listitem>
<para>To set up session storage for the dashboard, see
<xref linkend="dashboard-sessions"/>.</para>
</listitem>
<listitem>
<para>To deploy the dashboard, see <link
xlink:href="http://docs.openstack.org/developer/horizon/topics/deployment.html"
>Deploying Horizon</link>.</para>
</listitem>
</itemizedlist>
<xi:include href="section_dashboard-system-reqs.xml"/>
<xi:include href="section_dashboard-install.xml"/>
<!-- <xi:include href="section_dashboard-configure.xml"/>-->
<!-- <xi:include href="section_dashboard-verify.xml"/>-->
<xi:include href="section_dashboard_customizing.xml"/>
<xi:include href="section_dashboard_sessions.xml"/>
</section>

View File

@ -4,17 +4,17 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="dashboard_manage_images">
<title>Upload images</title>
<para>The cloud operator sets user permissions to upload and manage
images. Image upload and management might be restricted to only
cloud administrators or cloud operators. If the administrator or
cloud operator has granted you permission, you can upload and
manage images. For details about image creation, see the <link
<para>The cloud operator assigns roles to users, which determines
who can upload and manage images. Image upload and management
might be restricted to only cloud administrators or cloud
operators. If the administrator or cloud operator has granted you
permission, you can upload and manage images. You can also use the
glance and nova clients or the Image Service and Compute APIs to
manage images. See <xref linkend="cli_manage_images"/>. For
details about image creation, see the <link
xlink:href="http://docs.openstack.org/trunk/openstack-image/content/"
><citetitle>Virtual Machine Image
Guide</citetitle></link>.</para>
<para>You can also manage images through the glance and nova clients
or the Image Service and Compute APIs. See <xref
linkend="cli_manage_images"/>.</para>
<procedure>
<step>
<para>Log in to the OpenStack dashboard, choose a project, and
@ -22,24 +22,23 @@
category.</para>
</step>
<step>
<para>Click <guibutton>Create Image</guibutton>.</para>
<para>The dashboard shows the <guilabel>Create An
Image</guilabel> window.</para>
<para>Click <guibutton>Create Image</guibutton>. The
<guilabel>Create An Image</guilabel> window appears:</para>
<informalfigure>
<!--<title>OpenStack Dashboard: Create An Image</title>-->
<mediaobject>
<imageobject>
<imagedata fileref="figures/user_image_create.png"
format="PNG" contentwidth="4in"/>
format="PNG" width="4in" contentwidth="4in"/>
</imageobject>
</mediaobject>
</informalfigure>
</step>
<step>
<para>Enter the following values:</para>
<informaltable rules="all" width="75%">
<col width="20%"/>
<col width="80%"/>
<step>
<para>In the <guilabel>Create An Image</guilabel> window, enter
or select the following values:</para>
<informaltable rules="all">
<col width="25%"/>
<col width="75%"/>
<tbody>
<tr>
<td><para><guilabel>Name</guilabel></para></td>
@ -84,9 +83,8 @@
</step>
<step>
<para>Click <guibutton>Create Image</guibutton>.</para>
<para>The image is placed in a queue to be uploaded. It might
take some time before the status changes from queued to
active.</para>
<para>The image is queued to be uploaded. It might take some
time before the status changes from queued to active.</para>
</step>
</procedure>
</section>

View File

@ -5,30 +5,26 @@
xml:id="cli_manage_images">
<title>Manage images</title>
<?dbhtml stop-chunking?>
<para>During set up of OpenStack cloud, the cloud operator sets
user permissions to manage images.</para>
<para>Image upload and management might be restricted to only
cloud administrators or cloud operators.</para>
<para>After you upload an image, it is considered <emphasis
role="italic">golden</emphasis> and you cannot change
it.</para>
<para>The cloud operator assigns roles to users. Roles determine
who can upload and manage images. The operator might restrict
image upload and management to only cloud administrators or
operators.</para>
<para>You can upload images through the glance client or the Image
Service API. You can also use the nova client to list images,
set and delete image metadata, delete images, and take a
snapshot of a running instance to create an image. See <xref
linkend="nova_manage_images"/>.</para>
snapshot of a running instance to create an image. After you
upload an image, you cannot change it.</para>
<para>For details about image creation, see the <link
xlink:href="http://docs.openstack.org/trunk/openstack-image/content/"
><citetitle>Virtual Machine Image
Guide</citetitle></link>.</para>
<section xml:id="glance-image-list">
<title>Manage images with the glance client</title>
<title>List or get details for images (glance)</title>
<procedure>
<title>To list or get details for images</title>
<step>
<para>To list the available images:</para>
<screen><prompt>$</prompt> <userinput>glance image-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+
<screen><?db-font-size 45%?><computeroutput>+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |
@ -36,16 +32,17 @@
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |
| 7e5142af-1253-4634-bcc6-89482c5f2e8a | myCirrosImage | ami | ami | 14221312 | active |
+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+</computeroutput></screen>
<para>You can use grep to filter the list, as follows:</para>
<para>You can use grep to filter the list, as
follows:</para>
<screen><prompt>$</prompt> <userinput>glance image-list | grep 'cirros'</userinput></screen>
<screen><computeroutput>| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |
<screen><?db-font-size 45%?><computeroutput>| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |
| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | aki | aki | 4955792 | active |
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |</computeroutput></screen>
</step>
<step>
<para>To get image details, by name or ID:</para>
<screen><prompt>$</prompt> <userinput>glance image-show myCirrosImage</userinput></screen>
<screen><computeroutput>+---------------------------------------+--------------------------------------+
<screen><?db-font-size 45%?><computeroutput>+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| Property 'base_image_ref' | 397e713c-b95b-4186-ad46-6126863ea0a9 |
@ -85,196 +82,246 @@
+---------------------------------------+--------------------------------------+</computeroutput></screen>
</step>
</procedure>
</section>
<section xml:id="glance_add_image">
<title>Create or update an image (glance)</title>
<procedure>
<title>To add an image</title>
<step>
<para>The following example uploads a CentOS 6.3 image
in qcow2 format and configures it for public
access:</para>
<screen><prompt>$</prompt> <userinput>glance image-create --name centos63-image --disk-format=qcow2 --container-format=bare --is-public=True ./centos63.qcow2</userinput></screen>
<para>To upload a CentOS 6.3 image in qcow2 format and
configure it for public access:</para>
<screen><prompt>$</prompt> <userinput>glance image-create --name centos63-image --disk-format=qcow2 \
--container-format=bare --is-public=True ./centos63.qcow2</userinput></screen>
</step>
</procedure>
<procedure>
<title>To update an image</title>
<step>
<para>To update an image by name or ID:</para>
<para><screen><prompt>$</prompt> <userinput>glance image-update <replaceable>IMAGE</replaceable></userinput></screen></para>
<para>To modify image properties, use the following
optional arguments:</para>
<itemizedlist>
<listitem>
<para><parameter>--name
<replaceable>NAME</replaceable></parameter>.
The name of the image.</para>
</listitem>
<listitem>
<para><parameter>--disk-format
<replaceable>DISK_FORMAT</replaceable></parameter>.
The disk format of the image. Acceptable
formats are ami, ari, aki, vhd, vmdk, raw,
qcow2, vdi, and iso.</para>
</listitem>
<listitem>
<para><parameter>--container-format
<replaceable>CONTAINER_FORMAT</replaceable></parameter>.
The container format of the image.
Acceptable formats are ami, ari, aki,
bare, and ovf.</para>
</listitem>
<listitem>
<para><parameter>--owner
<replaceable>TENANT_ID</replaceable></parameter>.
The tenant who should own the
image.</para>
</listitem>
<listitem>
<para><parameter>--size
<replaceable>SIZE</replaceable></parameter>.
The size of image data, in bytes.</para>
</listitem>
<listitem>
<para><parameter>--min-disk
<replaceable>DISK_GB</replaceable></parameter>.
The minimum size of disk needed to boot
image, in gigabytes.</para>
</listitem>
<listitem>
<para><parameter>--min-ram
<replaceable>DISK_RAM</replaceable></parameter>.
The minimum amount of ram needed to boot
image, in megabytes.</para>
</listitem>
<listitem>
<para><parameter>--location
<replaceable>IMAGE_URL</replaceable></parameter>.
The URL where the data for this image
resides. For example, if the image data is
stored in swift, you could specify
<literal>swift://account:key@example.com/container/obj</literal>.</para>
</listitem>
<listitem>
<para><parameter>--file
<replaceable>FILE</replaceable></parameter>.
Local file that contains disk image to be
uploaded during update. Alternatively, you
can pass images to the client through
stdin.</para>
</listitem>
<listitem>
<para><parameter>--checksum
<replaceable>CHECKSUM</replaceable></parameter>.
Hash of image data to use for
verification.</para>
</listitem>
<listitem>
<para><parameter>--copy-from
<replaceable>IMAGE_URL</replaceable></parameter>.
Similar to
<parameter>--location</parameter> in
usage, but indicates that the Glance
server should immediately copy the data
and store it in its configured image
store.</para>
</listitem>
<listitem>
<para><parameter>--is-public
[True|False]</parameter>. Makes an
image accessible to the public.</para>
</listitem>
<listitem>
<para><parameter>--is-protected
[True|False]</parameter>. Prevents an
image from being deleted.</para>
</listitem>
<listitem>
<para><parameter>--property
<replaceable>KEY</replaceable>=<replaceable>VALUE</replaceable></parameter>.
Arbitrary property to associate with
image. Can be used multiple times.</para>
</listitem>
<listitem>
<para><parameter>--purge-props</parameter>.
Deletes all image properties that are not
explicitly set in the update request.
Otherwise, those properties not referenced
are preserved.</para>
</listitem>
<listitem>
<para><parameter>--human-readable</parameter>.
Prints image size in a human-friendly
format.</para>
</listitem>
</itemizedlist>
<informaltable>
<col width="40%"/>
<col width="60%"/>
<tr>
<td><para><parameter>--name
<replaceable>NAME</replaceable></parameter></para></td>
<td><para>The name of the image.</para>
</td>
</tr>
<tr>
<td><para><parameter>--disk-format
<replaceable>DISK_FORMAT</replaceable></parameter></para></td>
<td><para>The disk format of the image.
Acceptable formats are ami, ari, aki,
vhd, vmdk, raw, qcow2, vdi, and
iso.</para>
</td>
</tr>
<tr>
<td><para><parameter>--container-format
<replaceable>CONTAINER_FORMAT</replaceable></parameter></para></td>
<td><para>The container format of the image.
Acceptable formats are ami, ari, aki,
bare, and ovf.</para>
</td>
</tr>
<tr>
<td><para><parameter>--owner
<replaceable>TENANT_ID</replaceable></parameter></para></td>
<td><para>The tenant who should own the
image.</para>
</td>
</tr>
<tr>
<td><para><parameter>--size
<replaceable>SIZE</replaceable></parameter></para></td>
<td><para>The size of image data, in
bytes.</para>
</td>
</tr>
<tr>
<td><para><parameter>--min-disk
<replaceable>DISK_GB</replaceable></parameter></para></td>
<td><para>The minimum size of disk needed to
boot image, in gigabytes.</para>
</td>
</tr>
<tr>
<td><para><parameter>--min-ram
<replaceable>DISK_RAM</replaceable></parameter></para></td>
<td><para>The minimum amount of ram needed to
boot image, in megabytes.</para>
</td>
</tr>
<tr>
<td><para><parameter>--location
<replaceable>IMAGE_URL</replaceable></parameter></para></td>
<td><para>The URL where the data for this
image resides. For example, if the
image data is stored in swift, you
could specify
<literal>swift://account:key@example.com/container/obj</literal>.</para>
</td>
</tr>
<tr>
<td><para><parameter>--file
<replaceable>FILE</replaceable></parameter></para></td>
<td><para>Local file that contains disk image
to be uploaded during update.
Alternatively, you can pass images to
the client through stdin.</para>
</td>
</tr>
<tr>
<td><para><parameter>--checksum
<replaceable>CHECKSUM</replaceable></parameter></para></td>
<td><para>Hash of image data to use for
verification.</para>
</td>
</tr>
<tr>
<td><para><parameter>--copy-from
<replaceable>IMAGE_URL</replaceable></parameter></para></td>
<td><para>Similar to
<parameter>--location</parameter>
in usage, but indicates that the
Glance server should immediately copy
the data and store it in its
configured image store.</para>
</td>
</tr>
<tr>
<td><para><parameter>--is-public
[True|False]</parameter></para></td>
<td><para>Makes an image accessible to the
public.</para>
</td>
</tr>
<tr>
<td><para><parameter>--is-protected
[True|False]</parameter></para></td>
<td><para>Prevents an image from being
deleted.</para>
</td>
</tr>
<tr>
<td><para><parameter>--property
<replaceable>KEY</replaceable>=<replaceable>VALUE</replaceable></parameter></para></td>
<td><para>Arbitrary property to associate with
image. Can be used multiple
times.</para>
</td>
</tr>
<tr>
<td><para><parameter>--purge-props</parameter></para></td>
<td><para>Deletes all image properties that
are not explicitly set in the update
request. Otherwise, those properties
not referenced are preserved.</para>
</td>
</tr>
<tr>
<td><para><parameter>--human-readable</parameter></para></td>
<td><para>Prints image size in a
human-friendly format.</para>
</td>
</tr>
</informaltable>
</step>
<step>
<para>To annotate an image with a property that
describes the required VIF model:</para>
<screen><prompt>$</prompt> <userinput>glance image-update --property hw_vif_model=e1000 f16-x86_64-openstack-sda</userinput></screen>
<screen><prompt>$</prompt> <userinput>glance image-update \
--property hw_vif_model=e1000 f16-x86_64-openstack-sda</userinput></screen>
<para>If you specify a VIF model that is not
supported, the instance fails to launch. The
following table shows the valid model values,
which depend on the
<literal>libvirt_type</literal>
setting:</para>
<informaltable rules="all">
<thead>
<tr>
<th>libvirt_type setting</th>
<th>Supported model values</th>
</tr>
</thead>
<tbody>
<tr>
<td>qemu or kvm</td>
<td>
<para>
<itemizedlist>
<listitem>
<para>virtio</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</para>
</td>
</tr>
<tr>
<td>xen</td>
<td>
<itemizedlist>
<listitem>
<para>netfront</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</informaltable>
supported, the instance fails to launch. See <xref
linkend="vif_models"/>.</para>
</step>
</procedure>
<?hard-pagebreak?>
<para>The valid model values depend on the
<literal>libvirt_type</literal> setting, as shown in
the following table:</para>
<table xml:id="vif_models" rules="all" width="50%">
<caption>VIF model values</caption>
<col width="40%"/>
<col width="60%"/>
<thead>
<tr>
<th>libvirt_type setting</th>
<th>Supported model values</th>
</tr>
</thead>
<tbody>
<tr>
<td>qemu or kvm</td>
<td>
<para>
<itemizedlist>
<listitem>
<para>virtio</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</para>
</td>
</tr>
<tr>
<td>xen</td>
<td>
<itemizedlist>
<listitem>
<para>netfront</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</table>
</section>
<xi:include href="section_nova_cli_manage_images.xml"/>
<section xml:id="troubleshoot">
<title>Troubleshoot image creation</title>
<itemizedlist>
<listitem>
<para>You cannot create a snapshot from an instance
that has an attached volume. Detach the volume,
create the image, and re-mount the volume.</para>
</listitem>
<listitem>
<para>Make sure the version of qemu you are using is
version 0.14 or greater. Older versions of qemu
result in an "<literal>unknown option
-s</literal>" error message in the
<filename>nova-compute.log</filename>.</para>
</listitem>
<listitem>
<para>Examine the
<filename>/var/log/nova-api.log</filename> and
<filename>/var/log/nova-compute.log</filename>
log files for error messages.</para>
</listitem>
</itemizedlist>
</section>
<xi:include href="section_nova_cli_images.xml"/>
</section>

View File

@ -8,16 +8,17 @@
<title>Create and manage networks</title>
<para>Before you run commands, set the following environment
variables:</para>
<screen><computeroutput>export OS_USERNAME=admin
<programlisting language="bash">export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
<procedure>
<title>To create and manage networks</title>
<step>
<para>List the extensions of the system:</para>
<screen><prompt>$</prompt> <userinput>neutron ext-list -c alias -c name</userinput></screen>
<screen><computeroutput>+-----------------+--------------------------+
export OS_AUTH_URL=http://localhost:5000/v2.0</programlisting>
<section xml:id="cli_networks">
<title>Create networks</title>
<procedure>
<step>
<para>List the extensions of the system:</para>
<screen><prompt>$</prompt> <userinput>neutron ext-list -c alias -c name</userinput></screen>
<screen><computeroutput>+-----------------+--------------------------+
| alias | name |
+-----------------+--------------------------+
| agent_scheduler | Agent Schedulers |
@ -28,12 +29,12 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| router | Neutron L3 Router |
| lbaas | LoadBalancing service |
| extraroute | Neutron Extra Route |
+-----------------+--------------------------+ </computeroutput></screen>
</step>
<step>
<para>Create a network:</para>
<screen><prompt>$</prompt> <userinput>neutron net-create net1</userinput></screen>
<screen><computeroutput>Created a new network:
+-----------------+--------------------------+</computeroutput></screen>
</step>
<step>
<para>Create a network:</para>
<screen><prompt>$</prompt> <userinput>neutron net-create net1</userinput></screen>
<screen><computeroutput>Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -49,16 +50,16 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| subnets | |
| tenant_id | 3671f46ec35e4bbca6ef92ab7975e463 |
+---------------------------+--------------------------------------+</computeroutput></screen>
<note>
<para>Some fields of the created network are invisible
to non-admin users.</para>
</note>
</step>
<step>
<para>Create a network with specified provider network
type:</para>
<screen><prompt>$</prompt> <userinput>neutron net-create net2 --provider:network-type local</userinput></screen>
<screen><computeroutput>Created a new network:
<note>
<para>Some fields of the created network are
invisible to non-admin users.</para>
</note>
</step>
<step>
<para>Create a network with specified provider network
type:</para>
<screen><prompt>$</prompt> <userinput>neutron net-create net2 --provider:network-type local</userinput></screen>
<screen><computeroutput>Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
@ -73,16 +74,21 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| status | ACTIVE |
| subnets | |
| tenant_id | 3671f46ec35e4bbca6ef92ab7975e463 |
+---------------------------+--------------------------------------+ </computeroutput></screen>
<para>Just as shown previous, the unknown option
<literal>--provider:network-type</literal> is used
to create a <literal>local</literal> provider
network.</para>
</step>
<step>
<para>Create a subnet:</para>
<screen><prompt>$</prompt> <userinput>neutron subnet-create net1 192.168.2.0/24 --name subnet1</userinput></screen>
<screen><computeroutput>Created a new subnet:
+---------------------------+--------------------------------------+</computeroutput></screen>
<para>Just as shown previous, the unknown option
<literal>--provider:network-type</literal> is
used to create a <literal>local</literal> provider
network.</para>
</step>
</procedure>
</section>
<section xml:id="cli_subnets">
<title>Create subnets</title>
<procedure>
<step>
<para>Create a subnet:</para>
<screen><prompt>$</prompt> <userinput>neutron subnet-create net1 192.168.2.0/24 --name subnet1</userinput></screen>
<screen><computeroutput>Created a new subnet:
+------------------+--------------------------------------------------+
| Field | Value |
+------------------+--------------------------------------------------+
@ -98,16 +104,23 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| network_id | 2d627131-c841-4e3a-ace6-f2dd75773b6d |
| tenant_id | 3671f46ec35e4bbca6ef92ab7975e463 |
+------------------+--------------------------------------------------+</computeroutput></screen>
<para>In the previous command, <literal>net1</literal> is
the network name, <literal>192.168.2.0/24</literal> is
the subnet's CIDR. They are positional arguments.
<literal>--name subnet1</literal> is an unknown
option, which specifies the subnet's name.</para>
</step>
<step>
<para>Create a port with specified IP address:</para>
<screen><prompt>$</prompt> <userinput>neutron port-create net1 --fixed-ip ip_address=192.168.2.40</userinput></screen>
<screen><computeroutput>Created a new port:
<para>In the previous command, <literal>net1</literal>
is the network name,
<literal>192.168.2.0/24</literal> is the
subnet's CIDR. They are positional arguments.
<literal>--name subnet1</literal> is an
unknown option, which specifies the subnet's
name.</para>
</step>
</procedure>
</section>
<section xml:id="cli_ports">
<title>Create ports</title>
<procedure>
<step>
<para>Create a port with specified IP address:</para>
<screen><prompt>$</prompt> <userinput>neutron port-create net1 --fixed-ip ip_address=192.168.2.40</userinput></screen>
<screen><computeroutput>Created a new port:
+----------------------+-------------------------------------------------------------------------------------+
| Field | Value |
+----------------------+-------------------------------------------------------------------------------------+
@ -124,19 +137,20 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| status | DOWN |
| tenant_id | 3671f46ec35e4bbca6ef92ab7975e463 |
+----------------------+-------------------------------------------------------------------------------------+ </computeroutput></screen>
<para>In the previous command, <literal>net1</literal> is
the network name, which is a positional argument.
<literal>--fixed-ip
ip_address=192.168.2.40</literal> is an option,
which specifies the port's fixed IP address we
wanted.</para>
</step>
<step>
<para>Create a port without specified IP address:</para>
<screen><prompt>$</prompt> <userinput>neutron port-create net1</userinput></screen>
<screen><computeroutput>Created a new port:
<para>In the previous command, <literal>net1</literal>
is the network name, which is a positional
argument. <literal>--fixed-ip
ip_address=192.168.2.40</literal> is an
option, which specifies the port's fixed IP
address we wanted.</para>
</step>
<step>
<para>Create a port without specified IP
address:</para>
<screen><prompt>$</prompt> <userinput>neutron port-create net1</userinput></screen>
<screen><computeroutput>Created a new port:
+----------------------+------------------------------------------------------------------------------------+
| Field | Value |
| Field| Value |
+----------------------+------------------------------------------------------------------------------------+
| admin_state_up | True |
| binding:capabilities | {"port_filter": false} |
@ -150,31 +164,33 @@ export OS_AUTH_URL=http://localhost:5000/v2.0</computeroutput></screen>
| network_id | 2d627131-c841-4e3a-ace6-f2dd75773b6d |
| status | DOWN |
| tenant_id | 3671f46ec35e4bbca6ef92ab7975e463 |
+----------------------+------------------------------------------------------------------------------------+ </computeroutput></screen>
<para>We can see that the system will allocate one IP
address if we don't specify the IP address in command
line.</para>
</step>
<step>
<para>Query ports with specified fixed IP
addresses:</para>
<screen><prompt>$</prompt> <userinput>neutron port-list --fixed-ips ip_address=192.168.2.2 ip_address=192.168.2.40</userinput></screen>
<screen><computeroutput>+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+
+----------------------+------------------------------------------------------------------------------------+</computeroutput></screen>
<para>We can see that the system will allocate one IP
address if we don't specify the IP address in
command line.</para>
</step>
<step>
<para>Query ports with specified fixed IP
addresses:</para>
<screen><prompt>$</prompt> <userinput>neutron port-list --fixed-ips ip_address=192.168.2.2 ip_address=192.168.2.40</userinput></screen>
<screen><computeroutput>+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+
| id | name | mac_address | fixed_ips |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+
| baf13412-2641-4183-9533-de8f5b91444c | | fa:16:3e:f6:ec:c7 | {"subnet_id": "15a09f6c-87a5-4d14-b2cf-03d97cd4b456", "ip_address": "192.168.2.2"} |
| f7a08fe4-e79e-4b67-bbb8-a5002455a493 | | fa:16:3e:97:e0:fc | {"subnet_id": "15a09f6c-87a5-4d14-b2cf-03d97cd4b456", "ip_address": "192.168.2.40"} |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------+ </computeroutput></screen>
<para><literal>--fixed-ips ip_address=192.168.2.2
ip_address=192.168.2.40</literal> is one unknown
option.</para>
<para><emphasis role="bold">How to find unknown
options?</emphasis> The unknown options can be
easily found by watching the output of
<literal>create_xxx</literal> or
<literal>show_xxx</literal> command. For example,
in the port creation command, we see the fixed_ips
fields, which can be used as an unknown option.</para>
</step>
</procedure>
<para><literal>--fixed-ips ip_address=192.168.2.2
ip_address=192.168.2.40</literal> is one
unknown option.</para>
<para><emphasis role="bold">How to find unknown
options?</emphasis> The unknown options can be
easily found by watching the output of
<literal>create_xxx</literal> or
<literal>show_xxx</literal> command. For
example, in the port creation command, we see the
fixed_ips fields, which can be used as an unknown
option.</para>
</step>
</procedure>
</section>
</section>

View File

@ -4,35 +4,36 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="boot_from_volume">
<title wordsize="20">Launch an instance from a volume</title>
<para>After you <link xlink:href="#create_volume_from_image">create a
bootable volume</link>, you <link
<para>After you <link xlink:href="#create_volume_from_image">create
a bootable volume</link>, you <link
xlink:href="#launch_image_from_volume">launch an instance from
the volume</link>.</para>
<procedure xml:id="create_volume_from_image">
<title wordsize="20">To launch an instance from a volume</title>
<title>To xx</title>
<step>
<title wordsize="20">To create a bootable volume</title>
<para>To create a volume from an image, run the following
command:
<screen><prompt>#</prompt> <userinput>cinder create --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --display-name my-bootable-vol 8</userinput> </screen>
<para>To create a bootable volume from an image, run the
following command:
<screen><prompt>#</prompt> <userinput>cinder create --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 \
--display-name my-bootable-vol 8</userinput></screen>
</para>
<note>
<para>You can also use the <command>nova</command>
<option>volume-create</option> command to complete the same
action:
<screen><prompt>#</prompt> <userinput>nova volume-create --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --display-name my-bootable-vol 8</userinput> </screen>
</para>
<screen><prompt>#</prompt> <userinput>nova volume-create \
--image-id 397e713c-b95b-4186-ad46-6126863ea0a9 \
--display-name my-bootable-vol 8</userinput></screen></para>
</note>
<para>Optionally, to configure your volume, see the
<!-- Commenting out because the OpenStack Config Reference is not available yet -->
<!--<para>Optionally, to configure your volume, see the
<citetitle>Configuring Image Service and Storage for
Compute</citetitle> chapter in the <citetitle>OpenStack
Configuration Reference</citetitle>.</para>
Configuration Reference</citetitle>.</para>-->
</step>
<step>
<title wordsize="20">To list volumes</title>
<para>Enter the following command:</para>
<screen><userinput><prompt>$</prompt> nova volume-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+-------------+
<para>To list volumes, run the following command:</para>
<screen><prompt>$</prompt> <userinput>nova volume-list</userinput></screen>
<screen><?db-font-size 55%?><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+-------------+
| ID | Status | Display Name | Size | Volume Type | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+-------------+
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | |
@ -41,56 +42,64 @@
volume.</para>
</step>
<step xml:id="launch_image_from_volume">
<title wordsize="20">To launch an instance</title>
<para>Enter the <command>nova</command>
<para>To launch an instance, run the <command>nova</command>
<option>boot</option> command with the
<parameter>--block_device_mapping</parameter> parameter, as
follows:</para>
<screen><prompt>$</prompt> <userinput>nova boot --flavor &lt;flavor> --block_device_mapping &lt;dev_name>=&lt;id>:&lt;type>:&lt;size>:&lt;delete_on_terminate> &lt;name></userinput></screen>
<screen><prompt>$</prompt> <userinput>nova boot --flavor <replaceable>FLAVOR</replaceable> --block_device_mapping \
<replaceable>DEVNAME</replaceable>=<replaceable>ID</replaceable>:<replaceable>TYPE</replaceable>:<replaceable>SIZE</replaceable>:<replaceable>DELETE_ON_TERMINATE</replaceable> <replaceable>NAME</replaceable></userinput></screen>
<para>The command arguments are:</para>
<variablelist>
<varlistentry>
<term><parameter>--flavor</parameter>
<replaceable>flavor</replaceable></term>
<listitem>
<para>The flavor ID.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>--block_device_mapping</parameter>
<replaceable>dev-
name</replaceable>=<replaceable>id</replaceable>:<replaceable>type</replaceable>:<replaceable>size</replaceable>:<replaceable>delete-on-terminate</replaceable></term>
<listitem>
<itemizedlist>
<listitem>
<para><replaceable>dev-name</replaceable>. A device
name where the volume is attached in the system at
<filename>/dev/<replaceable>dev_name</replaceable></filename>.
This value is typically
<literal>vda</literal>.</para>
</listitem>
<listitem>
<para><replaceable>id</replaceable>. The ID of the
volume to boot from, as shown in the output of
<command>nova volume-list</command>.</para>
</listitem>
<listitem>
<para><replaceable>type</replaceable>. Either
<literal>snap</literal> or any other value,
including a blank string. <literal>snap</literal>
means that the volume was created from a
snapshot.</para>
</listitem>
<listitem>
<para><replaceable>size</replaceable>. The size of the
volume, in GBs. It is safe to leave this blank and
have the Compute service infer the size.</para>
</listitem>
<listitem>
<para><replaceable>delete-on-terminate</replaceable>.
A boolean that indicates whether the volume should
be deleted when the instance is terminated. You can
specify <itemizedlist>
<informaltable>
<col width="30%"/>
<col width="70%"/>
<tbody>
<tr>
<td>
<para><parameter>--flavor</parameter>
<replaceable>FLAVOR</replaceable></para>
</td>
<td>
<para>The flavor ID.</para>
</td>
</tr>
<tr>
<td>
<para><parameter>--block_device_mapping</parameter>
<replaceable>DEVNAME</replaceable>=<replaceable>ID</replaceable>:<replaceable>type</replaceable>:<replaceable>size</replaceable>:<replaceable>delete-on-terminate</replaceable></para>
</td>
<td>
<itemizedlist>
<listitem>
<para><replaceable>DEVNAME</replaceable>. A device
name where the volume is attached in the system at
<filename>/dev/<replaceable>dev_name</replaceable></filename>.
This value is typically
<literal>vda</literal>.</para>
</listitem>
<listitem>
<para><replaceable>ID</replaceable>. The ID of the
volume to boot from, as shown in the output of
<command>nova volume-list</command>.</para>
</listitem>
<listitem>
<para><replaceable>type</replaceable>. Either
<literal>snap</literal> or any other value,
including a blank string. <literal>snap</literal>
means that the volume was created from a
snapshot.</para>
</listitem>
<listitem>
<para><replaceable>size</replaceable>. The size of
the volume, in GBs. It is safe to leave this blank
and have the Compute service infer the
size.</para>
</listitem>
<listitem>
<para><replaceable>delete-on-terminate</replaceable>.
Boolean. Indicates whether the volume is deleted
when the instance is deleted. You can
specify:</para>
<itemizedlist>
<listitem>
<para><literal>True</literal> or
<literal>1</literal>
@ -100,31 +109,32 @@
<para><literal>False</literal> or
<literal>0</literal></para>
</listitem>
</itemizedlist></para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><replaceable>name</replaceable></term>
<listitem>
<para>The name for the server.</para>
</listitem>
</varlistentry>
</variablelist>
<para><note>
<para>Because of bug <link
xlink:href="https://bugs.launchpad.net/nova/+bug/1163566"
>#1163566</link>, you must specify an image when booting
from a volume, even though the specified image is not
used. Otherwise, the <literal>Attempt to boot from volume
- no image supplied</literal> error is returned.</para>
</note>For example, you might enter the following command to
boot from a volume with ID
bd7cf584-45de-44e3-bf7f-f7b50bf235e. The volume is not deleted
when the instance is terminated:</para>
</itemizedlist>
</listitem>
</itemizedlist>
</td>
</tr>
<tr>
<td>
<para><replaceable>NAME</replaceable></para>
</td>
<td>
<para>The name for the server.</para>
</td>
</tr>
</tbody>
</informaltable>
<note>
<para>You must specify an image when booting from a volume,
even though the specified image is not used. Otherwise, the
<literal>Attempt to boot from volume - no image
supplied</literal> error is returned.</para>
</note>
<para>For example, you might enter the following command to boot
from a volume with ID bd7cf584-45de-44e3-bf7f-f7b50bf235e. The
volume is not deleted when the instance is terminated:</para>
<screen><prompt>$</prompt> <userinput>nova boot --flavor 2 --image 397e713c-b95b-4186-ad46-6126863ea0a9 --block_device_mapping vda=bd7cf584-45de-44e3-bf7f-f7b50bf235e3:::0 myInstanceFromVolume</userinput></screen>
<screen><computeroutput>+-------------------------------------+-------------------------------------------------+
<screen><?db-font-size 65%?><computeroutput>+-------------------------------------+-------------------------------------------------+
| Property | Value |
+-------------------------------------+-------------------------------------------------+
| OS-EXT-STS:task_state | scheduling |
@ -154,11 +164,10 @@
| created | 2013-07-16T20:14:18Z |
| metadata | {} |
+-------------------------------------+-------------------------------------------------+</computeroutput></screen>
<para>Now when you list volumes, you can see that the volume is
attached to a server:</para>
<screen><prompt>$</prompt> <userinput>nova volume-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+--------+-----------------+------+-------------+--------------------------------------+
<screen><?db-font-size 65%?><computeroutput>+--------------------------------------+--------+-----------------+------+-------------+--------------------------------------+
| ID | Status | Display Name | Size | Volume Type | Attached to |
+--------------------------------------+--------+-----------------+------+-------------+--------------------------------------+
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | in-use | my-bootable-vol | 8 | None | 8a99547e-7385-4ad1-ae50-4ecfaaad5f42 |
@ -166,7 +175,7 @@
<para>Additionally, when you list servers, you see the server
that you booted from a volume:</para>
<screen><prompt>$</prompt> <userinput>nova list</userinput></screen>
<screen><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
<screen><?db-font-size 65%?><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| b3cdc6c0-85a7-4904-ae85-71918f734048 | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 |

View File

@ -3,12 +3,13 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Manage bare metal nodes</title>
<para>If you use the bare metal driver, you must create a bare
metal node and add a network interface to it. You then launch an
instance from a bare metal image. You can list and delete bare
metal nodes. When you delete a node, any associated network
interfaces are removed. You can list and remove network interfaces
that are associated with a bare metal node.</para>
<para>If you use the bare metal driver, you must create and add a
network interface to a bare metal node. Then, you can launch an
instance from a bare metal image.</para>
<para>You can list and delete bare metal nodes. When you delete a
node, any associated network interfaces are removed. You can list
and remove network interfaces that are associated with a bare
metal node.</para>
<itemizedlist><title>Commands</title><listitem>
<para><command>baremetal-interface-add</command></para>
@ -44,7 +45,7 @@
<para><command>baremetal-node-show</command></para>
<para>Shows information about a bare metal node.</para>
</listitem></itemizedlist>
<procedure><title>To manage bare metal nodes</title><step><para>Create a bare metal node.</para>
<procedure><title>To manage bare metal nodes</title><step><para>Create a bare metal node:</para>
<screen><prompt>$</prompt> <userinput>nova baremetal-node-create --pm_address=1.2.3.4 --pm_user=ipmi --pm_password=ipmi $(hostname -f) 1 512 10 aa:bb:cc:dd:ee:ff</userinput></screen>
<screen><computeroutput>+------------------+-------------------+
| Property | Value |
@ -63,7 +64,7 @@
| terminal_port | None |
+------------------+-------------------+</computeroutput></screen>
</step>
<step><para>Add network interface information to the node:</para>
<step><para>Add a network interface to the node:</para>
<screen><prompt>$</prompt> <userinput>nova baremetal-interface-add 1 aa:bb:cc:dd:ee:ff</userinput></screen>
<screen><computeroutput>+-------------+-------------------+
| Property | Value |
@ -84,10 +85,10 @@
... wait for instance to become active ... </screen>
</step>
<step><para>You can list bare metal nodes and interfaces. When a node is in
use, its status includes the UUID of the instance that runs on
it:</para>
<step><para>You can list bare metal nodes and interfaces, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova baremetal-node-list</userinput></screen>
<para>When a node is in use, its status includes the UUID of the
instance that runs on it:</para>
<screen><computeroutput>+----+--------+------+-----------+---------+-------------------
+------+------------+-------------+-------------+---------------+
| ID | Host | CPUs | Memory_MB | Disk_GB | MAC Address
@ -100,7 +101,7 @@
+------+------------+-------------+-------------+---------------+</computeroutput></screen>
</step>
<step><para>Show details about a bare metal node:</para>
<step><para>Show details for a bare metal node:</para>
<screen><prompt>$</prompt> <userinput>nova baremetal-node-show 1</userinput> </screen>
<screen><computeroutput>+------------------+--------------------------------------+
| Property | Value |

View File

@ -6,106 +6,94 @@
<title wordsize="20">Launch instances</title>
<para>Instances are virtual machines that run inside the
cloud.</para>
<para>Before you can launch an instance, you must gather
parameters such as the image and flavor from which you want to
launch your instance.</para>
<para>Before you can launch an instance, gather the following
parameters:</para>
<itemizedlist xml:id="instance_parameters">
<listitem>
<para>The <guilabel>instance source</guilabel>, which is
an image or snapshot. Alternatively, you can boot from
a volume, which is block storage, to which you've
copied an image or snapshot.</para>
</listitem>
<listitem>
<para>The <guilabel>image</guilabel> or
<guilabel>snapshot</guilabel>, which represents
the operating system.</para>
</listitem>
<listitem>
<para>A <guilabel>name</guilabel> for your instance.
</para>
</listitem>
<listitem>
<para>The <emphasis role="bold">flavor</emphasis> for your
instance, which defines the compute, memory, and
storage capacity of nova computing instances. A flavor
is an available hardware configuration for a server.
It defines the "size" of a virtual server that can be
launched.</para>
</listitem>
<listitem>
<para><literal>User Data</literal> is a special key in the
metadata service that holds a file that cloud-aware
applications in the guest instance can access. For
example. the <link
xlink:href="https://help.ubuntu.com/community/CloudInit"
>cloudinit</link> system is an open-source package
from Ubuntu that is available on various Linux
distributions including Ubuntu, Fedora, and openSUSE
and that handles early initialization of a cloud
instance that uses <literal>user
data</literal>.</para>
</listitem>
<listitem>
<para>Access and security credentials, which include one
or both of the following credentials:</para>
<itemizedlist>
<listitem>
<para>A <emphasis role="bold">keypair</emphasis>
for your instance, which are SSH credentials
that are injected into images when they are
launched. For this to work, the image must
contain the <literal>cloud-init</literal>
package. Create at least one keypair for each
project. If you already have generated a
keypair with an external tool, you can import
it into OpenStack. You can use the keypair for
multiple instances that belong to that
project.</para>
</listitem>
<listitem>
<para>A <emphasis role="bold">security
group</emphasis>, which defines which
incoming network traffic is forwarded to
instances. Security groups hold a set of
firewall policies, known as <emphasis
role="italic">security group
rules</emphasis>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>If needed, you can assign a <emphasis role="bold"
>floating (public) IP address</emphasis> to a
running instance and attach a block storage device, or
volume, for persistent storage.</para>
</listitem>
</itemizedlist>
<para>After you gather the parameters you need to launch an
instance, you can launch it from an <link
xlink:href="launch_from_image">image</link> or a <link
xlink:href="boot_from_volume">volume</link>.</para>
<para>You can launch an instance directly from one of the
available OpenStack images or from an image that you have
copied to a persistent volume. The OpenStack Image Service
provides a pool of images that are accessible to members of
different projects.</para>
<?hard-pagebreak?>
<section xml:id="gather_parms">
<title wordsize="20">Gather parameters to launch an
instance</title>
<para>To launch an instance, you must specify the following
parameters:</para>
<itemizedlist xml:id="instance_parameters" spacing="compact">
<listitem>
<para>The <guilabel>instance source</guilabel>, which
is an image or snapshot. Alternatively, you can
boot from a volume, which is block storage, to
which you've copied an image or snapshot.</para>
</listitem>
<listitem>
<para>The <guilabel>image</guilabel> or
<guilabel>snapshot</guilabel>, which
represents the operating system.</para>
</listitem>
<listitem>
<para>A <guilabel>name</guilabel> for your instance.
</para>
</listitem>
<listitem>
<para>The <emphasis role="bold">flavor</emphasis> for
your instance, which defines the compute, memory,
and storage capacity of nova computing instances.
A flavor is an available hardware configuration
for a server. It defines the "size" of a virtual
server that can be launched. For more details and
a list of default flavors available, see Section
1.5, "Managing Flavors," (↑ User Guide for
Administrators ).</para>
</listitem>
<listitem>
<para><literal>User Data</literal> is a special key in
the metadata service which holds a file that cloud
aware applications within the guest instance can
access. For example the <link
xlink:href="https://help.ubuntu.com/community/CloudInit"
>cloudinit</link> system is an open source
package from Ubuntu that handles early
initialization of a cloud instance that makes use
of this <literal>user data</literal>.</para>
</listitem>
<listitem>
<para>Access and security credentials, which include
one or both of the following credentials:</para>
<itemizedlist>
<listitem>
<para>A <emphasis role="bold"
>keypair</emphasis> for your instance,
which are SSH credentials that are
injected into images when they are
launched. For this to work, the image must
contain the <literal>cloud-init</literal>
package. Create at least one keypair for
each project. If you already have
generated a keypair with an external tool,
you can import it into OpenStack. You can
use the keypair for multiple instances
that belong to that project. For details,
refer to Section 1.5.1, Creating or
Importing Keys.</para>
</listitem>
<listitem>
<para>A <emphasis role="bold">security
group</emphasis>, which defines which
incoming network traffic is forwarded to
instances. Security groups hold a set of
firewall policies, known as <emphasis
role="italic">security group
rules</emphasis>. For details, see xx.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>If needed, you can assign a <emphasis
role="bold">floating (public) IP
address</emphasis> to a running instance and
attach a block storage device, or volume, for
persistent storage. For details, see Section
1.5.3, Managing IP Addresses and Section 1.7,
Managing Volumes.</para>
</listitem>
</itemizedlist>
<para>After you gather the parameters you need to launch an
instance, you can launch it from an <link
xlink:href="launch_from_image">image</link> or a <link
xlink:href="boot_from_volume">volume</link>.</para>
<procedure>
<title wordsize="20">To gather the parameters to launch an
instance</title>
<step>
<para>On a shell, source the OpenStack RC file. See
<xref linkend="cli_openrc"/>.</para>
@ -113,7 +101,7 @@
<step>
<para>List the available flavors:</para>
<screen><prompt>$</prompt> <userinput>nova flavor-list</userinput></screen>
<screen><computeroutput>+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
<screen><?db-font-size 55%?><computeroutput>+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | True |
@ -130,7 +118,7 @@
<step>
<para>List the available images:</para>
<screen><prompt>$</prompt> <userinput>nova image-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+---------------------------------+--------+--------+
<screen><?db-font-size 55%?><computeroutput>+--------------------------------------+---------------------------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+---------------------------------+--------+--------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ACTIVE | |
@ -140,7 +128,7 @@
<para>You can also filter the image list by using grep
to find a specific image, like this:</para>
<screen><prompt>$</prompt> <userinput>nova image-list | grep 'kernel'</userinput></screen>
<screen><computeroutput>| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | |</computeroutput></screen>
<screen><?db-font-size 55%?><computeroutput>| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | |</computeroutput></screen>
<para>Note the ID of the image that you want to boot
your instance from.</para>
</step>
@ -152,7 +140,7 @@
to list groups for all tenants.</para>
</note>
<screen><prompt>$</prompt> <userinput>nova secgroup-list --all-tenants</userinput></screen>
<screen><computeroutput>+----+---------+-------------+----------------------------------+
<screen><?db-font-size 65%?><computeroutput>+----+---------+-------------+----------------------------------+
| Id | Name | Description | Tenant_ID |
+----+---------+-------------+----------------------------------+
| 2 | default | default | 66265572db174a7aa66eba661f58eb9e |
@ -164,35 +152,22 @@
<para>You can also list rules for a specified security
group:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-list-rules default</userinput> </screen>
<screen><computeroutput>+-------------+-----------+---------+----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+----------+--------------+
+-------------+-----------+---------+----------+--------------+</computeroutput></screen>
<para>In this example, the default security group has
been modified to allow HTTP traffic on the
instance by permitting TCP traffic on Port
80.</para>
<para>This example modifies the default security group
to allow HTTP traffic on the instance by
permitting TCP traffic on Port 80.</para>
</step>
<step>
<para>List the available keypairs.</para>
<screen><prompt>$</prompt> <userinput>nova keypair-list</userinput></screen>
<screen><computeroutput>+------+-------------+
| Name | Fingerprint |
+------+-------------+
+------+-------------+</computeroutput></screen>
<para>Note the name of the keypair that you use for
SSH access.</para>
</step>
</procedure>
</section>
<?hard page-break?>
<?hard-pagebreak?>
<section xml:id="launch_from_image">
<title wordsize="20">Launch an instance from an image</title>
<para>Use this procedure to launch an instance from an
image.</para>
<procedure>
<title wordsize="20">To launch an instance from an
image</title>
<step>
<para>Now you have all parameters required to launch
an instance, run the following command and specify
@ -203,21 +178,23 @@
example you can add a description for your server
by providing the <parameter>--meta description="My
Server"</parameter> parameter.</para>
<para>You can pass user data in a file on your local
system and pass it at instance launch by using the
flag <literal>--user-data
&lt;user-data-file&gt;</literal>.</para>
<screen><prompt>$</prompt> <userinput>nova boot --flavor <replaceable>FLAVOR_ID</replaceable> --image <replaceable>IMAGE_ID</replaceable> --key_name <replaceable>KEY_NAME</replaceable> --user-data mydata.file \
--security_group <replaceable>SEC_GROUP NAME_FOR_INSTANCE</replaceable> --meta <replaceable>KEY=VALUE</replaceable> --meta <replaceable>KEY=VALUE</replaceable></userinput></screen>
<para>The command returns a list of server properties,
depending on which parameters you provide.</para>
<para>You can pass user data in a local file at
instance launch by using the flag
<parameter>--user-data
<replaceable>USER-DATA-FILE</replaceable></parameter>
parameter.</para>
<screen><prompt>$</prompt> <userinput>nova boot --flavor <replaceable>FLAVOR_ID</replaceable> --image <replaceable>IMAGE_ID</replaceable> --key_name <replaceable>KEY_NAME</replaceable> \
--user-data mydata.file --security_group <replaceable>SEC_GROUP NAME_FOR_INSTANCE</replaceable> \
--meta <replaceable>KEY=VALUE</replaceable> --meta <replaceable>KEY=VALUE</replaceable></userinput></screen>
<para>Depending on the parameters that you provide,
the command returns a list of server
properties.</para>
<para>A status of <literal>BUILD</literal> indicates
that the instance has started, but is not yet
online.</para>
<para>A status of <literal>ACTIVE</literal> indicates
that your server is active.</para>
<informalexample>
<screen><computeroutput><?db-font-size 70%?>+-------------------------------------+--------------------------------------+
that the instance is active.</para>
<screen><?db-font-size 50%?><computeroutput>+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state | scheduling |
@ -247,7 +224,6 @@
| created | 2013-07-16T16:25:34Z |
| metadata | {} |
+-------------------------------------+--------------------------------------</computeroutput></screen>
</informalexample>
<para>Copy the server ID value from the
<literal>id</literal> field in the output. You
use this ID to get details for or delete your
@ -267,39 +243,38 @@
that you want to put on the instance rather
than using the regular ssh key injection, you
can use the following
command:<screen> <prompt>$</prompt> <userinput>nova boot --image ubuntu-cloudimage --flavor 1 --file /root/.ssh/authorized_keys=special_authorized_keysfile</userinput></screen></para>
command:<screen> <prompt>$</prompt> <userinput><?db-font-size 75%?>nova boot --image ubuntu-cloudimage --flavor 1 \
--file /root/.ssh/authorized_keys=special_authorized_keysfile</userinput></screen></para>
</note>
</step>
<step>
<para>Check if the instance is online:</para>
<screen><prompt>$</prompt> <userinput>nova list</userinput></screen>
<screen><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova list</userinput></screen>
<para>The list shows the ID, name, status, and private
(and if assigned, public) IP addresses for all
instances in the project that you belong
to:</para>
<screen><?db-font-size 50%?><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 |
| 8a99547e-7385-4ad1-ae50-4ecfaaad5f42 | myInstanceFromVolume | ACTIVE | None | Running | private=10.0.0.4 |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+</computeroutput></screen>
<para>This command lists all instances of the project
you belong to, including their ID, their name,
their status, and their private (and if assigned,
their public) IP addresses.</para>
<para>If the status for the instance is ACTIVE, the
instance is online.</para>
<para>To view the available options for the
<command>nova list</command> command, run the
following command:</para>
<screen><prompt>$</prompt> <userinput>nova help list</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova help list</userinput></screen>
</step>
<step>
<para>If you did not provide a keypair, security
groups, or rules, you can only access the instance
from inside the cloud through VNC. Even pinging
the instance is not possible.</para>
<!-- <para>To change this, proceed to <xref
linkend="cli_configure_instances"/>.</para> -->
</step>
</procedure>
</section>
<?hard page-break?>
<?hard-pagebreak?>
<xi:include href="section_nova_boot_from_volume.xml"/>
</section>

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="nova_manage_images">
<title>Create image (nova)</title>
<para>You can use the nova client to list images, set and delete
image metadata, delete images, and take a snapshot of a
running instance to create an image.</para>
<para>The safest approach is to shut down the instance before you
take a snapshot.</para>
<para>You cannot create a snapshot from an instance that has an
attached volume. Detach the volume, create the image, and
re-mount the volume.</para>
<procedure>
<step>
<para>Write any buffered data to disk.</para>
<para>For more information, see <link
xlink:href="http://docs.openstack.org/trunk/openstack-ops/content/snapshots.html"
>Taking Snapshots</link> in the
<citetitle>OpenStack Operations
Guide</citetitle>.</para>
</step>
<step>
<para>To create the image, list instances to get the
server ID:</para>
<screen><prompt>$</prompt> <userinput>nova list</userinput></screen>
<screen><?db-font-size 50%?><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+</computeroutput></screen>
<para>In this example, the server is named
<literal>myCirrosServer</literal>. Use this server
to create a snapshot, as follows:
<screen><prompt>$</prompt> <userinput>nova image-create myCirrosServer myCirrosImage</userinput></screen>The
command creates a qemu snapshot and automatically
uploads the image to your repository. Only the tenant
that creates the image has access to it.</para>
</step>
<step>
<para>Get details for your image to check its
status:</para>
<screen><prompt>$</prompt> <userinput>nova image-show <replaceable>IMAGE</replaceable></userinput></screen>
<screen><?db-font-size 50%?><computeroutput>+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| metadata owner_id | 66265572db174a7aa66eba661f58eb9e |
| minDisk | 0 |
| metadata instance_type_name | m1.small |
| metadata instance_type_id | 5 |
| metadata instance_type_memory_mb | 2048 |
| id | 7e5142af-1253-4634-bcc6-89482c5f2e8a |
| metadata instance_type_root_gb | 20 |
| metadata instance_type_rxtx_factor | 1 |
| metadata ramdisk_id | 3cf852bd-2332-48f4-9ae4-7d926d50945e |
| metadata image_state | available |
| metadata image_location | snapshot |
| minRam | 0 |
| metadata instance_type_vcpus | 1 |
| status | ACTIVE |
| updated | 2013-07-22T19:46:42Z |
| metadata instance_type_swap | 0 |
| metadata instance_type_vcpu_weight | None |
| metadata base_image_ref | 397e713c-b95b-4186-ad46-6126863ea0a9 |
| progress | 100 |
| metadata instance_type_flavorid | 2 |
| OS-EXT-IMG-SIZE:size | 14221312 |
| metadata image_type | snapshot |
| metadata user_id | 376744b5910b4b4da7d8e6cb483b06a8 |
| name | myCirrosImage |
| created | 2013-07-22T19:45:58Z |
| metadata instance_uuid | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 |
| server | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 |
| metadata kernel_id | df430cc2-3406-4061-b635-a51c16e488ac |
| metadata instance_type_ephemeral_gb | 0 |
+-------------------------------------+--------------------------------------+</computeroutput></screen>
<para>The image status changes from
<literal>SAVING</literal> to
<literal>ACTIVE</literal>. Only the tenant who
creates the image has access to it.</para>
</step>
<step>
<para>To launch an instance from your image, include the
image ID and flavor ID, as follows:</para>
<screen><prompt>$</prompt> <userinput>nova boot newServer --image 7e5142af-1253-4634-bcc6-89482c5f2e8a \
--flavor 3</userinput></screen>
<screen><?db-font-size 50%?><computeroutput>+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state | scheduling |
| image | myCirrosImage |
| OS-EXT-STS:vm_state | building |
| OS-EXT-SRV-ATTR:instance_name | instance-00000007 |
| flavor | m1.medium |
| id | d7efd3e4-d375-46d1-9d57-372b6e4bdb7f |
| security_groups | [{u'name': u'default'}] |
| user_id | 376744b5910b4b4da7d8e6cb483b06a8 |
| OS-DCF:diskConfig | MANUAL |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
| status | BUILD |
| updated | 2013-07-22T19:58:33Z |
| hostId | |
| OS-EXT-SRV-ATTR:host | None |
| key_name | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| name | newServer |
| adminPass | jis88nN46RGP |
| tenant_id | 66265572db174a7aa66eba661f58eb9e |
| created | 2013-07-22T19:58:33Z |
| metadata | {} |
+-------------------------------------+--------------------------------------+</computeroutput></screen>
</step>
</procedure>
</section>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
]>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:raxm="http://docs.rackspace.com/api/metadata" version="5.0"
xml:id="admin_ch_cli">
<info>
<title>OpenStack command-line clients</title>
</info>
<xi:include href="../../openstack-user/src/section_cli_overview.xml"/>
<xi:include href="../../openstack-user/src/section_cli_install.xml"/>
<xi:include href="../../openstack-user/src/section_cli_version.xml"/>
<xi:include href="../../openstack-user/src/section_cli_openrc.xml"/>
<xi:include href="section_cli_manage_projects_users.xml"/>
<xi:include href="../../common/section_cli_keystone_users_tenants_roles.xml"/>
<xi:include href="../../common/section_glance_cli_manage_images.xml"/>
<xi:include href="section_cli_manage_flavors.xml"/>
<xi:include href="section_cli_set_quotas.xml"/>
</chapter>

View File

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<preface xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="openstack_user_guide">
<title>How can I administer an OpenStack cloud?</title>
<?dbhtml stop-chunking?>
<para>As an OpenStack cloud administrative user, you can manage
tenants, known as <firstterm>projects</firstterm>, users,
services, images, flavors, and quotas. The examples in this
guide show you how to complete these tasks by using the
OpenStack dashboard and command-line clients.</para>
<para>The dashboard, also known as <link
xlink:href="https://github.com/openstack/horizon/"
>horizon</link>, is a Web-based graphical interface. The
command-line clients let you run simple commands to create and
manage resources in a cloud and automate tasks by using
scripts. Each of the core OpenStack projects has its own
command-line client.</para>
<para>You
can modify these examples for your specific use cases.</para>
<para>In addition to these ways of interacting with a cloud, you
can access the OpenStack APIs indirectly through <link
xlink:href="http://curl.haxx.se/">cURL</link> commands or
open SDKs, or directly through the APIs. You can automate
access or build tools to manage resources and services by
using the native OpenStack APIs or the EC2 compatibility
API.</para>
<para>To use the OpenStack APIs, it helps to be familiar with
HTTP/1.1, RESTful web services, the OpenStack services, and
JSON or XML data serialization formats.</para>
<xi:include href="../../common/section_dochistory.xml"/>
</preface>

View File

@ -1,199 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_keystone_summary">
<title>keystone</title>
<para>Use the following OpenStack keystone client commands to
perform API operations:</para>
<section xml:id="keystone_endpoints">
<title>Endpoints</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="keystone_ec2_credentials">
<title>EC2 credentials</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="keystone_users_and_passwords">
<title>Users and passwords</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="keystone_tenants">
<title>Tenants</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -1,280 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_manage_images">
<title>Manage images</title>
<para>During set up of OpenStack cloud, the cloud operator sets
user permissions to manage images.</para>
<para>Image upload and management might be restricted to only
cloud administrators or cloud operators.</para>
<para>After you upload an image, it is considered <emphasis
role="italic">golden</emphasis> and you cannot change it.</para>
<para>You can upload images through the glance client or the Image
Service API. You can also use the nova client to list images,
set and delete image metadata, delete images, and take a
snapshot of a running instance to create an image. See <xref
linkend="nova_manage_images"/>.</para>
<para>For details about image creation, see the <link
xlink:href="http://docs.openstack.org/trunk/openstack-image/content/"
><citetitle>Virtual Machine Image
Guide</citetitle></link>.</para>
<section xml:id="glance-image-list">
<title>Manage images with the glance client</title>
<procedure>
<title>To list images</title>
<step>
<para>To list the available images:</para>
<screen><prompt>$</prompt> <userinput>glance image-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |
| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | aki | aki | 4955792 | active |
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |
| 7e5142af-1253-4634-bcc6-89482c5f2e8a | myCirrosImage | ami | ami | 14221312 | active |
+--------------------------------------+---------------------------------+-------------+------------------+----------+--------+</computeroutput></screen>
<para>You can use grep to filter the list, as follows:</para>
<screen><prompt>$</prompt> <userinput>glance image-list | grep 'cirros'</userinput></screen>
<screen><computeroutput>| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |
| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | aki | aki | 4955792 | active |
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |</computeroutput></screen>
</step>
<step>
<para>To show details for a specified image by name or
ID:</para>
<screen><prompt>$</prompt> <userinput>glance image-show myCirrosImage</userinput></screen>
<screen><computeroutput>+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| Property 'base_image_ref' | 397e713c-b95b-4186-ad46-6126863ea0a9 |
| Property 'image_location' | snapshot |
| Property 'image_state' | available |
| Property 'image_type' | snapshot |
| Property 'instance_type_ephemeral_gb' | 0 |
| Property 'instance_type_flavorid' | 2 |
| Property 'instance_type_id' | 5 |
| Property 'instance_type_memory_mb' | 2048 |
| Property 'instance_type_name' | m1.small |
| Property 'instance_type_root_gb' | 20 |
| Property 'instance_type_rxtx_factor' | 1 |
| Property 'instance_type_swap' | 0 |
| Property 'instance_type_vcpu_weight' | None |
| Property 'instance_type_vcpus' | 1 |
| Property 'instance_uuid' | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 |
| Property 'kernel_id' | df430cc2-3406-4061-b635-a51c16e488ac |
| Property 'owner_id' | 66265572db174a7aa66eba661f58eb9e |
| Property 'ramdisk_id' | 3cf852bd-2332-48f4-9ae4-7d926d50945e |
| Property 'user_id' | 376744b5910b4b4da7d8e6cb483b06a8 |
| checksum | 8e4838effa1969ad591655d6485c7ba8 |
| container_format | ami |
| created_at | 2013-07-22T19:45:58 |
| deleted | False |
| disk_format | ami |
| id | 7e5142af-1253-4634-bcc6-89482c5f2e8a |
| is_public | False |
| min_disk | 0 |
| min_ram | 0 |
| name | myCirrosImage |
| owner | 66265572db174a7aa66eba661f58eb9e |
| protected | False |
| size | 14221312 |
| status | active |
| updated_at | 2013-07-22T19:46:42 |
+---------------------------------------+--------------------------------------+</computeroutput></screen>
</step>
<step>
<title>To add an image</title>
<para>The following example uploads a CentOS 6.3 image
in qcow2 format and configures it for public
access:</para>
<screen><prompt>$</prompt> <userinput>glance image-create --name centos63-image --disk-format=qcow2 --container-format=bare --is-public=True ./centos63.qcow2</userinput></screen>
</step>
<step>
<title>To update an image</title>
<para>To update an image by name or ID:</para>
<para><screen><prompt>$</prompt> glance image-update IMAGE</screen></para>
<para>To modify image properties, use the following
optional arguments:</para>
<itemizedlist>
<listitem>
<para><parameter>--name NAME</parameter>. The
name of the image.</para>
</listitem>
<listitem>
<para><parameter>--disk-format
DISK_FORMAT</parameter>. The disk
format of the image. Acceptable formats
are ami, ari, aki, vhd, vmdk, raw, qcow2,
vdi, and iso.</para>
</listitem>
<listitem>
<para><parameter>--container-format
CONTAINER_FORMAT</parameter>. The
container format of the image. Acceptable
formats are ami, ari, aki, bare, and ovf.</para>
</listitem>
<listitem>
<para><parameter>--owner
TENANT_ID</parameter>. The tenant who
should own the image.</para>
</listitem>
<listitem>
<para><parameter>--size SIZE</parameter>. The
size of image data, in bytes.</para>
</listitem>
<listitem>
<para><parameter>--min-disk
DISK_GB</parameter>. The minimum size
of disk needed to boot image, in
gigabytes.</para>
</listitem>
<listitem>
<para><parameter>--min-ram
DISK_RAM</parameter>. The minimum
amount of ram needed to boot image, in
megabytes.</para>
</listitem>
<listitem>
<para><parameter>--location
IMAGE_URL</parameter>. The URL where
the data for this image resides. For
example, if the image data is stored in
swift, you could specify
<literal>swift://account:key@example.com/container/obj</literal>.</para>
</listitem>
<listitem>
<para><parameter>--file FILE</parameter>.
Local file that contains disk image to be
uploaded during update. Alternatively, you
can pass images to the client through
stdin.</para>
</listitem>
<listitem>
<para><parameter>--checksum
CHECKSUM</parameter>. Hash of image
data to use for verification.</para>
</listitem>
<listitem>
<para><parameter>--copy-from
IMAGE_URL</parameter>. Similar to
<parameter>--location</parameter> in
usage, but indicates that the Glance
server should immediately copy the data
and store it in its configured image
store.</para>
</listitem>
<listitem>
<para><parameter>--is-public
[True|False]</parameter>. Makes an
image accessible to the public.</para>
</listitem>
<listitem>
<para><parameter>--is-protected
[True|False]</parameter>. Prevents an
image from being deleted.</para>
</listitem>
<listitem>
<para><parameter>--property
KEY=VALUE</parameter>. Arbitrary
property to associate with image. Can be
used multiple times.</para>
</listitem>
<listitem>
<para><parameter>--purge-props</parameter>.
Deletes all image properties that are not
explicitly set in the update request.
Otherwise, those properties not referenced
are preserved.</para>
</listitem>
<listitem>
<para><parameter>--human-readable</parameter>.
Prints image size in a human-friendly
format.</para>
</listitem>
</itemizedlist>
</step>
<step>
<para>To annotate an image with a property that
describes the required VIF model:</para>
<screen><prompt>$</prompt> <userinput>glance image-update --property hw_vif_model=e1000 f16-x86_64-openstack-sda</userinput></screen>
<para>If you specify a VIF model that is not
supported, the instance fails to launch. The
following table shows the valid model values,
which depend on the
<literal>libvirt_type</literal>
setting:</para>
<informaltable rules="all">
<thead>
<tr>
<th>libvirt_type setting</th>
<th>Supported model values</th>
</tr>
</thead>
<tbody>
<tr>
<td>qemu or kvm</td>
<td>
<para>
<itemizedlist>
<listitem>
<para>virtio</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</para>
</td>
</tr>
<tr>
<td>xen</td>
<td>
<itemizedlist>
<listitem>
<para>netfront</para>
</listitem>
<listitem>
<para>ne2k_pci</para>
</listitem>
<listitem>
<para>pcnet</para>
</listitem>
<listitem>
<para>rtl8139</para>
</listitem>
<listitem>
<para>e1000</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</informaltable>
</step>
</procedure>
</section>
<xi:include href="../../common/section_nova_cli_images.xml"/>
</section>

View File

@ -1,753 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_nova_summary">
<title>nova</title>
<para>Use the following OpenStack nova client commands to perform
API operations:</para>
<section xml:id="nova_summary_limits">
<title>Limits</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_servers">
<title>Servers</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="nova_summary_serveractions">
<title>Server Actions</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Reboot server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova reboot &lt;server&gt; --hard</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
<para>Omit the <option>--hard</option> option to
perform a soft reboot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rebuild &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Resize server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize [--poll] &lt;server&gt; &lt;flavor&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name and
<parameter>flavor</parameter> is the ID or
name of the new flavor.</para>
<para>Specify the optional <option>--poll</option>
option to block while the instance resizes so
that progress can be reported.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Confirm resize</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize-confirm &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Revert resize
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize-revert &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Unrescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova unrescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create image from
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-create &lt;server&gt; &lt;name&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name, and
<parameter>name</parameter> is the name of
the snapshot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server from
image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rebuild &lt;server&gt; &lt;image&gt; --rebuild_password &lt;rebuild_password&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>server</parameter>. The
server ID or name.</para>
</listitem>
<listitem>
<para><parameter>image</parameter>. The
image ID.</para>
</listitem>
<listitem>
<para><parameter>rebuild_password</parameter>.
Optional. The password for the rebuilt
image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="nova_summary_flavors">
<title>Flavors</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_images">
<title>Images</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_metadata">
<title>Metadata</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-meta &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
image ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_networks">
<title>Networks</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List networks</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show network
information</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-show &lt;network&gt;</programlisting>
</para>
<itemizedlist>
<title>Argument</title>
<listitem>
<para><parameter>network</parameter>. The
UUID or label of the network.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>nova network-create &lt;network_label&gt; &lt;cidr&gt;</programlisting>
</para>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_label</parameter>.
The network label, such as
<literal>my_new_network</literal>,
</para>
</listitem>
<listitem>
<para><parameter>cidr</parameter>. The IP
block from which to allocate, such as
<literal>172.16.0.0/24</literal> or
<literal>2001:DB8::/64</literal>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Provision server with
isolated network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic [net-id=&lt;private-net-uuid&gt; [--no-public] [--no-service-net]</programlisting>
</para>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Positional arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
</itemizedlist>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Optional arguments</title>
<listitem>
<para><option>--no-service-net</option>.
Optional. Opts out of attaching
ServiceNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching
ServiceNet to their server.</para>
</note>
<para>For example, to opt out of attaching
ServiceNet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-service-net</programlisting></para>
</listitem>
<listitem>
<para><option>--no-public</option>.
Optional. Opts out of attaching
PublicNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching PublicNet
to their server.</para>
</note>
<para>For example, to opt out of attaching
the Internet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-public</programlisting></para>
</listitem>
<listitem>
<para><option>--disk-config</option>
{<literal>auto</literal>|<literal>manual</literal>}.
Specifies whether to expand the
primary partition to fill the disk.
This value overrides the value
inherited from the image.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>.
Required. The flavor ID for the new
server. To get a list of flavors,
issue <command>nova
flavor-list</command>.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>.
Required. The image ID for the new
server. To get a list of images, issue
<command>nova
image-list</command>.</para>
</listitem>
<listitem>
<para><option>--meta</option>
<option>key</option><command>=</command><parameter>value</parameter>.
Arbitrary key and value metadata that
is written to
<filename>/meta.js</filename> on
the new server. Can be specified
multiple times.</para>
</listitem>
<listitem>
<para><option>--file</option>
<parameter>dst-path</parameter>=<parameter>src-path</parameter>.
Stores arbitrary files from
<parameter>src-path</parameter>
locally to <parameter>dst-
path</parameter> on the new server.
You can store up to five files.
</para>
</listitem>
<listitem>
<para><option>--key_name</option>
<parameter>key_name</parameter>. Key
name of key pair. First, create the
key pair with the
<command>keypair-add</command>
command.</para>
</listitem>
<?sbr?>
<listitem>
<para><option>--user_data</option>
<parameter>user-data</parameter>. User
data file, which is exposed by the
metadata server.</para>
</listitem>
<listitem>
<para><option>--availability_zone</option>
<parameter>availability-zone</parameter>.
The availability zone for instance
placement.</para>
</listitem>
<listitem>
<para><option>--security_groups</option>
<parameter>security_groups</parameter>.
A comma-separated list of security
group names.</para>
</listitem>
<listitem>
<para><option>--block_device_mapping</option>
<parameter>dev_name=mapping</parameter>.
Block device mapping in the format:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> dev_name=<parameter>id</parameter>:type:<parameter>size(GB)</parameter>:delete_on_terminate</programlisting></para>
</listitem>
<listitem>
<para><option>--hint</option>
<parameter>key</parameter>=<parameter>value</parameter>.
Arbitrary key and value pairs that are
sent to the scheduler for custom use.
</para>
</listitem>
<listitem>
<para><option>--nic
net-id=</option><parameter>private-net-id</parameter>,
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>.
Creates a NIC on the server. Specify
this option multiple times to create
multiple NICs. Optionally, to attach a
NIC with a specified UUID to a
network, specify the
<option>net-id</option>=<parameter>private-net-id</parameter>
parameter.</para>
<para>Optionally, specify the
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>
parameter to specify an IPv4 fixed
address for NIC.</para>
<para>If you do not specify any networks
on the <option>--nic</option>
parameter, the Internet and ServiceNet
are attached to your server.</para>
<note>
<para>ServiceNet is labeled as
<literal>private</literal> and the
Internet is labeled as
<literal>public</literal> in the
network list.</para>
</note>
<para>If you specify additional networks
through the <option>—nic</option>
parameter, these networks, in addition
to the Internet and ServiceNet, are
attached to your server.</para>
<para>You can specify the optional
<option>--no-public</option> and
<option>--no-service-net</option>
parameters to opt out of attaching the
Internet and ServiceNet to your
server.</para>
<para>Specify the
<option>--no-public</option>
parameter to opt out of attaching the
Internet to your server.</para>
<para>Specify the
<option>--no-service-net</option>
parameter to opt out of attaching
ServiceNet to your server.</para>
</listitem>
<listitem>
<para><option>--config-drive</option>
<parameter>value</parameter>. Enables
a configuration drive.</para>
</listitem>
<listitem>
<para><option>--poll</option>. Blocks
while the instance builds so progress
can be reported.</para>
</listitem>
</itemizedlist>
<para>For example, you might issue the following
command to attach a NIC to your server.
Additionally, the Internet and ServiceNet are
attached to your
server.<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot my_server_with_network --flavor 2 --image d42f821e-c2d1-4796-9f07-af5ed7912d0e --nic net-id=e65accc0-1d98-45eb-af76-ab3d31edc7d2</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete isolated
network</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-delete &lt;network_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to
delete.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_virtualints">
<title>Virtual Interfaces</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List virtual interfaces for
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-list &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance for which you
want to list virtual
interfaces.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Attach virtual interface to
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-create &lt;network_id&gt; &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to attach to the
server.</para>
</listitem>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance to which you
want to attach the virtual
interface.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete a virtual interface
and detach it from an instance</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-delete &lt;instance_id&gt; &lt;interface_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance from which you
want to remove the virtual
interface.</para>
</listitem>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to remove from
the instance.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!ENTITY plusmn "&#xB1;">
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_set_quotas">
<title>Set quotas</title>
<para>To prevent system capacities from being exhausted without
notification, you can set up quotas. Quotas are operational limits.
For example, the number of gigabytes allowed per tenant can be
controlled so that cloud resources are optimized.
Quotas are currently enforced at the tenant (or project) level,
rather than by user.
</para>
<para>Using the command-line interface, you can manage quotas for the OpenStack Compute Service and the Block Storage Service.
</para>
<para>Typically, default values are changed because a tenant requires
more than 10 volumes, or more than 1TB on a Compute node.
</para>
<note><para>To view all tenants, run:
<screen><prompt>$</prompt> <userinput>keystone tenant-list</userinput>
<computeroutput>+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| a981642d22c94e159a4a6540f70f9f8d | admin | True |
| 934b662357674c7b9f5e4ec6ded4d0e7 | tenant01 | True |
| 7bc1dbfd7d284ec4a856ea1eb82dca80 | tenant02 | True |
| 9c554aaef7804ba49e1b21cbd97d218a | services | True |
+----------------------------------+----------+---------+</computeroutput></screen>
</para></note>
<xi:include href="section_cli_set_compute_quotas.xml"/>
<xi:include href="section_cli_set_block_storage_quotas.xml"/>
</section>

View File

@ -1,760 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="section_cli_swift">
<title>swift</title>
<para>Use the following OpenStack swift client commands to perform
API operations:</para>
<section xml:id="swift_summary_limits">
<title>Limits</title>
<cmdsynopsis>
<command>add</command>
<group>
<arg>test</arg>
<option>test2</option>
</group>
</cmdsynopsis>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_servers">
<title>Servers</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="swift_summary_serveractions">
<title>Server Actions</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Reboot server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift reboot &lt;server&gt; --hard</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
<para>Omit the <option>--hard</option> option to
perform a soft reboot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rebuild &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Resize server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize [--poll] &lt;server&gt; &lt;flavor&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name and
<parameter>flavor</parameter> is the ID or
name of the new flavor.</para>
<para>Specify the optional <option>--poll</option>
option to block while the instance resizes so
that progress can be reported.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Confirm resize</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize-confirm &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Revert resize
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize-revert &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Unrescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift unrescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create image from
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-create &lt;server&gt; &lt;name&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name, and
<parameter>name</parameter> is the name of
the snapshot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server from
image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rebuild &lt;server&gt; &lt;image&gt; --rebuild_password &lt;rebuild_password&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>server</parameter>. The
server ID or name.</para>
</listitem>
<listitem>
<para><parameter>image</parameter>. The
image ID.</para>
</listitem>
<listitem>
<para><parameter>rebuild_password</parameter>.
Optional. The password for the rebuilt
image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="swift_summary_flavors">
<title>Flavors</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_images">
<title>Images</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_metadata">
<title>Metadata</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift meta &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-meta &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
image ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_networks">
<title>Networks</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List networks</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show network
information</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-show &lt;network&gt;</programlisting>
</para>
<itemizedlist>
<title>Argument</title>
<listitem>
<para><parameter>network</parameter>. The
UUID or label of the network.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>swift network-create &lt;network_label&gt; &lt;cidr&gt;</programlisting>
</para>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_label</parameter>.
The network label, such as
<literal>my_new_network</literal>,
</para>
</listitem>
<listitem>
<para><parameter>cidr</parameter>. The IP
block from which to allocate, such as
<literal>172.16.0.0/24</literal> or
<literal>2001:DB8::/64</literal>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Provision server with
isolated network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic [net-id=&lt;private-net-uuid&gt; [--no-public] [--no-service-net]</programlisting>
</para>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Positional arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
</itemizedlist>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Optional arguments</title>
<listitem>
<para><option>--no-service-net</option>.
Optional. Opts out of attaching
ServiceNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching
ServiceNet to their server.</para>
</note>
<para>For example, to opt out of attaching
ServiceNet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-service-net</programlisting></para>
</listitem>
<listitem>
<para><option>--no-public</option>.
Optional. Opts out of attaching
PublicNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching PublicNet
to their server.</para>
</note>
<para>For example, to opt out of attaching
the Internet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-public</programlisting></para>
</listitem>
<listitem>
<para><option>--disk-config</option>
{<literal>auto</literal>|<literal>manual</literal>}.
Specifies whether to expand the
primary partition to fill the disk.
This value overrides the value
inherited from the image.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>.
Required. The flavor ID for the new
server. To get a list of flavors,
issue <command>swift
flavor-list</command>.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>.
Required. The image ID for the new
server. To get a list of images, issue
<command>swift
image-list</command>.</para>
</listitem>
<listitem>
<para><option>--meta</option>
<option>key</option><command>=</command><parameter>value</parameter>.
Arbitrary key and value metadata that
is written to
<filename>/meta.js</filename> on
the new server. Can be specified
multiple times.</para>
</listitem>
<listitem>
<para><option>--file</option>
<parameter>dst-path</parameter>=<parameter>src-path</parameter>.
Stores arbitrary files from
<parameter>src-path</parameter>
locally to <parameter>dst-
path</parameter> on the new server.
You can store up to five files.
</para>
</listitem>
<listitem>
<para><option>--key_name</option>
<parameter>key_name</parameter>. Key
name of key pair. First, create the
key pair with the
<command>keypair-add</command>
command.</para>
</listitem>
<?sbr?>
<listitem>
<para><option>--user_data</option>
<parameter>user-data</parameter>. User
data file, which is exposed by the
metadata server.</para>
</listitem>
<listitem>
<para><option>--availability_zone</option>
<parameter>availability-zone</parameter>.
The availability zone for instance
placement.</para>
</listitem>
<listitem>
<para><option>--security_groups</option>
<parameter>security_groups</parameter>.
A comma-separated list of security
group names.</para>
</listitem>
<listitem>
<para><option>--block_device_mapping</option>
<parameter>dev_name=mapping</parameter>.
Block device mapping in the format:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> dev_name=<parameter>id</parameter>:type:<parameter>size(GB)</parameter>:delete_on_terminate</programlisting></para>
</listitem>
<listitem>
<para><option>--hint</option>
<parameter>key</parameter>=<parameter>value</parameter>.
Arbitrary key and value pairs that are
sent to the scheduler for custom use.
</para>
</listitem>
<listitem>
<para><option>--nic
net-id=</option><parameter>private-net-id</parameter>,
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>.
Creates a NIC on the server. Specify
this option multiple times to create
multiple NICs. Optionally, to attach a
NIC with a specified UUID to a
network, specify the
<option>net-id</option>=<parameter>private-net-id</parameter>
parameter.</para>
<para>Optionally, specify the
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>
parameter to specify an IPv4 fixed
address for NIC.</para>
<para>If you do not specify any networks
on the <option>--nic</option>
parameter, the Internet and ServiceNet
are attached to your server.</para>
<note>
<para>ServiceNet is labeled as
<literal>private</literal> and the
Internet is labeled as
<literal>public</literal> in the
network list.</para>
</note>
<para>If you specify additional networks
through the <option>—nic</option>
parameter, these networks, in addition
to the Internet and ServiceNet, are
attached to your server.</para>
<para>You can specify the optional
<option>--no-public</option> and
<option>--no-service-net</option>
parameters to opt out of attaching the
Internet and ServiceNet to your
server.</para>
<para>Specify the
<option>--no-public</option>
parameter to opt out of attaching the
Internet to your server.</para>
<para>Specify the
<option>--no-service-net</option>
parameter to opt out of attaching
ServiceNet to your server.</para>
</listitem>
<listitem>
<para><option>--config-drive</option>
<parameter>value</parameter>. Enables
a configuration drive.</para>
</listitem>
<listitem>
<para><option>--poll</option>. Blocks
while the instance builds so progress
can be reported.</para>
</listitem>
</itemizedlist>
<para>For example, you might issue the following
command to attach a NIC to your server.
Additionally, the Internet and ServiceNet are
attached to your
server.<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot my_server_with_network --flavor 2 --image d42f821e-c2d1-4796-9f07-af5ed7912d0e --nic net-id=e65accc0-1d98-45eb-af76-ab3d31edc7d2</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete isolated
network</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-delete &lt;network_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to
delete.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_virtualints">
<title>Virtual Interfaces</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List virtual interfaces for
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-list &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance for which you
want to list virtual
interfaces.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Attach virtual interface to
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-create &lt;network_id&gt; &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to attach to the
server.</para>
</listitem>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance to which you
want to attach the virtual
interface.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete a virtual interface
and detach it from an instance</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-delete &lt;instance_id&gt; &lt;interface_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance from which you
want to remove the virtual
interface.</para>
</listitem>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to remove from
the instance.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -1,301 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="dashboard_manage_projects_users">
<title>Projects and users</title>
<?dbhtml stop-chunking?>
<para>In an OpenStack cloud, you can manage projects and users
independently from each other.</para>
<para>Projects represent different organizational units in the
cloud to which you can assign users.</para>
<para>Cloud admin users perform both project and user management
tasks.</para>
<para>During the basic system set up, the cloud operator must
define at least one project, user, and role. The operator
links the role to the user and the user to the project. Roles
define which actions users can perform.</para>
<para>As an admin user, you can create additional projects and
users as needed.</para>
<para>Learn how to add, update, and delete projects and users,
assign users to one or more projects, and change or remove the
assignment. To enable or temporarily disable a project or
user, update that project or user.</para>
<section xml:id="dashboard_projects">
<title>Create and manage projects</title>
<para>You can create, temporarily disable, enable, and delete
projects.</para>
<procedure xml:id="dashboard_create_project"
xlink:href="#dashboard_create_project"
xlink:title="create a project">
<title>To create a project</title>
<step xmlns:raxm="http://docs.rackspace.com/api/metadata">
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>In the <guilabel>CURRENT PROJECT</guilabel>
drop-down list on the <guilabel>Project</guilabel>
tab, select the <literal>admin</literal>
project.</para>
</step>
<step>
<para>On the <guilabel>Admin</guilabel> tab, click the
<guilabel>Projects</guilabel> category.</para>
</step>
<step>
<para>Click <guibutton>Create
Project</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Create Project</guilabel>
window, enter a name and description for the
project. By default, the project is enabled. See
<xref linkend="disable_project"/>. Click
<guibutton>Create Project</guibutton>.</para>
<para>The dashboard assigns an ID and shows the
project in the <guilabel>Projects</guilabel>
category.</para>
</step>
</procedure>
<procedure>
<title>To update a project</title>
<para>You can update a project to change its name or
description, and to enable or temporarily disable
it.</para>
<para>Disabling a project has the following consequences:</para>
<itemizedlist xml:id="disable_project">
<title>Consequences of disabling a project</title>
<listitem>
<para>In the dashboard, the project can no longer
be accessed from the <guilabel>CURRENT
PROJECT</guilabel> drop-down list on the
<guilabel>Project</guilabel> tab.</para>
</listitem>
<listitem>
<para>Users that are only members of the disabled
project can no longer log in.</para>
</listitem>
<listitem>
<para>It is impossible to launch new instances for
a disabled project. Instances already running
are not automatically terminated though—you
must stop them manually.</para>
</listitem>
<listitem>
<para>All data for a disabled project is kept so
that you can enable the project again at any
time.</para>
</listitem>
</itemizedlist>
<step>
<para>Select the project that you want to update.
</para>
</step>
<step>
<para>From the <guilabel>More</guilabel> drop-down
list, click <guilabel>Edit
Project</guilabel>.</para>
</step>
<step>
<para>Optionally, change the following attributes for
the project: <itemizedlist>
<listitem>
<para>Name.</para>
</listitem>
<listitem>
<para>Description.</para>
</listitem>
<listitem>
<para>To disable the project, clear the
<guilabel>Enabled</guilabel> check
box.</para>
<para>To enable the project, select the
<guilabel>Enabled</guilabel> check
box.</para>
</listitem>
</itemizedlist></para>
</step>
<step>
<para>Click <guibutton>Save</guibutton>.</para>
</step>
</procedure>
<procedure>
<title>To delete one or more projects</title>
<step>
<para>Select the projects that you want to delete.
</para>
</step>
<step>
<para>Click <guibutton>Delete Projects</guibutton> and
confirm your choice in the pop-up that
appears.</para>
<note>
<para>You cannot undo the delete action.</para>
</note>
</step>
</procedure>
</section>
<section xml:id="dashboard_users">
<title>Create and manage user accounts</title>
<para>Users are members of one or multiple projects.</para>
<para>You can add, update, and delete users. To enable or
temporarily disable a user, update that user.</para>
<para>When you create a user account, you must assign the
account to a primary project. Optionally, you can assign
the account to additional projects.</para>
<para>When you disable a user account, the user can no longer
log in, but the data is kept so that you can enable the
account again at any time.</para>
<para>Before you can delete a user account, you must remove
the user account from its primary project.</para>
<procedure>
<title>To create a user account</title>
<step xmlns:raxm="http://docs.rackspace.com/api/metadata">
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>In the <guilabel>CURRENT PROJECT</guilabel>
drop-down list on the <guilabel>Project</guilabel>
tab, select the <literal>admin</literal>
project.</para>
</step>
<step>
<para>Click the <guilabel>Users</guilabel>
category.</para>
</step>
<step>
<para>On the <guilabel>Admin</guilabel> tab, select
the <guilabel>Users</guilabel> category.</para>
</step>
<step>
<para>Click <guibutton>Create User</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Create User</guilabel> window,
enter a user name, email, and preliminary password
for the user.</para>
<para>Select a project from the <guilabel>Primary
Project</guilabel> drop-down list.</para>
<para>Choose a role for the user from the
<guilabel>Role</guilabel> drop-down list.
Default is <literal>Member</literal>.</para>
</step>
<step>
<para>Click <guibutton>Create User</guibutton> to
confirm your changes.</para>
<para>The dashboard assigns an ID and shows the user
account in the <guilabel>Users</guilabel>
category.</para>
</step>
</procedure>
<procedure>
<title>To temporarily deactivate a user account</title>
<step>
<para>Select the user, and from the Actions drop-down
list, select Disable.</para>
</step>
</procedure>
<procedure>
<title>To delete one or more users accounts</title>
<step>
<para>Activate the check boxes in front of the user
accounts that you want to delete.</para>
</step>
<step>
<para>Click Delete Users and confirm your choice in
the pop-up that appears.</para>
<para>A message on the Web page shows if the action
has been successful.</para>
<para><emphasis role="italic">NOTE: Remove User from
Primary Project</emphasis></para>
<para>If a user account cannot be deleted, it is
because it is still assigned to its primary
project.</para>
</step>
</procedure>
<procedure>
<title>To delete a user from a project</title>
<step>
<para>Edit the user data to view which Primary Project
he is assigned to.</para>
</step>
<step>
<para>Remove the user from his primary project as
described in <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#pro_adm_dash_user_assign"
>Modifying User Assignments for a
Project</link>, <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#step_adm_dash_user_remove_start"
/> to <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#step_adm_dash_user_remove_end"
/>.</para>
</step>
</procedure>
<section xml:id="dashboard_user_assignments">
<title>Modify user assignments for a project</title>
<para>When creating new users, you must assign them to a
primary project as described in <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#pro_adm_dash_user_create"
>Creating Or Deleting Users Accounts</link>. To
assign users to additional projects or to modify and
remove assignments, proceed as follows:</para>
<procedure>
<title>To modify user assignments for a
project</title>
<step>
<para>On the Admin tab, select the Projects
category.</para>
</step>
<step>
<para>Select the project for which to modify user
assignments.</para>
</step>
<step>
<para>From the Actions drop-down list for the
project, select Modify Users.</para>
<para>The Dashboard shows two lists of users:
<guilabel>Project Members</guilabel> shows the users
assigned to the current project, <guilabel>All Users</guilabel>
shows other existing users, which can be assigned to the
current project.</para>
<mediaobject>
<imageobject>
<imagedata
fileref="./figures/cloud_dash_users_list.png"
/>
</imageobject>
</mediaobject>
</step>
<step>
<para>To remove a user from the current project, click the
<guibutton>-</guibutton> button associated with the
entry for the user.</para>
</step>
</procedure>
<procedure>
<title>To assign a user to the current project</title>
<step>
<para>Click the <guibutton>+</guibutton> button associated
with the entry for the user.</para>
</step>
<step>
<para>In the window that appears, set the user's
role with which to add him to the project and
click Add. Roles define the actions that the
user is allowed to perform. Roles are
configured by the cloud operator in OpenStack
Identity (Keystone). Actions are defined per
OpenStack service in the respective
/etc/[SERVICE_CODENAME]/policy.json file, for
example in /etc/nova/policy.json for the
Compute (Nova) service. For details, see
<link
xlink:href="http://docs.openstack.org/essex/openstack-compute/install/content/keystone-concepts.html"
>http://docs.openstack.org/essex/openstack-compute/install/content/keystone-concepts.html</link>.
</para>
</step>
</procedure>
</section>
</section>
</section>

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
]>
<section xml:id="dashboard-overview"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Dashboard overview</title>
<para>After you log in, the following page appears:
<figure xml:id="dashboard_main_page_user">
<title>OpenStack dashboard &ndash;
Overview</title>
<mediaobject>
<imageobject>
<imagedata
fileref="figures/dashboard-project.png"
format="PNG" contentwidth="6in"
width="6in"/>
</imageobject>
</mediaobject>
</figure>
</para>
<para>The top-level row shows the user name that you
logged in with. You can also access
<guilabel>Settings</guilabel> or <guibutton>Sign
Out</guibutton> of the Web interface.</para>
<note>
<para>The visible tabs and functions in the dashboard
depend on the access permissions of the user that
is logged in. They are defined by roles.</para>
</note>
<para>If you are logged in as an end user rather than an
admin user, the main screen shows only the
<guilabel>Project</guilabel> tab.</para>
<para>This tab shows details for the projects, or tenants,
of which you are a member.</para>
<para>Select a project from the drop-down list on the
left-hand side to access the following
categories:</para>
<variablelist wordsize="10">
<varlistentry>
<term><guilabel>Overview</guilabel></term>
<listitem>
<para>Shows basic reports on the project.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Instances</guilabel></term>
<listitem>
<para>Lists instances and volumes created by
users of the project.</para>
<para>From here, you can stop, pause, or
reboot any instances or connect to them
through virtual network computing (VNC).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Volumes</guilabel></term>
<listitem>
<para>Lists volumes created by users of the
project.</para>
<para>From here, you can create or delete
volumes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Images &amp;
Snapshots</guilabel></term>
<listitem>
<para>Lists images and snapshots created by
users of the project, plus any images that
are publicly available. Includes volume
snapshots. From here, you can create and
delete images and snapshots, and launch
instances from images and snapshots.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Access &amp;
Security</guilabel></term>
<listitem>
<para>On the <guilabel>Security
Groups</guilabel> tab, you can list,
create, and delete security groups and
edit rules for security groups.</para>
<para>On the <guilabel>Keypairs</guilabel>
tab, you can list, create, and import
keypairs, and delete keypairs.</para>
<para>On the <guilabel>Floating IPs</guilabel>
tab, you can allocate an IP address to or
release it from a project.</para>
<para>On the <guilabel>API Access</guilabel>
tab, you can list the API
endpoints.</para>
</listitem>
</varlistentry>
</variablelist>
</section>

View File

@ -193,10 +193,10 @@ pipeline = [...] json_body stats_reporting ec2_extension [...] admin_service</co
</itemizedlist>
<para>The middleware passes data to the service as
headers.</para>
<xi:include href="../common/section_cli_keystone_credentials.xml"/>
<xi:include href="../common/section_cli_keystone_apiv3.xml"/>
<xi:include href="../common/section_cli_keystone_example_usage.xml"/>
<xi:include href="../common/section_cli_keystone_users_tenants_roles.xml"/>
<xi:include href="../common/section_keystone_cli_credentials.xml"/>
<xi:include href="../common/section_keystone_cli_apiv3.xml"/>
<xi:include href="../common/section_keystone_cli_example_usage.xml"/>
<xi:include href="../common/section_keystone_cli_users_tenants_roles.xml"/>
</section>
<section xml:id="setting-up-middleware">
<title>Set Up Middleware</title>
@ -457,7 +457,7 @@ role_allow_update = True
role_allow_delete = True</computeroutput>
</screen>
<para>There are some configuration options for filtering
users, tenants and roles, if the backend provides too
users, tenants and roles, if the backend provides too
much output, the configuration looks as follows:</para>
<screen><computeroutput>[ldap]
user_filter = (memberof=CN=openstack-users,OU=workgroups,DC=openstack,DC=com)

View File

@ -14,7 +14,6 @@
OpenStack Image Store. There are basic configuration decisions to make, and the <link
xlink:href="http://docs.openstack.org/trunk/openstack-compute/install/content/">OpenStack
Install Guide</link> covers a few different architectures for certain use cases.</para>
<!--status: right place-->
<section xml:id="configuring-openstack-compute-basics">
<?dbhtml stop-chunking?>
@ -241,7 +240,7 @@ xenapi_remap_vbd_dev=true</programlisting>
<xi:include href="compute-configure-db.xml"/>
<!-- Oslo rpc mechanism (such as, Rabbit, Qpid, ZeroMQ) -->
<xi:include href="../common/section_rpc.xml"/>
<xi:include href="../common/section_config-compute-api.xml"></xi:include>
<xi:include href="../common/section_compute_config-api.xml"></xi:include>
<xi:include href="../common/section_compute-configure-ec2.xml"/>
<xi:include href="../common/section_compute-configure-quotas.xml"/>
<xi:include href="../common/section_compute-configure-console.xml"/>

View File

@ -1,9 +1,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openstack.docs</groupId>
<artifactId>openstack-guide</artifactId>
<version>1.0.0-SNAPSHOT</version>
@ -25,7 +23,7 @@
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.9.2</version>
<version>1.9.2</version>
<executions>
<execution>
<id>generate-webhelp</id>

View File

@ -168,67 +168,65 @@ catalog.$Region.network.internalURL = http://10.211.55.17:9696
<systemitem class="service">nova-compute</systemitem> and
<systemitem class="service">nova-api</systemitem> instance).
</para>
<table frame='all'><title>nova.conf API and Credential Settings</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="20%"/>
<colspec colname='c2' colwidth="80%"/>
<table rules="all"><caption>nova.conf API and Credential Settings</caption>
<col width="20%"/>
<col width="80%"/>
<thead>
<row>
<entry>Item</entry>
<entry>Configuration</entry>
</row>
<tr>
<th>Item</th>
<th>Configuration</th>
</tr>
</thead>
<tbody>
<row>
<entry><para><literal>network_api_class</literal></para></entry>
<entry><para>Modify from the default to
<tr>
<td><para><literal>network_api_class</literal></para></td>
<td><para>Modify from the default to
<literal>nova.network.neutronv2.api.API</literal>, to indicate
that OpenStack Networking should be used rather than the
traditional
<systemitem class="service">nova-network </systemitem> networking
model.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_url</literal></para></entry>
<entry><para>Update to the hostname/IP and port of the
</para></td>
</tr>
<tr>
<td><para><literal>neutron_url</literal></para></td>
<td><para>Update to the hostname/IP and port of the
<systemitem class="service">neutron-server</systemitem>
instance for this deployment.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_auth_strategy</literal></para></entry>
<entry><para>Keep the default <literal>keystone</literal> value
</para></td>
</tr>
<tr>
<td><para><literal>neutron_auth_strategy</literal></para></td>
<td><para>Keep the default <literal>keystone</literal> value
for all production deployments.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_admin_tenant_name</literal></para></entry>
<entry><para>Update to the name of the service tenant created
</para></td>
</tr>
<tr>
<td><para><literal>neutron_admin_tenant_name</literal></para></td>
<td><para>Update to the name of the service tenant created
in the above section on OpenStack Identity configuration.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_admin_username</literal></para></entry>
<entry><para>Update to the name of the user created in the above
</para></td>
</tr>
<tr>
<td><para><literal>neutron_admin_username</literal></para></td>
<td><para>Update to the name of the user created in the above
section on OpenStack Identity configuration.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_admin_password</literal></para></entry>
<entry><para>Update to the password of the user created in the above
</para></td>
</tr>
<tr>
<td><para><literal>neutron_admin_password</literal></para></td>
<td><para>Update to the password of the user created in the above
section on OpenStack Identity configuration.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_admin_auth_url</literal></para></entry>
<entry><para>Update to the OpenStack Identity server IP and port.
</para></td>
</tr>
<tr>
<td><para><literal>neutron_admin_auth_url</literal></para></td>
<td><para>Update to the OpenStack Identity server IP and port.
This is the Identity (keystone) admin API server IP and port value,
and not the Identity service API IP and port.
</para></entry>
</row>
</para></td>
</tr>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="nova_config_security_groups">
@ -243,31 +241,29 @@ catalog.$Region.network.internalURL = http://10.211.55.17:9696
<para>To proxy security groups to OpenStack Networking, use the following configuration
values in <filename>nova.conf</filename>:
</para>
<table frame='all'><title>nova.conf Security Group Settings</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="20%"/>
<colspec colname='c2' colwidth="80%"/>
<table rules="all"><caption>nova.conf Security Group Settings</caption>
<col width="20%"/>
<col width="80%"/>
<thead>
<row>
<entry>Item</entry>
<entry>Configuration</entry>
</row>
<tr>
<td>Item</td>
<td>Configuration</td>
</tr>
</thead>
<tbody>
<row>
<entry><para><literal>firewall_driver</literal></para></entry>
<entry><para>Update to <literal>nova.virt.firewall.NoopFirewallDriver</literal>, so
<tr>
<td><para><literal>firewall_driver</literal></para></td>
<td><para>Update to <literal>nova.virt.firewall.NoopFirewallDriver</literal>, so
that <systemitem class="service">nova-compute</systemitem> does not perform
iptables-based filtering itself.</para></entry>
</row>
<row>
<entry><para><literal>security_group_api</literal></para></entry>
<entry><para>Update to <literal>neutron</literal>, so that all security
iptables-based filtering itself.</para></td>
</tr>
<tr>
<td><para><literal>security_group_api</literal></para></td>
<td><para>Update to <literal>neutron</literal>, so that all security
group requests are proxied to the OpenStack Network Service.
</para></entry>
</row>
</para></td>
</tr>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="nova_config_metadata">
@ -282,30 +278,29 @@ catalog.$Region.network.internalURL = http://10.211.55.17:9696
<para>To enable proxying the requests, you must update the
following fields in <filename>nova.conf</filename>.
</para>
<table frame='all'><title>nova.conf Metadata Settings</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="20%"/>
<colspec colname='c2' colwidth="80%"/>
<table rules="all"><caption>nova.conf Metadata Settings</caption>
<col width="20%"/>
<col width="80%"/>
<thead>
<row>
<entry>Item</entry>
<entry>Configuration</entry>
</row>
<tr>
<td>Item</td>
<td>Configuration</td>
</tr>
</thead>
<tbody>
<row>
<entry><para><literal>service_neutron_metadata_proxy</literal>
</para></entry>
<entry><para>Update to <literal>true</literal>, otherwise
<tr>
<td><para><literal>service_neutron_metadata_proxy</literal>
</para></td>
<td><para>Update to <literal>true</literal>, otherwise
<systemitem class="service">nova-api</systemitem> will not
properly respond to requests from the
<systemitem class="service">neutron-metadata-agent</systemitem>.
</para></entry>
</row>
<row>
<entry><para><literal>neutron_metadata_proxy_shared_secret</literal>
</para></entry>
<entry><para>Update to a string "password" value. You must also
</para></td>
</tr>
<tr>
<td><para><literal>neutron_metadata_proxy_shared_secret</literal>
</para></td>
<td><para>Update to a string "password" value. You must also
configure the same value in the
<filename>metadata_agent.ini</filename> file, to authenticate
requests made for metadata.
@ -314,10 +309,9 @@ catalog.$Region.network.internalURL = http://10.211.55.17:9696
metadata to function, but will not be secure if any non-trusted
entities have access to the metadata APIs exposed by
<systemitem class="service">nova-api</systemitem>.
</para></entry>
</row>
</para></td>
</tr>
</tbody>
</tgroup>
</table>
<note><para>As a precaution, even when using
<literal>neutron_metadata_proxy_shared_secret</literal>, it is
@ -377,38 +371,36 @@ catalog.$Region.network.internalURL = http://10.211.55.17:9696
<screen><prompt>$</prompt> <userinput>libvirtd version</userinput></screen>
<para>In the <filename>nova.conf</filename> file, update the
<literal>libvirt_vif_driver</literal> value, depending on your
libvirt version.
<table frame='all'><title>nova.conf libvirt Settings</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="20%"/>
<colspec colname='c2' colwidth="80%"/>
libvirt version.</para>
<table rules="all"><caption>nova.conf libvirt Settings</caption>
<col width="20%"/>
<col width="80%"/>
<thead>
<row>
<entry>Version</entry>
<entry>Required Value</entry>
</row>
<tr>
<th>Version</th>
<th>Required Value</th>
</tr>
</thead>
<tbody>
<row>
<entry><para>libvirt (version &gt;= 0.9.11)</para></entry>
<entry><para><literal>nova.virt.libvirt.vif.LibvirtOpenVswitchVirtualPortDriver</literal></para></entry>
</row>
<row>
<entry><para>libvirt (version &lt; 0.9.11)</para></entry>
<entry><para><literal>nova.virt.libvirt.vif.LibvirtOpenVswitchDriver</literal></para></entry>
</row>
<row>
<entry><para>ESX</para></entry>
<entry><para>No vif-plugging configuration is required</para></entry>
</row>
<row>
<entry><para>XenServer</para></entry>
<entry><para><literal>nova.virt.xenapi.vif.XenAPIOpenVswitchDriver</literal></para></entry>
</row>
<tr>
<td><para>libvirt (version &gt;= 0.9.11)</para></td>
<td><para><literal>nova.virt.libvirt.vif.LibvirtOpenVswitchVirtualPortDriver</literal></para></td>
</tr>
<tr>
<td><para>libvirt (version &lt; 0.9.11)</para></td>
<td><para><literal>nova.virt.libvirt.vif.LibvirtOpenVswitchDriver</literal></para></td>
</tr>
<tr>
<td><para>ESX</para></td>
<td><para>No vif-plugging configuration is required</para></td>
</tr>
<tr>
<td><para>XenServer</para></td>
<td><para><literal>nova.virt.xenapi.vif.XenAPIOpenVswitchDriver</literal></para></td>
</tr>
</tbody>
</tgroup>
</table>
For example:
<para>For example:
<literal>libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver</literal>
</para>
<note><para>When using libvirt &lt; 0.9.11, one must also

View File

@ -22,7 +22,7 @@
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.9.2</version>
<executions>
<!-- Configuration for OpenStack Admin User Guide -->
<!-- Configuration for OpenStack End User Guide -->
<execution>
<id>os-adminuserguide</id>
<goals>
@ -30,6 +30,7 @@
</goals>
<phase>generate-sources</phase>
<configuration>
<profileOs>adminuser</profileOs>
<includes> bk-admin-user-guide.xml</includes>
<generateToc>
appendix toc
@ -44,10 +45,6 @@
qandaset toc
reference toc,title
set toc,title </generateToc>
<profileOs>adminuser</profileOs>
<chapterAutolabel>0</chapterAutolabel>
<security>external</security>
<tocSectionDepth>1</tocSectionDepth>
<targetDirectory>target/docbkx/webhelp/</targetDirectory>
<webhelpDirname>admin-user-guide</webhelpDirname>
<pdfFilenameBase>admin-user-guide-${release.path.name}</pdfFilenameBase>
@ -56,6 +53,11 @@
</executions>
<configuration>
<profileOs>adminuser</profileOs>
<chapterAutolabel>1</chapterAutolabel>
<appendixAutolabel>1</appendixAutolabel>
<sectionAutolabel>0</sectionAutolabel>
<tocSectionDepth>1</tocSectionDepth>
<formalProcedures>0</formalProcedures>
<highlightSource>false</highlightSource>
<xincludeSupported>true</xincludeSupported>
<showXslMessages>true</showXslMessages>

View File

@ -8,7 +8,7 @@
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="os-user-guide">
xml:id="os-admin-user-guide">
<title>OpenStack Admin User Guide</title>
<titleabbrev>Admin User Guide</titleabbrev>
<info>
@ -25,7 +25,7 @@
<year>2013</year>
<holder>OpenStack Foundation</holder>
</copyright>
<releaseinfo>Grizzly, 2013.1</releaseinfo>
<releaseinfo>master</releaseinfo>
<productname>OpenStack</productname>
<pubdate/>
<legalnotice role="cc-by">
@ -38,27 +38,25 @@
<para>OpenStack is an open source cloud computing platform
for public and private clouds. A series of
interrelated projects deliver a cloud infrastructure
solution. This guide helps cloud administrators
perform daily administrative tasks with the OpenStack
dashboard or OpenStack client commands. Tasks include
management of projects, users, tenants, services,
images, flavors, and quotas.</para>
solution. This guide shows OpenStack admin users how to
create and manage resources in an OpenStack cloud with
the OpenStack dashboard or OpenStack client
commands.</para>
</abstract>
<revhistory>
<revision>
<date>2013-08-08</date>
<date>2013-08-31</date>
<revdescription>
<itemizedlist>
<listitem>
<para>First edition of this
document.</para>
<para>First edition of this document.</para>
</listitem>
</itemizedlist>
</revdescription>
</revision>
</revhistory>
</info>
<xi:include href="ch_overview.xml"/>
<xi:include href="../../openstack-user/src/ch_overview.xml"/>
<xi:include href="ch_dashboard.xml"/>
<xi:include href="ch_cli.xml"/>
<xi:include href="../../common/app_command_reference.xml"/>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter [
]>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:raxm="http://docs.rackspace.com/api/metadata" version="5.0"
xml:id="admin_ch_cli">
<info>
<title>OpenStack command-line clients</title>
</info>
<xi:include
href="../../openstack-user/src/section_cli_overview.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../openstack-user/src/section_cli_install.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../openstack-user/src/section_cli_version.xml"/>
<?hard-pagebreak?>
<xi:include href="../../openstack-user/src/section_cli_openrc.xml"/>
<?hard-pagebreak?>
<xi:include href="section_keystone_cli_manage_projects_users.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../common/section_keystone_cli_users_tenants_roles.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../common/section_glance_cli_manage_images.xml"/>
<?hard-pagebreak?>
<xi:include href="section_nova_cli_manage_flavors.xml"/>
<?hard-pagebreak?>
<xi:include href="section_keystone_cli_set_quotas.xml"/>
</chapter>

View File

@ -6,8 +6,9 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:raxm="http://docs.rackspace.com/api/metadata" version="5.0"
xml:id="ch_dashboard">
<title>OpenStack dashboard</title>
<?dbhtml stop-chunking?>
<info>
<title>OpenStack dashboard</title>
</info>
<para>As a cloud administrative user, the OpenStack dashboard lets
you create and manage projects and users, images, and flavors,
and set quotas.</para>
@ -20,4 +21,4 @@
<xi:include href="section_dashboard_manage_flavors.xml"/>
<?hard-pagebreak?>
<xi:include href="section_dashboard_set_quotas.xml"/>
</chapter>
</chapter>

View File

@ -7,9 +7,8 @@
<!ENTITY plusmn "&#xB1;">
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_set_compute_quotas">
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="cli_set_compute_quotas">
<title>Set Compute Service Quotas</title>
<para>As an administrative user, you can update the Compute Service quotas
for a tenant, as well as update the quota defaults for a new tenant.
@ -242,7 +241,7 @@
</tbody>
</table>
<section xml:id="cli_set_compute_quotas_procedure">
<title>View and update Compute quotas for a tenant (project)</title>
<title>View and update quotas for a tenant (project)</title>
<para>As an administrative user, you can use the <command>nova quota-*</command>
commands, which are provided by the <literal>python-novaclient</literal>
package, to view and update tenant quotas.</para>
@ -272,17 +271,18 @@
+-----------------------------+-------+</computeroutput></screen>
</step>
<step>
<para>Update a default value for a new tenant, as follows:
</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default <replaceable>key</replaceable> <replaceable>value</replaceable></userinput></screen>
<para>For example:
</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default instances 15</userinput></screen>
<para>To update a default value for a new tenant, update the
<literal>default</literal> property in the
<filename>/etc/nova/nova.conf</filename> file, as
follows:</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default <replaceable>key</replaceable> <replaceable>value</replaceable></userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>nova quota-class-update default instances 15</userinput></screen>
</step>
</procedure>
<procedure>
<title>To view quota values for a tenant (project)</title>
<step><para>Place the tenant ID in a useable variable, as follows:</para>
<step><para>Place the tenant ID in a usable variable, as follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>tenantName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
@ -344,4 +344,4 @@
</step>
</procedure>
</section>
</section>
</section>

View File

@ -15,4 +15,4 @@
xlink:href="http://docs.openstack.org/trunk/openstack-image/content/"
><citetitle>Virtual Machine Image
Guide</citetitle></link>.</para>
</section>
</section>

View File

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="dashboard_manage_projects_users">
<title>Projects and users</title>
<?dbhtml stop-chunking?>
<para>In an OpenStack cloud, you can manage projects and users
independently from each other.</para>
<para>Projects represent different organizational units in the
cloud to which you can assign users.</para>
<para>Cloud admin users perform both project and user management
tasks.</para>
<para>During the basic system set up, the cloud operator must
define at least one project, user, and role. The operator
links the role to the user and the user to the project. Roles
define which actions users can perform.</para>
<para>As an admin user, you can create additional projects and
users as needed.</para>
<para>Learn how to add, update, and delete projects and users,
assign users to one or more projects, and change or remove the
assignment. To enable or temporarily disable a project or
user, update that project or user.</para>
<section xml:id="dashboard_projects">
<title>Create and manage projects</title>
<para>You can create, temporarily disable, enable, and delete
projects.</para>
<section xml:id="dashboard_create_project">
<title>Create a project</title>
<procedure>
<step
xmlns:raxm="http://docs.rackspace.com/api/metadata">
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>In the <guilabel>CURRENT PROJECT</guilabel>
drop-down list on the
<guilabel>Project</guilabel> tab, select
the <literal>admin</literal> project.</para>
</step>
<step>
<para>On the <guilabel>Admin</guilabel> tab, click
the <guilabel>Projects</guilabel>
category.</para>
</step>
<step>
<para>Click <guibutton>Create
Project</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Create Project</guilabel>
window, enter a name and description for the
project. By default, the project is enabled.
See <xref linkend="disable_project"/>. Click
<guibutton>Create
Project</guibutton>.</para>
<para>The dashboard assigns an ID and shows the
project in the <guilabel>Projects</guilabel>
category.</para>
</step>
</procedure>
</section>
<section xml:id="dashboard_update_project">
<title>Update a project</title>
<procedure>
<para>You can update a project to change its name or
description, and to enable or temporarily disable
it.</para>
<para>Disabling a project has the following
consequences:</para>
<itemizedlist xml:id="disable_project">
<title>Consequences of disabling a project</title>
<listitem>
<para>In the dashboard, the project can no
longer be accessed from the
<guilabel>CURRENT PROJECT</guilabel>
drop-down list on the
<guilabel>Project</guilabel>
tab.</para>
</listitem>
<listitem>
<para>Users that are only members of the
disabled project can no longer log
in.</para>
</listitem>
<listitem>
<para>It is impossible to launch new instances
for a disabled project. Instances already
running are not automatically terminated
though—you must stop them manually.</para>
</listitem>
<listitem>
<para>All data for a disabled project is kept
so that you can enable the project again
at any time.</para>
</listitem>
</itemizedlist>
<step>
<para>Select the project that you want to update.
</para>
</step>
<step>
<para>From the <guilabel>More</guilabel> drop-down
list, click <guilabel>Edit
Project</guilabel>.</para>
</step>
<step>
<para>Optionally, change the following attributes
for the project: <itemizedlist>
<listitem>
<para>Name.</para>
</listitem>
<listitem>
<para>Description.</para>
</listitem>
<listitem>
<para>To disable the project, clear
the <guilabel>Enabled</guilabel>
check box.</para>
<para>To enable the project, select
the <guilabel>Enabled</guilabel>
check box.</para>
</listitem>
</itemizedlist></para>
</step>
<step>
<para>Click <guibutton>Save</guibutton>.</para>
</step>
</procedure>
</section>
<section xml:id="dashboard_delete_project">
<title>Delete one or more projects</title>
<procedure>
<step>
<para>Select the projects that you want to delete.
</para>
</step>
<step>
<para>Click <guibutton>Delete Projects</guibutton>
and confirm your choice in the pop-up that
appears.</para>
<note>
<para>You cannot undo the delete
action.</para>
</note>
</step>
</procedure>
</section>
</section>
<section xml:id="dashboard_users">
<title>Create and manage user accounts</title>
<para>Users are members of one or multiple projects.</para>
<para>You can add, update, and delete users. To enable or
temporarily disable a user, update that user.</para>
<para>When you create a user account, you must assign the
account to a primary project. Optionally, you can assign
the account to additional projects.</para>
<para>When you disable a user account, the user can no longer
log in, but the data is kept so that you can enable the
account again at any time.</para>
<para>Before you can delete a user account, you must remove
the user account from its primary project.</para>
<section xml:id="dashboard_create_user">
<title>Create a user account</title>
<procedure>
<step
xmlns:raxm="http://docs.rackspace.com/api/metadata">
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>In the <guilabel>CURRENT PROJECT</guilabel>
drop-down list on the
<guilabel>Project</guilabel> tab, select
the <literal>admin</literal> project.</para>
</step>
<step>
<para>Click the <guilabel>Users</guilabel>
category.</para>
</step>
<step>
<para>On the <guilabel>Admin</guilabel> tab,
select the <guilabel>Users</guilabel>
category.</para>
</step>
<step>
<para>Click <guibutton>Create
User</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Create User</guilabel>
window, enter a user name, email, and
preliminary password for the user.</para>
<para>Select a project from the <guilabel>Primary
Project</guilabel> drop-down list.</para>
<para>Choose a role for the user from the
<guilabel>Role</guilabel> drop-down list.
Default is <literal>Member</literal>.</para>
</step>
<step>
<para>Click <guibutton>Create User</guibutton> to
confirm your changes.</para>
<para>The dashboard assigns an ID and shows the
user account in the <guilabel>Users</guilabel>
category.</para>
</step>
</procedure>
</section>
<section xml:id="dashboard_deactivate_delete_user">
<title>Disable or delete user accounts</title>
<procedure>
<step>
<para>To temporarily deactivate a user account,
select the user, and from the Actions
drop-down list, select Disable.</para>
</step>
<step>
<para>To delete one or more users accounts,
activate the check boxes in front of the user
accounts that you want to delete.</para>
</step>
<step>
<para>Click Delete Users and confirm your choice
in the pop-up that appears.</para>
<para>A message on the Web page shows if the
action has been successful.</para>
<para><emphasis role="italic">NOTE: Remove User
from Primary Project</emphasis></para>
<para>If a user account cannot be deleted, it is
because it is still assigned to its primary
project.</para>
</step>
<step>
<para>To delete a user from a project, edit the
user data to view to which Primary Project the
user is assigned.</para>
</step>
<step>
<para>Remove the user from his primary project as
described in <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#pro_adm_dash_user_assign"
>Modifying User Assignments for a
Project</link>, <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#step_adm_dash_user_remove_start"
/> to <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#step_adm_dash_user_remove_end"
/>.</para>
</step>
</procedure>
</section>
<section xml:id="dashboard_user_assignments">
<title>Modify user assignments for a project</title>
<para>When creating new users, you must assign them to a
primary project as described in <link
xlink:href="https://www.suse.com/documentation/suse_cloud10/book_cloud_admin/data/sec_adm_dash_projects_users.html#pro_adm_dash_user_create"
>Creating Or Deleting Users Accounts</link>. To
assign users to additional projects or to modify and
remove assignments, proceed as follows:</para>
<procedure>
<title>To modify user assignments for a
project</title>
<step>
<para>On the Admin tab, select the Projects
category.</para>
</step>
<step>
<para>Select the project for which to modify user
assignments.</para>
</step>
<step>
<para>From the Actions drop-down list for the
project, select Modify Users.</para>
<para>The Dashboard shows two lists of users:
<guilabel>Project Members</guilabel> shows
the users assigned to the current project,
<guilabel>All Users</guilabel> shows other
existing users, which can be assigned to the
current project.</para>
<mediaobject>
<imageobject>
<imagedata
fileref="./figures/cloud_dash_users_list.png"
/>
</imageobject>
</mediaobject>
</step>
<step>
<para>To remove a user from the current project,
click the <guibutton>-</guibutton> button
associated with the entry for the user.</para>
</step>
</procedure>
<procedure>
<title>To assign a user to the current project</title>
<step>
<para>Click the <guibutton>+</guibutton> button
associated with the entry for the user.</para>
</step>
<step>
<para>In the window that appears, set the user's
role with which to add him to the project and
click Add. Roles define the actions that the
user is allowed to perform. Roles are
configured by the cloud operator in OpenStack
Identity (Keystone). Actions are defined per
OpenStack service in the respective
/etc/[SERVICE_CODENAME]/policy.json file, for
example in /etc/nova/policy.json for the
Compute (Nova) service. For details, see <link
xlink:href="http://docs.openstack.org/essex/openstack-compute/install/content/keystone-concepts.html"
>http://docs.openstack.org/essex/openstack-compute/install/content/keystone-concepts.html</link>.
</para>
</step>
</procedure>
</section>
</section>
</section>

View File

@ -53,9 +53,9 @@
<title>To temporarily disable a project</title>
<step>
<screen><prompt>$</prompt> <userinput>keystone tenant-update PROJECT_ID --enabled false</userinput></screen>
<para>For the details of the impact, see <xref
<!-- <para>For the details of the impact, see <xref
linkend="dashboard_manage_projects_users"/>.
</para>
</para>-->
</step>
</procedure>
<procedure>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!ENTITY plusmn "&#xB1;">
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_set_quotas">
<title>Set quotas</title>
<para>To prevent system capacities from being exhausted without
notification, you can set up quotas. Quotas are operational
limits. For example, the number of gigabytes allowed per tenant
can be controlled so that cloud resources are optimized. Quotas
are currently enforced at the tenant (or project) level, rather
than by user. </para>
<para>Using the command-line interface, you can manage quotas for
the OpenStack Compute Service and the Block Storage Service. </para>
<para>Typically, default values are changed because a tenant
requires more than 10 volumes, or more than 1TB on a Compute node. </para>
<note>
<para>To view all tenants, run:
<screen><prompt>$</prompt> <userinput>keystone tenant-list</userinput>
<computeroutput>+----------------------------------+----------+---------+
| id | name | enabled |
+----------------------------------+----------+---------+
| a981642d22c94e159a4a6540f70f9f8d | admin | True |
| 934b662357674c7b9f5e4ec6ded4d0e7 | tenant01 | True |
| 7bc1dbfd7d284ec4a856ea1eb82dca80 | tenant02 | True |
| 9c554aaef7804ba49e1b21cbd97d218a | services | True |
+----------------------------------+----------+---------+</computeroutput></screen>
</para>
</note>
<xi:include href="section_cli_set_compute_quotas.xml"/>
<section xml:id="cli_set_block_storage_quotas">
<title>Set Block Storage quotas</title>
<para>As an administrative user, you can update the Block Storage
Service quotas for a tenant, as well as update the quota
defaults for a new tenant. </para>
<para>
<table rules="all">
<caption>Block Storage Quota Descriptions</caption>
<col width="20%"/>
<col width="80%"/>
<thead>
<tr>
<td> Property Name </td>
<td> Description </td>
</tr>
</thead>
<tbody>
<tr>
<td>
<para> gigabytes </para>
</td>
<td>
<para> Number of volume gigabytes allowed per tenant.
</para>
</td>
</tr>
<tr>
<td>
<para> snapshots </para>
</td>
<td>
<para> Number of Block Storage snapshots allowed per
tenant. </para>
</td>
</tr>
<tr>
<td>
<para> volumes </para>
</td>
<td>
<para> Number of Block Storage volumes allowed per
tenant. </para>
</td>
</tr>
</tbody>
</table>
</para>
<section xml:id="cli_set_block_storage_quotas_procedure">
<title>View and update Block Storage quotas for a tenant
(project)</title>
<para>As an administrative user, you can use the <command>cinder
quota-*</command> commands, which are provided by the
<literal>python-cinderclient</literal> package, to view and
update tenant quotas.</para>
<procedure>
<title>To view and update default Block Storage quota
values</title>
<step>
<para>List all default quotas for all tenants, as
follows:</para>
<screen><prompt>$</prompt> <userinput>cinder quota-defaults</userinput></screen>
<para>For example:</para>
<screen><prompt>$</prompt> <userinput>cinder quota-defaults</userinput>
<computeroutput>+-----------+-------+
| Property | Value |
+-----------+-------+
| gigabytes | 1000 |
| snapshots | 10 |
| volumes | 10 |
+-----------+-------+</computeroutput></screen>
</step>
<step>
<para>To update a default value for a new tenant, update the
property in the
<filename>/etc/cinder/cinder.conf</filename> file.
</para>
</step>
</procedure>
<procedure>
<title>To view Block Storage quotas for a tenant</title>
<step>
<para>View quotas for the tenant, as follows:</para>
<screen><prompt>#</prompt> <userinput>cinder quota-show <replaceable>tenantName</replaceable></userinput></screen>
<para>For example:</para>
<screen><prompt>#</prompt> <userinput>cinder quota-show tenant01</userinput>
<computeroutput>+-----------+-------+
| Property | Value |
+-----------+-------+
| gigabytes | 1000 |
| snapshots | 10 |
| volumes | 10 |
+-----------+-------+</computeroutput></screen>
</step>
</procedure>
<procedure>
<title>To update Compute service quotas</title>
<step>
<para>Place the tenant ID in a usable variable, as
follows:</para>
<screen><prompt>$</prompt> <userinput>tenant=$(keystone tenant-list | awk '/<replaceable>tenantName</replaceable>/ {print $2}')</userinput></screen>
</step>
<step>
<para>Update a particular quota value, as follows:</para>
<screen><prompt>#</prompt> <userinput>cinder quota-update --<replaceable>quotaName</replaceable> <replaceable>NewValue</replaceable> <replaceable>tenantID</replaceable></userinput></screen>
<para>For example:</para>
<screen><prompt>#</prompt> <userinput>cinder quota-update --volumes 15 $tenant</userinput>
<prompt>#</prompt> <userinput>cinder quota-show tenant01</userinput>
<computeroutput>+-----------+-------+
| Property | Value |
+-----------+-------+
| gigabytes | 1000 |
| snapshots | 10 |
| volumes | 15 |
+-----------+-------+</computeroutput></screen>
</step>
</procedure>
</section>
</section>
</section>

View File

@ -20,7 +20,7 @@
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.9.2</version>
<version>1.9.2</version>
<executions>
<!-- Configuration for OpenStack End User Guide -->
<execution>
@ -30,6 +30,7 @@
</goals>
<phase>generate-sources</phase>
<configuration>
<profileOs>enduser</profileOs>
<includes> bk-user-guide.xml</includes>
<generateToc>
appendix toc
@ -44,10 +45,6 @@ qandadiv toc
qandaset toc
reference toc,title
set toc,title </generateToc>
<profileOs>enduser</profileOs>
<chapterAutolabel>0</chapterAutolabel>
<security>external</security>
<tocSectionDepth>1</tocSectionDepth>
<targetDirectory>target/docbkx/webhelp/</targetDirectory>
<webhelpDirname>user-guide</webhelpDirname>
<pdfFilenameBase>user-guide-${release.path.name}</pdfFilenameBase>
@ -56,6 +53,11 @@ set toc,title </generateToc>
</executions>
<configuration>
<profileOs>enduser</profileOs>
<chapterAutolabel>1</chapterAutolabel>
<appendixAutolabel>1</appendixAutolabel>
<sectionAutolabel>0</sectionAutolabel>
<tocSectionDepth>1</tocSectionDepth>
<formalProcedures>0</formalProcedures>
<highlightSource>false</highlightSource>
<xincludeSupported>true</xincludeSupported>
<showXslMessages>true</showXslMessages>
@ -71,10 +73,6 @@ set toc,title </generateToc>
<googleAnalyticsId>UA-17511903-1</googleAnalyticsId>
<suppressFooterNavigation>0</suppressFooterNavigation>
<failOnValidationError>no</failOnValidationError>
<formalProcedures>0</formalProcedures>
<sectionAutolabel>0</sectionAutolabel>
<appendixAutolabel>0</appendixAutolabel>
<tocSectionDepth>1</tocSectionDepth>
</configuration>
</plugin>
</plugins>

View File

@ -44,6 +44,16 @@
commands.</para>
</abstract>
<revhistory>
<revision>
<date>2013-08-19</date>
<revdescription>
<itemizedlist>
<listitem>
<para>Editorial changes.</para>
</listitem>
</itemizedlist>
</revdescription>
</revision>
<revision>
<date>2013-07-29</date>
<revdescription>

View File

@ -10,14 +10,26 @@
<title>OpenStack command-line clients</title>
</info>
<xi:include href="section_cli_overview.xml"/>
<?hard-pagebreak?>
<xi:include href="section_cli_install.xml"/>
<?hard-pagebreak?>
<xi:include href="section_cli_version.xml"/>
<?hard-pagebreak?>
<xi:include href="section_cli_openrc.xml"/>
<xi:include href="../../common/section_glance_cli_manage_images.xml"/>
<xi:include href="section_cli_configure_instances.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../common/section_glance_cli_manage_images.xml"/>
<?hard-pagebreak?>
<xi:include href="section_nova_cli_configure_instances.xml"/>
<?hard-pagebreak?>
<xi:include href="../../common/section_nova_cli_boot.xml"/>
<xi:include href="section_cli_manage_instances.xml"/>
<xi:include href="../../common/section_neutron_cli_manage_networks.xml"/>
<xi:include href="section_cli_heat.xml"/>
<xi:include href="section_cli_manage_volumes.xml"/>
<?hard-pagebreak?>
<xi:include href="section_nova_cli_manage_instances.xml"/>
<?hard-pagebreak?>
<xi:include
href="../../common/section_neutron_cli_manage_networks.xml"/>
<?hard-pagebreak?>
<xi:include href="section_heat_cli.xml"/>
<?hard-pagebreak?>
<xi:include href="section_cinder_cli_manage_volumes.xml"/>
</chapter>

View File

@ -9,20 +9,20 @@
<info>
<title>OpenStack dashboard</title>
</info>
<para>As a cloud end user, the OpenStack dashboard lets you to
<para>As a cloud end user, you can use the OpenStack dashboard to
provision your own resources within the limits set by
administrators.</para><para>You can modify these examples to create other
administrators. You can modify these examples to create other
types and sizes of server instances.</para>
<?hard-pagebreak?>
<xi:include href="../../common/section_dashboard_access.xml"/>
<?hard-pagebreak?>
<xi:include href="../../common/section_dashboard_manage_images.xml"/>
<xi:include
href="../../common/section_dashboard_manage_images.xml"/>
<?hard-pagebreak?>
<!-- end user guide -->
<xi:include href="section_dashboard_access_and_security.xml"/>
<?hard-pagebreak?>
<xi:include href="section_dashboard_launch_instances.xml"/>
<?hard-pagebreak?>
<xi:include href="section_dashboard_manage_instances.xml"/>
<xi:include href="section_dashboard_launch_instances.xml"/>
<?hard-pagebreak?>
<xi:include href="section_dashboard_manage_volumes.xml"/>
</chapter>

View File

@ -7,30 +7,46 @@
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook" version="5.0"
xml:id="openstack_user_guide">
<title>How can I use an OpenStack cloud?</title>
<title>How can I <phrase os="enduser">use</phrase><phrase
os="adminuser">administer</phrase> an OpenStack
cloud?</title>
<?dbhtml stop-chunking?>
<para>As an OpenStack cloud end user, you can provision your own
resources within the limits set by administrators. The examples in this guide
show you how to complete these tasks by using the OpenStack dashboard and command-line clients. The
dashboard, also known as <link
xlink:href="https://github.com/openstack/horizon/"
>horizon</link>, is a Web-based graphical interface. The
command-line clients let you run simple commands to create and
manage resources in a cloud and automate tasks by using
scripts. Each of the core OpenStack projects has its own
command-line client.</para>
<para>You
can modify these examples for your specific use cases.</para>
<para os="enduser">As an OpenStack cloud end user, you can
provision your own resources within the limits set by
administrators.</para>
<para os="adminuser">As an OpenStack cloud administrative user,
you can manage tenants, known as
<firstterm>projects</firstterm>, users, services, images,
flavors, and quotas.</para>
<para>The examples in this guide show you how to complete these
tasks with either:</para>
<itemizedlist>
<listitem>
<para>The OpenStack dashboard. Use this Web-based
graphical interface, also known as <link
xlink:href="https://github.com/openstack/horizon/"
>horizon</link>
(https://github.com/openstack/horizon/), to view,
create, and manage resources.</para>
</listitem>
<listitem>
<para>The OpenStack command-line clients. Each core
OpenStack project has a command-line client that lets
you run simple commands to view, create, and manage
resources in a cloud and automate tasks by using
scripts.</para>
</listitem>
</itemizedlist>
<para>You can modify these examples for your specific use
cases.</para>
<para>In addition to these ways of interacting with a cloud, you
can access the OpenStack APIs indirectly through <link
xlink:href="http://curl.haxx.se/">cURL</link> commands or
open SDKs, or directly through the APIs. You can automate
access or build tools to manage resources and services by
using the native OpenStack APIs or the EC2 compatibility
API.</para>
can access the OpenStack APIs directly or indirectly through
<link xlink:href="http://curl.haxx.se/">cURL</link>
commands or open SDKs. You can automate access or build tools
to manage resources and services by using the native OpenStack
APIs or the EC2 compatibility API.</para>
<para>To use the OpenStack APIs, it helps to be familiar with
HTTP/1.1, RESTful web services, the OpenStack services, and
JSON or XML data serialization formats.</para>
<xi:include href="../../common/section_dochistory.xml"/>
<xi:include href="../../common/section_dochistory.xml"/>
</preface>

View File

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cinder_commands">
<title>cinder commands</title>
<para>The cinder client is the command-line interface for the
OpenStack Identity API.</para>
<para>For help on a specific cinder command, enter:</para>
<screen><userinput><command>cinder</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
<title>Usage</title>
<screen><computeroutput>cinder [--version] [--debug] [--os-username &lt;auth-user-name>]
[--os-password &lt;auth-password>]
[--os-tenant-name &lt;auth-tenant-name>]
[--os-tenant-id &lt;auth-tenant-id>] [--os-auth-url &lt;auth-url>]
[--os-region-name &lt;region-name>] [--service-type &lt;service-type>]
[--service-name &lt;service-name>]
[--volume-service-name &lt;volume-service-name>]
[--endpoint-type &lt;endpoint-type>]
[--os-volume-api-version &lt;compute-api-ver>]
[--os-cacert &lt;ca-certificate>] [--retries &lt;retries>]
&lt;subcommand> ...</computeroutput></screen>
</example>
<example>
<title>Positional arguments</title>
<screen><computeroutput>&lt;subcommand>
absolute-limits Print a list of absolute limits for a user
backup-create Creates a backup.
backup-delete Remove a backup.
backup-list List all the backups.
backup-restore Restore a backup.
backup-show Show details about a backup.
create Add a new volume.
credentials Show user credentials returned from auth.
delete Remove a volume.
endpoints Discover endpoints that get returned from the
authenticate services.
extra-specs-list Print a list of current 'volume types and extra specs'
(Admin Only).
force-delete Attempt forced removal of a volume, regardless of its
state.
list List all the volumes.
metadata Set or Delete metadata on a volume.
quota-class-show List the quotas for a quota class.
quota-class-update Update the default quotas for a quota class.
quota-defaults List the default quotas for a tenant.
quota-show List the quotas for a tenant.
quota-update Update the quotas for a tenant.
rate-limits Print a list of rate limits for a user
rename Rename a volume.
show Show details about a volume.
snapshot-create Add a new snapshot.
snapshot-delete Remove a snapshot.
snapshot-list List all the snapshots.
snapshot-rename Rename a snapshot.
snapshot-show Show details about a snapshot.
type-create Create a new volume type.
type-delete Delete a specific volume type.
type-key Set or unset extra_spec for a volume type.
type-list Print a list of available 'volume types'.
upload-to-image Upload volume to image service as image.
bash-completion Print arguments for bash_completion.
help Display help about this program or one of its
subcommands.
list-extensions List all the os-api extensions that are available.</computeroutput></screen>
</example>
<example>
<title>Optional arguments</title>
<screen><computeroutput> --version show program's version number and exit
--debug Print debugging output
--os-username &lt;auth-user-name>
Defaults to env[OS_USERNAME].
--os-password &lt;auth-password>
Defaults to env[OS_PASSWORD].
--os-tenant-name &lt;auth-tenant-name>
Defaults to env[OS_TENANT_NAME].
--os-tenant-id &lt;auth-tenant-id>
Defaults to env[OS_TENANT_ID].
--os-auth-url &lt;auth-url>
Defaults to env[OS_AUTH_URL].
--os-region-name &lt;region-name>
Defaults to env[OS_REGION_NAME].
--service-type &lt;service-type>
Defaults to compute for most actions
--service-name &lt;service-name>
Defaults to env[CINDER_SERVICE_NAME]
--volume-service-name &lt;volume-service-name>
Defaults to env[CINDER_VOLUME_SERVICE_NAME]
--endpoint-type &lt;endpoint-type>
Defaults to env[CINDER_ENDPOINT_TYPE] or publicURL.
--os-volume-api-version &lt;compute-api-ver>
Accepts 1 or 2,defaults to env[OS_VOLUME_API_VERSION].
--os-cacert &lt;ca-certificate>
Specify a CA bundle file to use in verifying a TLS
(https) server certificate. Defaults to env[OS_CACERT]
--retries &lt;retries> Number of retries.</computeroutput></screen>
</example>
</section>

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cinder_commands">
<title>cinder commands</title>
<para>Describes commands for cinder, which is the command-line
interface for the OpenStack Identity API.</para>
<para>The cinder client is the command-line interface for the
OpenStack Identity API.</para>
<para>For help on a specific cinder command, enter:</para>
<screen><userinput><command>cinder</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>

View File

@ -15,8 +15,8 @@
<step>
<para>To determine which image to use for your volume,
list images:</para>
<screen><prompt>$</prompt> <userinput>nova image-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+---------------------------------+--------+--------------------------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova image-list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+---------------------------------+--------+--------------------------------------+
| ID | Name | Status | Server |
+--------------------------------------+---------------------------------+--------+--------------------------------------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ACTIVE | |
@ -32,8 +32,8 @@
<para>To determine which availability zone are available
in which to create your volume, list the availability
zones:</para>
<screen><prompt>$</prompt> <userinput>nova availability-zone-list</userinput></screen>
<screen><computeroutput>+-----------------------+----------------------------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova availability-zone-list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+-----------------------+----------------------------------------+
| Name | Status |
+-----------------------+----------------------------------------+
| internal | available |
@ -54,8 +54,8 @@
<para>Create a volume with 8 GBs of space in the desired
availability zone and based on the desired image, as
follows:</para>
<screen><prompt>$</prompt> <userinput>cinder create 8 --display-name my-new-volume --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --availability-zone nova</userinput></screen>
<screen><computeroutput>+---------------------+--------------------------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder create 8 --display-name my-new-volume --image-id 397e713c-b95b-4186-ad46-6126863ea0a9 --availability-zone nova</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| attachments | [] |
@ -77,8 +77,8 @@
<step>
<para>To verify that your volume was created successfully,
list the available volumes:</para>
<screen><prompt>$</prompt> <userinput>cinder list</userinput></screen>
<screen><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | available | my-new-volume | 8 | None | true | |
@ -91,8 +91,8 @@
</step>
<step>
<para>Attach your volume to a server:</para>
<screen><prompt>$</prompt> <userinput>nova volume-attach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8 /dev/vdb</userinput></screen>
<screen><computeroutput>+----------+--------------------------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova volume-attach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8 /dev/vdb</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
@ -104,8 +104,8 @@
</step>
<step>
<para>Show information for your volume:</para>
<screen><prompt>$</prompt> <userinput>cinder show 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<screen><computeroutput><?db-fontsize 75%?>+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder show 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<screen><computeroutput><?db-font-size 65%?><?db-fontsize 75%?>+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| attachments | [{u'device': u'/dev/vdb', u'server_id': u'84c6e57d-a6b1-44b6-81eb-fcb36afd31b5', u'id': u'573e024d-5235-49ce-8332-be1576d323f8', u'volume_id': u'573e024d-5235-49ce-8332-be1576d323f8'}] |
@ -137,14 +137,14 @@
<para>To detach the volume from your server, pass the
server ID and volume ID to the command, as
follows:</para>
<screen><prompt>$</prompt> <userinput>nova volume-detach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova volume-detach 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 573e024d-5235-49ce-8332-be1576d323f8</userinput></screen>
<para>The <command>volume-detach</command> command does
not return any output.</para>
</step>
<step>
<para>List volumes:</para>
<screen><prompt>$</prompt> <userinput>cinder list</userinput></screen>
<screen><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | available | my-new-volume | 8 | None | true | |
@ -154,15 +154,15 @@
</step>
<step>
<para>Now you can delete the volume, as follows:</para>
<screen><prompt>$</prompt> <userinput>cinder delete my-new-volume</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder delete my-new-volume</userinput></screen>
<para>The delete command does not return any
output.</para>
</step>
<step>
<para>List the volumes again, and note that the status of
your volume is <literal>deleting</literal>:</para>
<screen><prompt>$</prompt> <userinput>cinder list</userinput></screen>
<screen><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| 573e024d-5235-49ce-8332-be1576d323f8 | deleting | my-new-volume | 8 | None | true | |
@ -170,8 +170,8 @@
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+</computeroutput></screen>
<para>When the volume is fully deleted, it disappears from
the list of volumes:</para>
<screen><prompt>$</prompt> <userinput>cinder list</userinput></screen>
<screen><computeroutput>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>cinder list</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| ID | Status | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------+------+-------------+----------+-------------+
| bd7cf584-45de-44e3-bf7f-f7b50bf235e3 | available | my-bootable-vol | 8 | None | true | |

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="manage_ip_addresses"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Manage IP addresses</title>
<para>Each instance can have a private, or fixed, IP address and a
public, or floating, one.</para>
<para>Private IP addresses are used for communication between
instances, and public ones are used for communication with the
outside world.</para>
<para>When you launch an instance, it is automatically assigned a
private IP address that stays the same until you explicitly
terminate the instance. Rebooting an instance has no effect on
the private IP address.</para>
<para>A pool of floating IPs, configured by the cloud operator, is
available in OpenStack Compute.</para>
<para>You can allocate a certain number of these to a project: The
maximum number of floating IP addresses per project is defined
by the quota.</para>
<para>You can add a floating IP address from this set to an
instance of the project. Floating IP addresses can be
dynamically disassociated and associated with other instances
of the same project at any time.</para>
<para>Before you can assign a floating IP address to an instance,
you first must allocate floating IPs to a project. After
floating IP addresses have been allocated to the current
project, you can assign them to running instances.</para>
<para>One floating IP address can be assigned to only one instance
at a time. Floating IP addresses can be managed with the
<command>nova *floating-ip-*</command> commands, provided
by the python-novaclient package.</para>
<procedure>
<title>To list pools with floating IP addresses</title>
<step>
<para>To list all pools that provide floating IP
addresses:</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-pool-list</userinput></screen>
</step>
</procedure>
<procedure>
<title>To allocate a floating IP address to the current
project</title>
<step>
<para>The output of the following command shows the
freshly allocated IP address:</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-pool-list</userinput></screen>
<para>If more than one pool of IP addresses is available,
you can also specify the pool from which to allocate
the IP address:</para>
<screen><prompt>$</prompt> <userinput>floating-ip-create POOL_NAME</userinput></screen>
</step>
</procedure>
<procedure>
<title>To list floating IP addresses allocated to the current
project</title>
<step>
<para>If an IP is already associated with an instance, the
output also shows the IP for the instance, thefixed IP
address for the instance, and the name of the pool
that provides the floating IP address.</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-list</userinput></screen>
</step>
</procedure>
<procedure>
<title>To release a floating IP address from the current
project</title>
<step>
<para>The IP address is returned to the pool of IP
addresses that are available for all projects. If an
IP address is currently assigned to a running
instance, it is automatically disassociated from the
instance.</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-delete FLOATING_IP</userinput></screen>
</step>
</procedure>
<procedure>
<title>To assign a floating IP address to an instance</title>
<step>
<para>To associate an IP address with an instance, one or
multiple floating IP addresses must be allocated to
the current project. Check this
with:<screen><prompt>$</prompt> <userinput>nova floating-ip-list</userinput></screen>In
addition, you must know the instance's name (or ID).
To look up the instances that belong to the current
project, use the <code>nova list</code> command.</para>
<screen><prompt>$</prompt> <userinput>nova add-floating-ip INSTANCE_NAME_OR_ID FLOATING_IP</userinput></screen>
<para>After you assign the IP with <command>nova
add-floating-ip</command> and configure security group rules for the instance, the instance is
publicly available at the floating IP
address.
</para>
</step>
</procedure>
<procedure>
<title>To remove a floating IP address from an
instance</title>
<step>
<para>To remove a floating IP address from an instance,
you must specify the same arguments that you used to
assign the IP.</para>
<screen><prompt>$</prompt> <userinput>nova remove-floating-ip INSTANCE_NAME_OR_ID FLOATING_IP</userinput></screen>
</step>
</procedure>
</section>

View File

@ -24,12 +24,11 @@
<para>For example, to get help for the glance
<command>image-show</command> command, enter the following
command:</para>
<para><screen><prompt>$</prompt> <userinput>glance help image-show</userinput></screen></para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>glance help image-show</userinput></screen>
<para>The <command>help</command> command shows the command usage,
a description of the command, and descriptions of any
positional and optional arguments, as follows:</para>
<para><screen><computeroutput>usage: glance image-show [--human-readable] &lt;IMAGE>
<screen><computeroutput><?db-font-size 65%?>usage: glance image-show [--human-readable] &lt;IMAGE>
Describe a specific image.
@ -38,5 +37,4 @@ Positional arguments:
Optional arguments:
--human-readable Print image size in a human-friendly format.</computeroutput></screen>
</para>
</section>

View File

@ -7,7 +7,6 @@
<!ENTITY plusmn "&#xB1;">
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -16,101 +15,83 @@
<?dbhtml stop-chunking?>
<para>To install the clients, install the prerequisite software
and the Python package for each OpenStack client.</para>
<note>
<para>If you already installed the OpenStack client packages
by using the package management tools provided by your
distribution, proceed to <xref linkend="cli_openrc"/>.
</para>
</note>
<section xml:id="prereq_software">
<title>Install the prerequisite software</title>
<procedure>
<title>To install prerequisite software</title>
<step>
<para>The following table describes the prerequisite
software to install:</para>
<table rules="all">
<caption>Prerequisite software</caption>
<col width="25%"/>
<col width="75%"/>
<thead>
<tr>
<th>Prerequisite</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<para>Python 2.6 or later</para>
</td>
<td>
<para>Currently, the clients do not
support Python 3.</para>
</td>
</tr>
<tr>
<td valign="top">
<para><command>setuptools</command>
package</para>
</td>
<td>
<para>Installed by default on Mac OS
X.</para>
<para>Many Linux distributions provide
packages to make
<command>setuptools</command> easy
to install.</para>
<para>Search your package manager for
<command>setuptools</command> to
find an installation package. If
you cannot find one, download the
<command>setuptools</command>
package directly from <link
xlink:href="http://pypi.python.org/pypi/setuptools"
>http://pypi.python.org/pypi/setuptools</link>.
</para>
</td>
</tr>
<tr>
<td valign="top"><command>pip</command>
package</td>
<td>
<para>To install the clients on a Mac
OS X or Linux system, use
<command>pip</command>. It is easy
to use and ensures that you get the
latest version of the clients from
the <link
xlink:href="http://pypi.python.org/pypi/python-novaclient/"
>Python Package Index</link>. Also,
it lets you update or remove the
packages later on.</para>
<para>Install <command>pip</command>
through the package manager for
your system:</para><itemizedlist>
<listitem>
<para>Mac OS X
<table rules="all">
<caption>Prerequisite software</caption>
<col width="15%"/>
<col width="85%"/>
<thead>
<tr>
<th>Prerequisite</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<para>Python 2.6 or later</para>
</td>
<td>
<para>Currently, the clients do not support
Python 3.</para>
</td>
</tr>
<tr>
<td valign="top">
<para><command>setuptools</command>
package</para>
</td>
<td>
<para>Installed by default on Mac OS X. Many Linux distributions provide
packages to make
<command>setuptools</command> easy to
install. Search your package manager for
<command>setuptools</command> to find
an installation package. If you cannot
find one, download the
<command>setuptools</command> package
directly from <link
xlink:href="http://pypi.python.org/pypi/setuptools"
>http://pypi.python.org/pypi/setuptools</link>.
</para>
</td>
</tr>
<tr>
<td valign="top"><command>pip</command>
package</td>
<td>
<para>To install the clients on a Mac OS X or
Linux system, use <command>pip</command>.
It is easy to use and ensures that you get
the latest version of the clients from the
<link
xlink:href="http://pypi.python.org/pypi/python-novaclient/"
>Python Package Index</link>. Also, it
lets you update or remove the packages
later on.</para>
<para>Install <command>pip</command> through
the package manager for your
system:</para><itemizedlist>
<listitem>
<para>Mac OS X
<screen><prompt>$</prompt> <userinput>sudo easy_install pip</userinput></screen></para>
</listitem>
<listitem>
<para>Ubuntu 12.04</para>
<para>A packaged version enables
you to use <command>dpkg</command>
or <command>aptitude</command> to
</listitem>
<listitem>
<para>Ubuntu 12.04</para>
<para>A packaged version enables you
to use <command>dpkg</command> or
<command>aptitude</command> to
install the
python-novaclient.</para>
<screen><prompt>#</prompt> aptitude install python-novaclient</screen>
</listitem>
<listitem>
<para>Ubuntu
<screen><prompt>#</prompt> aptitude install python-novaclient</screen>
</listitem>
<listitem>
<para>Ubuntu
<screen><prompt>#</prompt> aptitude install python-pip</screen></para>
</listitem>
<listitem>
<para>RHEL, CentOS, or
Fedora</para>
<para>A packaged version available
in <link
</listitem>
<listitem>
<para>RHEL, CentOS, or Fedora</para>
<para>A packaged version available in
<link
xlink:href="http://openstack.redhat.com/"
>RDO</link> enables you to use
<command>yum</command> to install
@ -121,17 +102,17 @@
with the lower case name of the
client to install, such as
<literal>nova</literal>. Repeat
this step for each desired client.</para>
<para>Alternatively install
this step for each
client.</para>
<para>Alternatively install
<command>pip</command> and use it
to manage client installation:
<screen><prompt>#</prompt> yum install python-pip</screen>
</para>
</listitem>
<listitem>
<para>openSUSE 12.2 and
earlier</para>
<para>A <link
</para>
</listitem>
<listitem>
<para>openSUSE 12.2 and earlier</para>
<para>A <link
xlink:href="https://build.opensuse.org/package/show?package=python-novaclient&amp;project=Cloud:OpenStack:Master"
>packaged version available in the
Open Build Service</link> enables
@ -141,38 +122,36 @@
<screen><prompt>#</prompt> zypper install python-<replaceable>PROJECT</replaceable></screen>
Replace
<replaceable>PROJECT</replaceable>
with the lower case name of the
with the lowercase name of the
client to install, such as
<literal>nova</literal>. Repeat
this step for each desired client.</para>
<para>Alternatively install
this step for each desired
client.</para>
<para>Alternatively install
<command>pip</command> and use it
to manage client installation:
<screen><prompt>#</prompt> zypper install python-pip </screen></para>
</listitem>
<listitem>
<para>openSUSE 12.3</para>
<para>A packaged version enables
you to use <command>rpm</command>
or <command>zypper</command> to
</listitem>
<listitem>
<para>openSUSE 12.3</para>
<para>A packaged version enables you
to use <command>rpm</command> or
<command>zypper</command> to
install the clients:
<screen><prompt>#</prompt> zypper install python-<replaceable>PROJECT</replaceable>client</screen>
Replace
<replaceable>PROJECT</replaceable>
with the lower case name of the
with the lowercase name of the
client to install, such as
<literal>nova</literal>. Repeat
this step for each desired client.
</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</table>
</step>
</procedure>
</section>
</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</table>
<section xml:id="cli_clients_install">
<title>Install the clients</title>
<para>Use <command>pip</command> to install the OpenStack
@ -187,14 +166,15 @@
variables before you can request OpenStack services
through the clients or the APIs.</para>
<procedure>
<title>To install the clients</title>
<!-- <title>To install the clients</title>-->
<step>
<para>You must install each client separately.</para>
<para>Run the following command to install or update a
client package:</para>
<screen><prompt>$</prompt> <userinput>sudo pip install [--update] python-&lt;project&gt;client</userinput></screen>
<para>Where &lt;project&gt; is the project name and
has one of the following values:</para>
<screen><prompt>$</prompt> <userinput>sudo pip install [--update] python-<replaceable>PROJECT</replaceable>client</userinput></screen>
<para>Where <replaceable>PROJECT</replaceable> is the
project name and has one of the following
values:</para>
<itemizedlist>
<listitem>
<para><literal>nova</literal>. Compute API and

View File

@ -1,199 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_keystone_summary">
<title>keystone</title>
<para>Use the following OpenStack keystone client commands to
perform API operations:</para>
<section xml:id="keystone_endpoints">
<title>Endpoints</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="keystone_ec2_credentials">
<title>EC2 credentials</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="keystone_users_and_passwords">
<title>Users and passwords</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="keystone_tenants">
<title>Tenants</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -1,197 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_launch_instances">
<title>Launch instances</title>
<para>Instances are virtual machines that run inside the
cloud.</para>
<para>You can launch an instance directly from one of the
available OpenStack images or from an image that you have
copied to a persistent volume. The OpenStack Image Service
provides a pool of images that are accessible to members of
different projects.</para>
<para>After you gather the <link
xlink:href="instance_parameters">parameters you need
to launch an instance</link>, you can launch
it.</para>
<section xml:id="launch_from_image"><title>Launch instance from an image</title><para>Use this procedure to launch an instance from an image.</para> <procedure>
<title>To gather the parameters you need to launch an instance</title>
<step>
<para>On a shell, source the OpenStack RC file. See <xref
linkend="cli_openrc"/>.</para>
</step>
<step>
<para>List the available flavors:</para>
<screen><prompt>$</prompt> nova flavor-list</screen>
<screen><computeroutput>+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | True |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True |
| 42 | m1.nano | 64 | 0 | 0 | | 1 | 1.0 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True |
| 84 | m1.micro | 128 | 0 | 0 | | 1 | 1.0 | True |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+</computeroutput></screen>
<para>Note the ID of the flavor that you want to use for
your instance.</para>
</step>
<step>
<para>List the available images:</para>
<screen><prompt>$</prompt> <userinput>nova image-list</userinput></screen>
<screen><computeroutput>+--------------------------------------+---------------------------------+--------+--------+
| ID | Name | Status | Server |
+--------------------------------------+---------------------------------+--------+--------+
| 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ACTIVE | |
| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | |
| 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ACTIVE | |
+--------------------------------------+---------------------------------+--------+--------+</computeroutput></screen>
<para>You can also filter the image list by using grep to
find a specific image, like this:</para>
<screen><prompt>$</prompt> <userinput>nova image-list | grep 'kernel'</userinput></screen>
<screen><computeroutput>| df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | |</computeroutput></screen>
<para>Note the ID of the image that you want to boot your
instance from.</para>
</step>
<step>
<para>List the available security groups:</para>
<note>
<para>If you are an admin user, specify the
<literal>--all-tenants</literal> parameter to
list groups for all tenants.</para>
</note>
<screen><prompt>$</prompt> <userinput>nova secgroup-list --all-tenants</userinput></screen>
<screen><computeroutput>+----+---------+-------------+
| Id | Name | Description |
+----+---------+-------------+
| 2 | default | default |
+----+---------+-------------+</computeroutput></screen>
<para>If you have not created any security groups, you can
assign the instance to only the default security
group.</para>
<para>You can also list rules for a specified security
group:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-list-rules default</userinput> </screen>
<screen><computeroutput>+-------------+-----------+---------+----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+----------+--------------+
+-------------+-----------+---------+----------+--------------+</computeroutput></screen>
<para>In this example, the default security group has been
modified to allow HTTP traffic on the instance by
permitting TCP traffic on Port 80.</para>
</step>
<step>
<para>List the available keypairs.</para>
<screen><prompt>$</prompt> <userinput>nova keypair-list</userinput></screen>
<screen><computeroutput>+------+-------------+
| Name | Fingerprint |
+------+-------------+
+------+-------------+</computeroutput></screen>
<para>Note the name of the keypair that you use for SSH
access.</para>
</step>
</procedure>
<procedure><title>To launch an instance from an image</title>
<step>
<para>Now you have all the parameters required to launch
an instance, run the following command. Specify the
server name, flavor ID, and image ID. Optionally, you
can provide a key name for access control and security
group for security. You can also include metadata key
and value pairs. For example you can add a description
for your server by providing the <parameter>--meta
description="My Server"</parameter>
parameter.</para>
<screen><prompt>$</prompt> <userinput>nova boot --flavor FLAVOR_ID --image IMAGE_ID --key_name KEY_NAME \
--security_group NAME_OF_SEC_GROUP NAME_FOR_INSTANCE --meta KEY=VALUE --meta KEY=VALUE</userinput></screen>
<para>The command returns a list of server properties.</para>
<para>A status of <literal>BUILD</literal> indicates that the
instance has started, but is not yet online.</para>
<para>A status of <literal>ACTIVE</literal> indicates that
your server is active.</para>
<informalexample>
<screen><computeroutput><?db-font-size 70%?>+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state | scheduling |
| image | cirros-0.3.1-x86_64-uec |
| OS-EXT-STS:vm_state | building |
| OS-EXT-SRV-ATTR:instance_name | instance-00000002 |
| flavor | m1.small |
| id | b3cdc6c0-85a7-4904-ae85-71918f734048 |
| security_groups | [{u'name': u'default'}] |
| user_id | 376744b5910b4b4da7d8e6cb483b06a8 |
| OS-DCF:diskConfig | MANUAL |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
| status | BUILD |
| updated | 2013-07-16T16:25:34Z |
| hostId | |
| OS-EXT-SRV-ATTR:host | None |
| key_name | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| name | myCirrosServer |
| adminPass | tVs5pL8HcPGw |
| tenant_id | 66265572db174a7aa66eba661f58eb9e |
| created | 2013-07-16T16:25:34Z |
| metadata | {} |
+-------------------------------------+--------------------------------------</computeroutput></screen>
</informalexample>
<para>Copy the server ID value from the
<literal>id</literal> field in the output. You use
this ID to get details for or delete your server.</para>
<para>Copy the administrative password value from the
<literal>adminPass</literal> field. You use this
value to log into your server.</para>
<note> <para>Arbitrary local files can also be placed into
the instance file system at creation time using
the <literal>--file
&lt;dst-path=src-path&gt;</literal> option.
You may store up to 5 files. For example if you
have a special authorized_keys file named
<filename>special_authorized_keysfile</filename>
that you want to put on the instance rather than
using the regular <link
linkend="nova_cli_associatekey">ssh key
injection</link> for some reason you can use
the following
command:<screen> <prompt>$</prompt> <userinput>nova boot --image ubuntu-cloudimage --flavor 1 --file /root/.ssh/authorized_keys=special_authorized_keysfile</userinput></screen></para></note>
</step>
<step>
<para>Check if the instance is online:</para>
<screen><prompt>$</prompt> <userinput>nova list</userinput></screen>
<screen><computeroutput>+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+
| 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 |
| 8a99547e-7385-4ad1-ae50-4ecfaaad5f42 | myInstanceFromVolume | ACTIVE | None | Running | private=10.0.0.4 |
+--------------------------------------+----------------------+--------+------------+-------------+------------------+</computeroutput></screen>
<para>This command lists all instances of the project you
belong to, including their ID, their name, their
status, and their private (and if assigned, their
public) IP addresses.</para>
<para>If the status for the instance is ACTIVE, the
instance is online.</para>
<para>To view the available options for the <command>nova
list</command> command, run the following
command:</para>
<screen><prompt>$</prompt> <userinput>nova help list</userinput></screen>
</step>
<step>
<para>If you did not provide a keypair, security groups,
or rules, you can only access the instance from inside
the cloud through VNC. Even pinging the instance is
not possible.</para>
<para>To change this, proceed to <xref
linkend="cli_configure_instances"/>.</para>
</step>
</procedure></section>
<xi:include href="../../common/section_nova_boot_from_volume.xml"/>
</section>

View File

@ -1,753 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_nova_summary">
<title>nova</title>
<para>Use the following OpenStack nova client commands to perform
API operations:</para>
<section xml:id="nova_summary_limits">
<title>Limits</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_servers">
<title>Servers</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="nova_summary_serveractions">
<title>Server Actions</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Reboot server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova reboot &lt;server&gt; --hard</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
<para>Omit the <option>--hard</option> option to
perform a soft reboot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rebuild &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Resize server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize [--poll] &lt;server&gt; &lt;flavor&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name and
<parameter>flavor</parameter> is the ID or
name of the new flavor.</para>
<para>Specify the optional <option>--poll</option>
option to block while the instance resizes so
that progress can be reported.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Confirm resize</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize-confirm &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Revert resize
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova resize-revert &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Unrescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova unrescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create image from
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-create &lt;server&gt; &lt;name&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name, and
<parameter>name</parameter> is the name of
the snapshot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server from
image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova rebuild &lt;server&gt; &lt;image&gt; --rebuild_password &lt;rebuild_password&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>server</parameter>. The
server ID or name.</para>
</listitem>
<listitem>
<para><parameter>image</parameter>. The
image ID.</para>
</listitem>
<listitem>
<para><parameter>rebuild_password</parameter>.
Optional. The password for the rebuilt
image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="nova_summary_flavors">
<title>Flavors</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_images">
<title>Images</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_metadata">
<title>Metadata</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova meta &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova image-meta &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
image ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_networks">
<title>Networks</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List networks</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show network
information</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-show &lt;network&gt;</programlisting>
</para>
<itemizedlist>
<title>Argument</title>
<listitem>
<para><parameter>network</parameter>. The
UUID or label of the network.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>nova network-create &lt;network_label&gt; &lt;cidr&gt;</programlisting>
</para>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_label</parameter>.
The network label, such as
<literal>my_new_network</literal>,
</para>
</listitem>
<listitem>
<para><parameter>cidr</parameter>. The IP
block from which to allocate, such as
<literal>172.16.0.0/24</literal> or
<literal>2001:DB8::/64</literal>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Provision server with
isolated network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic [net-id=&lt;private-net-uuid&gt; [--no-public] [--no-service-net]</programlisting>
</para>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Positional arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
</itemizedlist>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Optional arguments</title>
<listitem>
<para><option>--no-service-net</option>.
Optional. Opts out of attaching
ServiceNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching
ServiceNet to their server.</para>
</note>
<para>For example, to opt out of attaching
ServiceNet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-service-net</programlisting></para>
</listitem>
<listitem>
<para><option>--no-public</option>.
Optional. Opts out of attaching
PublicNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching PublicNet
to their server.</para>
</note>
<para>For example, to opt out of attaching
the Internet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-public</programlisting></para>
</listitem>
<listitem>
<para><option>--disk-config</option>
{<literal>auto</literal>|<literal>manual</literal>}.
Specifies whether to expand the
primary partition to fill the disk.
This value overrides the value
inherited from the image.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>.
Required. The flavor ID for the new
server. To get a list of flavors,
issue <command>nova
flavor-list</command>.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>.
Required. The image ID for the new
server. To get a list of images, issue
<command>nova
image-list</command>.</para>
</listitem>
<listitem>
<para><option>--meta</option>
<option>key</option><command>=</command><parameter>value</parameter>.
Arbitrary key and value metadata that
is written to
<filename>/meta.js</filename> on
the new server. Can be specified
multiple times.</para>
</listitem>
<listitem>
<para><option>--file</option>
<parameter>dst-path</parameter>=<parameter>src-path</parameter>.
Stores arbitrary files from
<parameter>src-path</parameter>
locally to <parameter>dst-
path</parameter> on the new server.
You can store up to five files.
</para>
</listitem>
<listitem>
<para><option>--key_name</option>
<parameter>key_name</parameter>. Key
name of key pair. First, create the
key pair with the
<command>keypair-add</command>
command.</para>
</listitem>
<?sbr?>
<listitem>
<para><option>--user_data</option>
<parameter>user-data</parameter>. User
data file, which is exposed by the
metadata server.</para>
</listitem>
<listitem>
<para><option>--availability_zone</option>
<parameter>availability-zone</parameter>.
The availability zone for instance
placement.</para>
</listitem>
<listitem>
<para><option>--security_groups</option>
<parameter>security_groups</parameter>.
A comma-separated list of security
group names.</para>
</listitem>
<listitem>
<para><option>--block_device_mapping</option>
<parameter>dev_name=mapping</parameter>.
Block device mapping in the format:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> dev_name=<parameter>id</parameter>:type:<parameter>size(GB)</parameter>:delete_on_terminate</programlisting></para>
</listitem>
<listitem>
<para><option>--hint</option>
<parameter>key</parameter>=<parameter>value</parameter>.
Arbitrary key and value pairs that are
sent to the scheduler for custom use.
</para>
</listitem>
<listitem>
<para><option>--nic
net-id=</option><parameter>private-net-id</parameter>,
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>.
Creates a NIC on the server. Specify
this option multiple times to create
multiple NICs. Optionally, to attach a
NIC with a specified UUID to a
network, specify the
<option>net-id</option>=<parameter>private-net-id</parameter>
parameter.</para>
<para>Optionally, specify the
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>
parameter to specify an IPv4 fixed
address for NIC.</para>
<para>If you do not specify any networks
on the <option>--nic</option>
parameter, the Internet and ServiceNet
are attached to your server.</para>
<note>
<para>ServiceNet is labeled as
<literal>private</literal> and the
Internet is labeled as
<literal>public</literal> in the
network list.</para>
</note>
<para>If you specify additional networks
through the <option>—nic</option>
parameter, these networks, in addition
to the Internet and ServiceNet, are
attached to your server.</para>
<para>You can specify the optional
<option>--no-public</option> and
<option>--no-service-net</option>
parameters to opt out of attaching the
Internet and ServiceNet to your
server.</para>
<para>Specify the
<option>--no-public</option>
parameter to opt out of attaching the
Internet to your server.</para>
<para>Specify the
<option>--no-service-net</option>
parameter to opt out of attaching
ServiceNet to your server.</para>
</listitem>
<listitem>
<para><option>--config-drive</option>
<parameter>value</parameter>. Enables
a configuration drive.</para>
</listitem>
<listitem>
<para><option>--poll</option>. Blocks
while the instance builds so progress
can be reported.</para>
</listitem>
</itemizedlist>
<para>For example, you might issue the following
command to attach a NIC to your server.
Additionally, the Internet and ServiceNet are
attached to your
server.<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova boot my_server_with_network --flavor 2 --image d42f821e-c2d1-4796-9f07-af5ed7912d0e --nic net-id=e65accc0-1d98-45eb-af76-ab3d31edc7d2</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete isolated
network</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova network-delete &lt;network_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to
delete.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="nova_summary_virtualints">
<title>Virtual Interfaces</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List virtual interfaces for
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-list &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance for which you
want to list virtual
interfaces.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Attach virtual interface to
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-create &lt;network_id&gt; &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to attach to the
server.</para>
</listitem>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance to which you
want to attach the virtual
interface.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete a virtual interface
and detach it from an instance</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> nova virtual-interface-delete &lt;instance_id&gt; &lt;interface_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance from which you
want to remove the virtual
interface.</para>
</listitem>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to remove from
the instance.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_openrc">
<title>OpenStack RC file</title>
<title>Download and source the OpenStack RC file</title>
<para>To set the required environment variables for the OpenStack
command-line clients, you must download and source an
environment file, <filename>openrc.sh</filename>. It is
@ -16,18 +16,12 @@
<para>You can download the file from the OpenStack dashboard as an
administrative user or any other user.</para>
<procedure>
<title>To download the OpenStack RC file</title>
<!-- <title>To download the OpenStack RC file</title> -->
<step>
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>On the <guilabel>Project</guilabel> tab, select the
<para>Log in to the OpenStack dashboard, choose the
project for which you want to download the OpenStack
RC file.</para>
</step>
<step>
<para>Click <emphasis role="bold">Access &amp;
Security</emphasis>. Then, click
RC file, and click <emphasis role="bold">Access &amp;
Security</emphasis>.</para></step><step><para>Click
<guibutton>Download OpenStack RC File</guibutton>
and save the file.</para>
</step>

View File

@ -29,81 +29,53 @@
parameter to show the underlying API request for the command.
This is a good way to become familiar with the OpenStack API
calls.</para>
<para>The following command-line clients are available for the
respective services' APIs:</para>
<variablelist wordsize="10">
<varlistentry>
<term><emphasis role="bold">cinder</emphasis>
(python-cinderclient)</term>
<listitem>
<para>Client for the Block Storage Service API. Use to
create and manage volumes.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">glance</emphasis>
(python-glanceclient)</term>
<listitem>
<para>Client for the Image Service API. Use to create
and manage images.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">keystone</emphasis>
(python-keystoneclient)</term>
<listitem>
<para>Client for the Identity Service API. Use to
create and manage users, tenants, roles,
endpoints, and credentials.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">nova</emphasis>
(python-novaclient)</term>
<listitem>
<para>Client for the Compute API and its extensions.
Use to create and manage images, instances, and
flavors.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">neutron</emphasis>
(python-neutronclient)</term>
<listitem>
<para>Client for the Networking API. Use to configure
networks for guest servers. This client was
previously known as <emphasis role="bold"
>neutron</emphasis>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">swift</emphasis>
(python-swiftclient)</term>
<listitem>
<para>Client for the Object Storage API. Use to gather
statistics, list items, update metadata, upload,
download and delete files stored by the object
storage service. Provides access to a swift
installation for ad hoc processing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">heat</emphasis>
(python-heatclient)</term>
<listitem>
<para>Client for the Orchestration API. Use to launch
stacks from templates, view details of running
stacks including events and resources, and update
and delete stacks.</para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para>An OpenStack common client is in development.</para>
</note>
<para>To install an OpenStack client, see <xref
linkend="install_clients"/>.</para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">cinder</emphasis>
(python-cinderclient). Client for the Block Storage
Service API. Use to create and manage volumes.</para>
</listitem>
<listitem>
<para><emphasis role="bold">glance</emphasis>
(python-glanceclient). Client for the Image Service
API. Use to create and manage images.</para>
</listitem>
<listitem>
<para><emphasis role="bold">keystone</emphasis>
(python-keystoneclient). Client for the Identity
Service API. Use to create and manage users, tenants,
roles, endpoints, and credentials.</para>
</listitem>
<listitem>
<para><emphasis role="bold">nova</emphasis>
(python-novaclient). Client for the Compute API and
its extensions. Use to create and manage images,
instances, and flavors.</para>
</listitem>
<listitem>
<para><emphasis role="bold">neutron</emphasis>
(python-neutronclient). Client for the Networking API.
Use to configure networks for guest servers. This
client was previously known as <emphasis role="bold"
>neutron</emphasis>.</para>
</listitem>
<listitem>
<para><emphasis role="bold">swift</emphasis>
(python-swiftclient). Client for the Object Storage
API. Use to gather statistics, list items, update
metadata, upload, download and delete files stored by
the object storage service. Provides access to a swift
installation for ad hoc processing.</para>
</listitem>
<listitem>
<para><emphasis role="bold">heat</emphasis>
(python-heatclient). Client for the Orchestration API.
Use to launch stacks from templates, view details of
running stacks including events and resources, and
update and delete stacks.</para>
</listitem>
</itemizedlist>
<para>An OpenStack common client is in development.</para>
</section>

View File

@ -1,760 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!-- Some useful entities borrowed from HTML -->
<!ENTITY ndash "&#x2013;">
<!ENTITY mdash "&#x2014;">
<!ENTITY hellip "&#x2026;">
<!-- Useful for describing APIs -->
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
]>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="section_cli_swift">
<title>swift</title>
<para>Use the following OpenStack swift client commands to perform
API operations:</para>
<section xml:id="swift_summary_limits">
<title>Limits</title>
<cmdsynopsis>
<command>add</command>
<group>
<arg>test</arg>
<option>test2</option>
</group>
</cmdsynopsis>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get rate limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rate-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get absolute
limits</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift absolute-limits</programlisting>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_servers">
<title>Servers</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List servers</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>. The
name or ID of the flavor.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>. The name
or ID of the image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get server
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Change administrative
password</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift root-password &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Update server
name</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift meta &lt;server&gt; set "My Server Name"="Ubuntu 11.10 server test"</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift delete &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="swift_summary_serveractions">
<title>Server Actions</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Reboot server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift reboot &lt;server&gt; --hard</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
<para>Omit the <option>--hard</option> option to
perform a soft reboot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rebuild &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Resize server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize [--poll] &lt;server&gt; &lt;flavor&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name and
<parameter>flavor</parameter> is the ID or
name of the new flavor.</para>
<para>Specify the optional <option>--poll</option>
option to block while the instance resizes so
that progress can be reported.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Confirm resize</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize-confirm &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Revert resize
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift resize-revert &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Unrescue server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift unrescue &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create image from
server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-create &lt;server&gt; &lt;name&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name, and
<parameter>name</parameter> is the name of
the snapshot.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Rebuild server from
image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift rebuild &lt;server&gt; &lt;image&gt; --rebuild_password &lt;rebuild_password&gt;</programlisting>
<itemizedlist>
<title>Arguments</title>
<listitem>
<para><parameter>server</parameter>. The
server ID or name.</para>
</listitem>
<listitem>
<para><parameter>image</parameter>. The
image ID.</para>
</listitem>
<listitem>
<para><parameter>rebuild_password</parameter>.
Optional. The password for the rebuilt
image.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<?hard-pagebreak?>
<section xml:id="swift_summary_flavors">
<title>Flavors</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List flavors</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift flavor-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get flavor
details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift flavor-show &lt;flavor&gt;</programlisting>
<para>Where <parameter>flavor</parameter> is the
name or ID of the flavor.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_images">
<title>Images</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List images</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Get image details</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete image</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-delete &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
name or ID of the image.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_metadata">
<title>Metadata</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift show &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-show &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete server
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift meta &lt;server&gt;</programlisting>
<para>Where <parameter>server</parameter> is the
server ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Set or delete image
metadata</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift image-meta &lt;image&gt;</programlisting>
<para>Where <parameter>image</parameter> is the
image ID or name.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_networks">
<title>Networks</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List networks</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-list</programlisting>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Show network
information</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-show &lt;network&gt;</programlisting>
</para>
<itemizedlist>
<title>Argument</title>
<listitem>
<para><parameter>network</parameter>. The
UUID or label of the network.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Create network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>swift network-create &lt;network_label&gt; &lt;cidr&gt;</programlisting>
</para>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_label</parameter>.
The network label, such as
<literal>my_new_network</literal>,
</para>
</listitem>
<listitem>
<para><parameter>cidr</parameter>. The IP
block from which to allocate, such as
<literal>172.16.0.0/24</literal> or
<literal>2001:DB8::/64</literal>.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Provision server with
isolated network</emphasis>
</term>
<listitem>
<para>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> <?db-font-size 75%?>swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic [net-id=&lt;private-net-uuid&gt; [--no-public] [--no-service-net]</programlisting>
</para>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Positional arguments</title>
<listitem>
<para><parameter>name</parameter>. The
name of the server.</para>
</listitem>
</itemizedlist>
<itemizedlist
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:db="http://docbook.org/ns/docbook">
<title>Optional arguments</title>
<listitem>
<para><option>--no-service-net</option>.
Optional. Opts out of attaching
ServiceNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching
ServiceNet to their server.</para>
</note>
<para>For example, to opt out of attaching
ServiceNet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-service-net</programlisting></para>
</listitem>
<listitem>
<para><option>--no-public</option>.
Optional. Opts out of attaching
PublicNet to your server.</para>
<note>
<para>RackConnect and Managed Cloud
customers will receive an error if
they opt out of attaching PublicNet
to their server.</para>
</note>
<para>For example, to opt out of attaching
the Internet to your server, issue the
following command:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot &lt;name&gt; --flavor &lt;flavor&gt; --image &lt;image&gt; --nic net-id=&lt;private-net-uuid&gt; --no-public</programlisting></para>
</listitem>
<listitem>
<para><option>--disk-config</option>
{<literal>auto</literal>|<literal>manual</literal>}.
Specifies whether to expand the
primary partition to fill the disk.
This value overrides the value
inherited from the image.</para>
</listitem>
<listitem>
<para><option>--flavor</option>
<parameter>flavor</parameter>.
Required. The flavor ID for the new
server. To get a list of flavors,
issue <command>swift
flavor-list</command>.</para>
</listitem>
<listitem>
<para><option>--image</option>
<parameter>image</parameter>.
Required. The image ID for the new
server. To get a list of images, issue
<command>swift
image-list</command>.</para>
</listitem>
<listitem>
<para><option>--meta</option>
<option>key</option><command>=</command><parameter>value</parameter>.
Arbitrary key and value metadata that
is written to
<filename>/meta.js</filename> on
the new server. Can be specified
multiple times.</para>
</listitem>
<listitem>
<para><option>--file</option>
<parameter>dst-path</parameter>=<parameter>src-path</parameter>.
Stores arbitrary files from
<parameter>src-path</parameter>
locally to <parameter>dst-
path</parameter> on the new server.
You can store up to five files.
</para>
</listitem>
<listitem>
<para><option>--key_name</option>
<parameter>key_name</parameter>. Key
name of key pair. First, create the
key pair with the
<command>keypair-add</command>
command.</para>
</listitem>
<?sbr?>
<listitem>
<para><option>--user_data</option>
<parameter>user-data</parameter>. User
data file, which is exposed by the
metadata server.</para>
</listitem>
<listitem>
<para><option>--availability_zone</option>
<parameter>availability-zone</parameter>.
The availability zone for instance
placement.</para>
</listitem>
<listitem>
<para><option>--security_groups</option>
<parameter>security_groups</parameter>.
A comma-separated list of security
group names.</para>
</listitem>
<listitem>
<para><option>--block_device_mapping</option>
<parameter>dev_name=mapping</parameter>.
Block device mapping in the format:
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> dev_name=<parameter>id</parameter>:type:<parameter>size(GB)</parameter>:delete_on_terminate</programlisting></para>
</listitem>
<listitem>
<para><option>--hint</option>
<parameter>key</parameter>=<parameter>value</parameter>.
Arbitrary key and value pairs that are
sent to the scheduler for custom use.
</para>
</listitem>
<listitem>
<para><option>--nic
net-id=</option><parameter>private-net-id</parameter>,
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>.
Creates a NIC on the server. Specify
this option multiple times to create
multiple NICs. Optionally, to attach a
NIC with a specified UUID to a
network, specify the
<option>net-id</option>=<parameter>private-net-id</parameter>
parameter.</para>
<para>Optionally, specify the
<option>v4-fixed-ip=</option><parameter>ip-addr</parameter>
parameter to specify an IPv4 fixed
address for NIC.</para>
<para>If you do not specify any networks
on the <option>--nic</option>
parameter, the Internet and ServiceNet
are attached to your server.</para>
<note>
<para>ServiceNet is labeled as
<literal>private</literal> and the
Internet is labeled as
<literal>public</literal> in the
network list.</para>
</note>
<para>If you specify additional networks
through the <option>—nic</option>
parameter, these networks, in addition
to the Internet and ServiceNet, are
attached to your server.</para>
<para>You can specify the optional
<option>--no-public</option> and
<option>--no-service-net</option>
parameters to opt out of attaching the
Internet and ServiceNet to your
server.</para>
<para>Specify the
<option>--no-public</option>
parameter to opt out of attaching the
Internet to your server.</para>
<para>Specify the
<option>--no-service-net</option>
parameter to opt out of attaching
ServiceNet to your server.</para>
</listitem>
<listitem>
<para><option>--config-drive</option>
<parameter>value</parameter>. Enables
a configuration drive.</para>
</listitem>
<listitem>
<para><option>--poll</option>. Blocks
while the instance builds so progress
can be reported.</para>
</listitem>
</itemizedlist>
<para>For example, you might issue the following
command to attach a NIC to your server.
Additionally, the Internet and ServiceNet are
attached to your
server.<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift boot my_server_with_network --flavor 2 --image d42f821e-c2d1-4796-9f07-af5ed7912d0e --nic net-id=e65accc0-1d98-45eb-af76-ab3d31edc7d2</programlisting></para>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete isolated
network</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift network-delete &lt;network_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to
delete.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
<section xml:id="swift_summary_virtualints">
<title>Virtual Interfaces</title>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">List virtual interfaces for
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-list &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional argument</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance for which you
want to list virtual
interfaces.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Attach virtual interface to
an existing server</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-create &lt;network_id&gt; &lt;instance_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to attach to the
server.</para>
</listitem>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance to which you
want to attach the virtual
interface.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
<variablelist wordsize="10%">
<varlistentry>
<term>
<emphasis role="bold">Delete a virtual interface
and detach it from an instance</emphasis>
</term>
<listitem>
<programlisting language="bash" role="gutter: false"><prompt>$</prompt> swift virtual-interface-delete &lt;instance_id&gt; &lt;interface_id&gt;</programlisting>
<itemizedlist>
<title>Positional arguments</title>
<listitem>
<para><parameter>instance_id</parameter>.
The ID of the instance from which you
want to remove the virtual
interface.</para>
</listitem>
<listitem>
<para><parameter>network_id</parameter>.
The ID of the network to remove from
the instance.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>

View File

@ -4,11 +4,60 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="checking_version_cli">
<title>Get the version for a client</title>
<para>After you install an OpenStack client, you can search
for its version number, as follows:</para>
<screen><prompt>$</prompt> <userinput>pip freeze | grep python-</userinput></screen>
<screen><computeroutput>python-glanceclient==0.4.0
<para>After you install an OpenStack client, you can get its
version number, as follows:</para>
<procedure>
<step>
<para>Run the following command get the
version number for a client:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>PROJECT --version</userinput></screen>
<para>Where <replaceable>PROJECT</replaceable>
is the project name and has one of the
following values:</para>
<itemizedlist>
<listitem>
<para><literal>nova</literal>.
Compute API and extensions.</para>
</listitem>
<listitem>
<para><literal>neutron</literal>.
Networking API.</para>
</listitem>
<listitem>
<para><literal>keystone</literal>.
Identity Service API.</para>
</listitem>
<listitem>
<para><literal>glance</literal>.
Image Service API.</para>
</listitem>
<listitem>
<para><literal>swift</literal>.
Object Storage API.</para>
</listitem>
<listitem>
<para><literal>cinder</literal>.
Block Storage Service API.</para>
</listitem>
<listitem>
<para><literal>heat</literal>.
Orchestration API.</para>
</listitem>
</itemizedlist>
<para>For example, to see the version of the
nova client, run the following
command:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>nova --version</userinput></screen>
<screen><computeroutput><?db-font-size 75%?>2.14.1.17</computeroutput></screen>
<para>To see the version of the keystone
client, run the following
command:</para>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>keystone --version</userinput></screen>
<screen><computeroutput><?db-font-size 75%?>0.3.1.73</computeroutput></screen>
</step>
</procedure>
<!-- <screen><prompt>$</prompt> <userinput><?db-font-size 75%?>pip freeze | grep python-</userinput></screen>
<screen><computeroutput><?db-font-size 75%?>python-glanceclient==0.4.0
python-keystoneclient==0.1.2
-e git+https://github.com/openstack/python-novaclient.git@077cc0bf22e378c4c4b970f2331a695e440a939f#egg=python_novaclient-dev
python-neutronclient==0.1.1
@ -16,7 +65,7 @@ python-swiftclient==1.1.1</computeroutput></screen>
<para>You can also use the <command>yolk
-l</command> command to see which version of
the client is installed:</para>
<screen><prompt>$</prompt> <userinput>yolk -l | grep python-novaclient</userinput></screen>
<screen><computeroutput>python-novaclient - 2.6.10.27 - active development (/Users/your.name/src/cloud-servers/src/src/python-novaclient)
python-novaclient - 2012.1 - non-active </computeroutput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>yolk -l | grep python-novaclient</userinput></screen>
<screen><computeroutput><?db-font-size 75%?>python-novaclient - 2.6.10.27 - active development (/Users/your.name/src/cloud-servers/src/src/python-novaclient)
python-novaclient - 2012.1 - non-active </computeroutput></screen> -->
</section>

View File

@ -1,224 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="config-drive">
<title>Config drive</title>
<simplesect>
<title>Introduction</title>
<para>OpenStack can be configured to write metadata to a special configuration drive that will
be attached to the instance when it boots. The instance can retrieve any information that
would normally be available through the <link linkend="metadata-service">metadata service</link> by mounting this disk
and reading files from it.</para>
<para>One use case for the config drive is to pass networking configuration (e.g., IP address,
netmask, gateway) when DHCP is not being used to assign IP addresses to instances. The
instance's IP configuration can be transmitted using the config drive, which can be
mounted and accessed before the instance's network settings have been configured.</para>
<para>The config drive can be used by any guest operating system that is capable of mounting
an ISO9660 or VFAT file system. This functionality should be available on all modern
operating systems.</para>
<para>In addition, an image that has been built with a recent version of the cloud-init
package will be able to automatically access metadata passed via config drive. The
current version of cloud-init as of this writing (0.7.1) has been confirmed to work with
Ubuntu, as well as Fedora-based images such as RHEL.</para>
<para>If an image does not have the cloud-init package installed, the image must be
customized to run a script that mounts the config drive on boot, reads the data from the
drive, and takes appropriate action such as adding the public key to an account. See
below for details on how data is organized on the config drive.<note>
<para>To use config drive, the <command>genisoimage</command> program must be
installed on each compute host. In the Ubuntu packages, it is not installed by
default (see bug <link
xlink:href="https://bugs.launchpad.net/cloud-archive/+bug/1165174"
>#1165174</link>). Make sure you install this program on each compute host
before attempting to use config drive, or an instance will not boot
properly.</para>
</note>
<note><para>
If you use Xen with a config drive, disable the agent through the
<literal>xenapi_disable_agent</literal> configuration parameter.
</para></note>
</para>
</simplesect>
<simplesect>
<title>Enabling the config drive</title>
<para>To enable the config drive, pass the <literal>--config-drive=true</literal> parameter when
calling <command>nova boot</command>. Here is a complex example that enables the config
drive as well as passing user data, two files, and two key/value metadata pairs, all of
which will be accessible from the config drive as described below.</para>
<para>
<screen><prompt>$</prompt> <userinput>nova boot --config-drive=true --image my-image-name --key-name mykey --flavor 1 --user-data ./my-user-data.txt myinstance --file /etc/network/interfaces=/home/myuser/instance-interfaces --file known_hosts=/home/myuser/.ssh/known_hosts --meta role=webservers --meta essential=false</userinput></screen>
</para>
<para>You can also configure the Compute service to always create a config drive by setting the
following option in <filename>/etc/nova/nova.conf</filename>:
<programlisting>force_config_drive=true</programlisting></para>
<note><para>As of this writing, there is no mechanism for an administrator to disable use of the config
drive if a user passes the <literal>--config-drive=true</literal> flag to the
<command>nova boot</command> command.</para></note>
</simplesect>
<simplesect>
<title>Accessing the config drive from inside an instance</title>
<para>The config drive will have a volume label of <literal>config-2</literal>. If your guest OS
supports accessing disk by label, you should be able to mount the config drive as the
<filename>/dev/disk/by-label/config-2</filename> device. For
example:<screen><prompt>#</prompt> <userinput>mkdir -p /mnt/config</userinput>
<prompt>#</prompt> <userinput>mount /dev/disk/by-label/config-2 /mnt/config</userinput></screen></para>
<para>
<note>
<para>The cirros 0.3.0 test image does not have support for the config drive. Support
will be added in version 0.3.1.</para>
</note>
</para>
<para>If your guest operating system does not use <literal>udev</literal>, then the
<filename>/dev/disk/by-label</filename> directory will not be present. The
<command>blkid</command> command can be used to identify the block device that
corresponds to the config drive. For example, when booting the cirros image with the
m1.tiny flavor, the device will be <filename>/dev/vdb</filename>:</para>
<para><screen><prompt>#</prompt> <userinput>blkid -t LABEL="config-2" -odevice</userinput>
<computeroutput>/dev/vdb</computeroutput></screen>Once
identified, the device can then be mounted:</para>
<para>
<screen><prompt>#</prompt> <userinput>mkdir -p /mnt/config</userinput>
<prompt>#</prompt> <userinput>mount /dev/vdb /mnt/config</userinput></screen>
</para>
</simplesect>
<simplesect>
<title>Contents of the config drive</title>
<para>The files that will be present in the config drive will vary depending on the arguments
that were passed to <command>nova boot</command>. Based on the example above, the
contents of the config drive would be:</para>
<para>
<screen><computeroutput>ec2/2009-04-04/meta-data.json
ec2/2009-04-04/user-data
ec2/latest/meta-data.json
ec2/latest/user-data
openstack/2012-08-10/meta_data.json
openstack/2012-08-10/user_data
openstack/content
openstack/content/0000
openstack/content/0001
openstack/latest/meta_data.json
openstack/latest/user_data</computeroutput></screen>
</para>
</simplesect>
<simplesect>
<title>Guidelines for accessing config drive data</title>
<para>Do not rely on the presence of the EC2 metadata present in the config drive (i.e.,
files under the <filename>ec2</filename> directory), as this content may be removed in a
future release.</para>
<para>When creating images that access config drive data, if there are multiple directories
under the <filename>openstack</filename> directory, always select the highest API
version by date that your consumer supports. For example, if your guest image can
support versions 2012-03-05, 2012-08-05, 2013-04-13. It is best to try 2013-04-13 first
and fall back to an earlier version if it 2013-04-13 isn't present.</para>
</simplesect>
<simplesect>
<title>Format of OpenStack metadata</title>
<para>Here is an example of the contents of
<filename>openstack/2012-08-10/meta_data.json</filename>,
<filename>openstack/latest/meta_data.json</filename> (these two files are identical),
formatted to improve readability:</para>
<para>
<programlisting language="json">{
"availability_zone": "nova",
"files": [
{
"content_path": "/content/0000",
"path": "/etc/network/interfaces"
},
{
"content_path": "/content/0001",
"path": "known_hosts"
}
],
"hostname": "test.novalocal",
"launch_index": 0,
"name": "test",
"meta": {
"role": "webservers"
"essential": "false"
},
"public_keys": {
"mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
},
"uuid": "83679162-1378-4288-a2d4-70e13ec132aa"
}</programlisting>
</para>
<para>Note the effect of the <literal>--file
/etc/network/interfaces=/home/myuser/instance-interfaces</literal> argument passed
to the original <command>nova boot</command> command. The contents of this file are
contained in the file <filename>openstack/content/0000</filename> file on the config
drive, and the path is specified as <filename>/etc/network/interfaces</filename> in the
<filename>meta_data.json</filename> file.</para>
</simplesect>
<simplesect>
<title>Format of EC2 metadata</title>
<para>Here is an example of the contents of <filename>ec2/2009-04-04/meta-data.json</filename>,
<filename>latest/meta-data.json</filename> (these two files are identical) formatted to
improve readbility:</para>
<para>
<programlisting language="json">{
"ami-id": "ami-00000001",
"ami-launch-index": 0,
"ami-manifest-path": "FIXME",
"block-device-mapping": {
"ami": "sda1",
"ephemeral0": "sda2",
"root": "/dev/sda1",
"swap": "sda3"
},
"hostname": "test.novalocal",
"instance-action": "none",
"instance-id": "i-00000001",
"instance-type": "m1.tiny",
"kernel-id": "aki-00000002",
"local-hostname": "test.novalocal",
"local-ipv4": null,
"placement": {
"availability-zone": "nova"
},
"public-hostname": "test.novalocal",
"public-ipv4": "",
"public-keys": {
"0": {
"openssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
}
},
"ramdisk-id": "ari-00000003",
"reservation-id": "r-7lfps8wj",
"security-groups": [
"default"
]
}</programlisting>
</para>
</simplesect>
<simplesect>
<title>User data</title>
<para>The files <filename>openstack/2012-08-10/user_data</filename>,
<filename>openstack/latest/user_data</filename>,
<filename>ec2/2009-04-04/user-data</filename>, and
<filename>ec2/latest/user-data</filename>, will only be present if the
<literal>--user-data</literal> flag was passed to <command>nova boot</command> and
will contain the contents of the user data file passed as the argument.</para>
</simplesect>
<simplesect>
<title>Format of the config drive</title>
<para>The default format of the config drive as an ISO 9660 filesystem. To explicitly
specify the ISO 9660 format, add the following line to
<filename>/etc/nova/nova.conf</filename>:</para>
<para>
<programlisting>config_drive_format=iso9660</programlisting>
</para>
<para>For legacy reasons, the config drive can be configured to use VFAT format instead of ISO
9660. It is unlikely that you would require VFAT format, since ISO 9660 is widely
supported across operating systems. However, if you wish to use the VFAT format, add the
following line to <filename>/etc/nova/nova.conf</filename> instead:</para>
<para>
<programlisting>config_drive_format=vfat</programlisting>
</para>
<para>If VFAT is chosen, the config drive will be 64MB in size.</para>
</simplesect>
<simplesect>
<title>Configuration Reference</title>
<para>The following table contains all options for config drive.</para>
<xi:include href="../../common/tables/nova-configdrive.xml"/>
</simplesect>
</section>

View File

@ -9,221 +9,197 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="Launching_Instances_using_Dashboard">
<title>Set up access and security</title>
<title>Configure access and security for instances</title>
<?dbhtml stop-chunking?>
<para>Before you launch a virtual machine, you can add security
group rules to enable users to ping and SSH to the instances.
To do so, you either add rules to the default security group
or add a security group with rules. For information, see <xref
linkend="security_groups_add_rule"/>.</para>
or add a security group with rules.</para>
<para>Keypairs are SSH credentials that are injected into images
when they are launched. For this to work, the image must
contain the <literal>cloud-init</literal> package. For
information, see <xref linkend="keypair_add"/>.</para>
contain the <literal>cloud-init</literal> package. Create at
least one keypair for each project. For information, see <xref
linkend="keypair_add"/>.</para>
<para>If you have generated a keypair with an external tool, you
can import it into OpenStack. The keypair can be used for
multiple instances that belong to a project. For information,
see <xref linkend="dashboard_import_keypair"/>.</para>
<section xml:id="security_groups_add_rule">
<title>Add security group rules</title>
<para>The following procedure shows you how to add rules to
the default security group.</para>
<title>Add rules to the default security group</title>
<procedure>
<title>To add rules to the default security group</title>
<!-- <title>To add rules to the default security group</title> -->
<step>
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>If you are a member of multiple projects, select
a project from the drop-down list at the top of
the <guilabel>Project</guilabel> tab.</para>
</step>
<step>
<para>Click the <guilabel>Access &amp;
Security</guilabel> category.</para>
<para>The dashboard shows the security groups that are
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guilabel>Security</guilabel> category. The
dashboard shows the security groups that are
available for this project.</para>
<figure>
<title>OpenStack dashboard &ndash; Security
Groups</title>
<mediaobject>
<imageobject>
<imagedata
fileref="../../common/figures/access_security.png"
format="PNG" contentwidth="4in"/>
</imageobject>
</mediaobject>
</figure>
</step>
<step>
<para>Select the default security group and click
<guibutton>Edit Rules</guibutton>.</para>
<para>The <guilabel>Security Group Rules</guilabel>
page appears:</para>
<figure>
<title>OpenStack dashboard &ndash; Security Group
Rules</title>
<mediaobject>
<imageobject>
<imagedata
fileref="../../common/figures/security_group_rules.png"
format="PNG" contentwidth="4in"/>
</imageobject>
</mediaobject>
</figure>
</step>
<step>
<title>Add a TCP rule</title>
<para>Click <guibutton>Add Rule</guibutton>.</para>
<para>The <guilabel>Add Rule</guilabel> window
appears.</para>
<substeps>
<step>
<para>In the <guilabel>IP Protocol</guilabel>
list, select <literal>TCP</literal>.
</para>
</step>
<step>
<para>In the <guilabel>Open</guilabel> list,
select <literal>Port</literal>.</para>
</step>
<step>
<para>In the <guilabel>Port</guilabel> box,
enter <literal>22</literal>.</para>
</step>
<step>
<para>In the <guilabel>Source</guilabel> list,
select <literal>CIDR</literal>.</para>
</step>
<step>
<para>In the <guilabel>CIDR</guilabel> box,
enter <literal>0.0.0.0/0</literal>.</para>
</step>
<step>
<para>Click <guibutton>Add</guibutton>.</para>
<para>Port 22 is now open for requests from
any IP address.</para>
<para>If you want to accept requests from a
particular range of IP addresses, specify
the IP address block in the
<guilabel>CIDR</guilabel> box.</para>
</step>
</substeps>
<para>To add a TCP rule, click <guibutton>Add
Rule</guibutton>.</para>
</step>
<step>
<title>Add an ICMP rule</title>
<para>Click <guibutton>Add Rule</guibutton>.</para>
<para>The <guilabel>Add Rule</guilabel> window
appears.</para>
<substeps>
<step>
<para>In the <guilabel>IP Protocol</guilabel>
list, select <literal>ICMP</literal>.
</para>
</step>
<step>
<para>In the <guilabel>Type</guilabel> box,
enter <literal>-1</literal>.</para>
</step>
<step>
<para>In the <guilabel>Code</guilabel> box,
enter <literal>-1</literal>.</para>
</step>
<step>
<para>In the <guilabel>Source</guilabel> list,
select <literal>CIDR</literal>.</para>
</step>
<step>
<para>In the <guilabel>CIDR</guilabel> box,
enter <literal>0.0.0.0/0</literal>.</para>
</step>
<step>
<para>Click <guibutton>Add</guibutton>.</para>
</step>
</substeps>
<para>In the <guilabel>Add Rule</guilabel> window,
enter the following values:</para>
<informaltable rules="all" width="75%">
<col width="50%"/>
<col width="50%"/>
<tbody>
<tr>
<td><para><guilabel>IP
Protocol</guilabel></para></td>
<td>
<para><literal>TCP</literal></para></td>
</tr>
<tr>
<td><para><guilabel>Open</guilabel></para></td>
<td>
<para><literal>Port</literal></para></td>
</tr>
<tr>
<td>
<para><guilabel>Port</guilabel></para></td>
<td>
<para><literal>22</literal></para></td>
</tr>
<tr>
<td>
<para><guilabel>Source</guilabel>
</para></td>
<td>
<para><literal>CIDR</literal></para></td>
</tr>
<tr>
<td>
<para><guilabel>CIDR</guilabel></para></td>
<td>
<para><literal>0.0.0.0/0</literal></para>
</td>
</tr>
</tbody>
</informaltable>
<note>
<para>To accept requests from a particular range
of IP addresses, specify the IP address block
in the <guilabel>CIDR</guilabel> box.</para>
</note>
</step>
<step>
<para>Click <guibutton>Add</guibutton>.</para>
<para>Port 22 is now open for requests from any IP
address.</para>
</step>
<step>
<para>To add an ICMP rule, click <guibutton>Add
Rule</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Add Rule</guilabel> window,
enter the following values:</para>
<informaltable rules="all" width="75%">
<col width="50%"/>
<col width="50%"/>
<tr>
<td><para><guilabel>IP
Protocol</guilabel></para></td>
<td><para><literal>ICMP</literal></para></td>
</tr>
<tr>
<td><para><guilabel>Type</guilabel></para></td>
<td><para><literal>-1</literal></para></td>
</tr>
<tr>
<td><para><guilabel>Code</guilabel></para></td>
<td><para><literal>-1</literal></para></td>
</tr>
<tr>
<td><para><guilabel>Source</guilabel></para></td>
<td><para><literal>CIDR</literal></para></td>
</tr>
<tr>
<td><para><guilabel>CIDR</guilabel></para></td>
<td><para><literal>0.0.0.0/0</literal></para></td>
</tr>
</informaltable>
</step>
<step>
<para>Click <guibutton>Add</guibutton>.</para>
</step>
</procedure>
</section>
<section xml:id="keypair_add">
<title>Add keypairs</title>
<para>Create at least one keypair for each project. If you
have generated a keypair with an external tool, you can
import it into OpenStack. The keypair can be used for
multiple instances that belong to a project.</para>
<title>Add a keypair</title>
<para>Create at least one keypair for each project.</para>
<procedure>
<title>To add a keypair</title>
<step>
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>If you are a member of multiple projects, select
a project from the drop-down list at the top of
the <guilabel>Project</guilabel> tab.</para>
</step>
<step>
<para>Click the <guilabel>Access &amp;
<para>Log in to the OpenStack dashboard, choose a
project, and click the <guilabel>Access &amp;
Security</guilabel> category.</para>
</step>
<step>
<para>Click the <guilabel>Keypairs</guilabel> tab. The
dashboard shows the keypairs that are available
for this project.</para>
<para>The <guilabel>Keypairs</guilabel> tab shows the
keypairs that are available for this
project.</para>
</step>
<step>
<title>To add a keypair</title>
<para>Click <guibutton>Create Keypair</guibutton>.</para>
<para>The <guilabel>Create Keypair</guilabel> window
appears.</para>
<substeps>
<step>
<para>In the <guilabel>Keypair Name</guilabel>
box, enter a name for your keypair.
</para>
</step>
<step>
<para>Click <guibutton>Create
Keypair</guibutton>.</para>
</step>
<step>
<para>Respond to the prompt to download the
keypair.</para>
</step>
</substeps>
<para>Click <guibutton>Create
Keypair</guibutton>.</para>
</step>
<step>
<title>To import a keypair</title>
<para>Click <guibutton>Import Keypair</guibutton>.</para>
<para>The <guilabel>Import Keypair</guilabel> window
appears.</para>
<substeps>
<step>
<para>In the <guilabel>Keypair Name</guilabel>
box, enter the name of your keypair.
</para>
</step>
<step>
<para>In the <guilabel>Public Key</guilabel>
box, copy the public key.</para>
</step>
<step>
<para>Click <guibutton>Import
Keypair</guibutton>.</para>
</step>
</substeps>
<para>In the <guilabel>Create Keypair</guilabel>
window, enter a name for your keypair, and click
<guibutton>Create Keypair</guibutton>.</para>
</step>
<step>
<para>Save the <filename>*.pem</filename> file locally
and change its permissions so that only you can
read and write to the file:</para>
<para>
<screen><userinput><prompt>$</prompt> chmod 0600 MY_PRIV_KEY.pem</userinput></screen>
</para>
</step>
<step>
<para>Use the <command>ssh-add</command> command to
make the keypair known to
SSH:<screen><userinput><prompt>$</prompt> ssh-add MY_PRIV_KEY.pem</userinput></screen></para>
<para>Respond to the prompt to download the
keypair.</para>
</step>
</procedure>
<para>The public key of the keypair is registered in the Nova
database.</para>
</section>
<section xml:id="dashboard_import_keypair">
<title>Import a keypair</title>
<procedure>
<step>
<para>Log in to the OpenStack dashboard, choose a
project, and click the <guilabel>Access &amp;
Security</guilabel> category.</para>
</step>
<step>
<para>The <guilabel>Keypairs</guilabel> tab shows the
keypairs that are available for this
project.</para>
</step>
<step>
<para>Click <guibutton>Import
Keypair</guibutton>.</para>
</step>
<step>
<para>In the <guilabel>Import Keypair</guilabel>
window, enter the name of your keypair. In the
<guilabel>Public Key</guilabel> box, copy the
public key. Then, click <guibutton>Import
Keypair</guibutton>.</para>
</step>
<step>
<para>Save the <filename>*.pem</filename> file
locally. To change its permissions so that only
you can read and write to the file, run the
following command:</para>
<screen><userinput><prompt>$</prompt> chmod 0600 <replaceable>MY_PRIV_KEY</replaceable>.pem</userinput></screen>
</step>
<step>
<para>To make the keypair known to SSH, run the
<command>ssh-add</command> command:</para>
<screen><userinput><prompt>$</prompt> ssh-add <replaceable>MY_PRIV_KEY</replaceable>.pem</userinput></screen>
</step>
</procedure>
<para>The Compute database registers the public key of the
keypair.</para>
<para>The dashboard lists the keypair in the <guilabel>Access
&amp; Security</guilabel> category.</para>
</section>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="dashboard_configure_instances">
<title>Configure instances</title>
<para/>
</section>

View File

@ -9,14 +9,39 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="dashboard_launch_instances">
<title>Launch instances</title>
<?dbhtml stop-chunking?>
<para>Instances are virtual machines that run inside the cloud.
You can launch an instance directly from one of the available
OpenStack images or from an image that you have copied to a
persistent volume. The OpenStack Image Service provides a pool
of images that are accessible to members of different
projects.</para>
<title>Launch and manage instances</title>
<para>Instances are virtual machines that run inside the cloud.</para>
<para>You can <link
xlink:href="dashboard_launch_instances_from_image">launch
an instance from an OpenStack image</link>. The OpenStack
Image Service provides a pool of images that are accessible to
members of different projects.</para>
<para>You can also <link
xlink:href="dashboard_launch_instances_from_volume">launch
an instance from an image that you have copied to a
persistent volume</link>. The instance boots from the
volume, which is provided by <systemitem class="service"
>nova-volume</systemitem> through iSCSI. When you launch
an instance from a volume, especially note the following
steps:</para>
<itemizedlist>
<listitem>
<para>To select from which volume to boot, launch an
instance from an arbitrary image. The image you select
does not boot. It is replaced by the image on the
volume that you choose in the next steps.</para>
<para>To boot a Xen image from a volume, the image you
launch in must be the same type, fully virtualized or
paravirtualized, as the one on the volume.</para>
</listitem>
<listitem>
<para>Select the volume or volume snapshot from which to
boot. Enter a device name. Enter
<literal>vda</literal> for KVM images or
<literal>xvda</literal> for Xen images.</para>
</listitem>
</itemizedlist>
<?hard-pagebreak?>
<xi:include
href="section_dashboard_launch_instances_from_image.xml"/>
<?hard-pagebreak?>
@ -32,20 +57,96 @@
on TryStack.</para>
</note>
<procedure>
<title>To SSH in to your instance</title>
<step>
<para>Copy the IP address for your instance.</para>
</step>
<step>
<para>Use the SSH command to make a secure connection
to the instance. For example:</para>
<screen><userinput><prompt>$</prompt> ssh -i MyKey.pem ubuntu@10.0.0.2</userinput></screen>
<screen><prompt>$</prompt> <userinput>ssh -i MyKey.pem ubuntu@10.0.0.2</userinput></screen>
</step>
<step>
<para>A prompt asks, "Are you sure you want to
continue connection (yes/no)?" Type
<literal>yes</literal> and you have
successfully connected.</para>
<para>At the prompt, type
<literal>yes</literal>.</para>
</step>
</procedure>
</section>
<section xml:id="track_usage">
<title>Track usage for instances</title>
<para>You can track usage for instances for each tenant, also known as a project. You
can track costs per month by showing metrics like number
of VCPUs, disks, RAM, and uptime for all your
instances.</para>
<procedure>
<!-- <title>To track usage</title> -->
<step>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guilabel>Overview</guilabel> category.</para>
</step>
<step>
<para>To query the instance usage for a month, select
a month and click
<guibutton>Submit</guibutton>.</para>
</step>
<step>
<para>To download a summary, click <guibutton>Download
CSV Summary</guibutton>.</para>
</step>
</procedure>
</section>
<section xml:id="instance_snapshots">
<title>Create instance snapshots</title>
<procedure>
<step>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guilabel>Instances</guilabel>
category.</para>
</step>
<step>
<para>Select the instance from which to create a
snapshot. From the <guilabel>Actions</guilabel>
drop-down list, select <guilabel>Create
Snapshot</guilabel>.</para>
</step>
<step>
<para>In the <guilabel>Create Snapshot</guilabel>
window, enter a name for the snapshot. Click
<guibutton>Create Snapshot</guibutton>. The
<guilabel>Images &amp; Snapshots</guilabel>
category shows the instance snapshot.</para>
</step>
<step>
<para>To launch an instance from the snapshot, select
the snapshot and click
<guibutton>Launch</guibutton>. Proceed with
<xref
linkend="dashboard_launch_instances_from_image"
/>.</para>
</step>
</procedure>
</section>
<section xml:id="control_instance_states">
<title>Control the state of an instance</title>
<procedure>
<!--<title>To control the state of an instance</title> -->
<step>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guilabel>Instances</guilabel>
category.</para>
</step>
<step>
<para>Select an instance.</para>
</step>
<step>
<para>In the <guilabel>More</guilabel> drop-down list
in the <guilabel>Actions</guilabel> column, select
the state.</para>
<para>Depending on the current state of the instance,
you can choose to pause, resume, suspend, soft or
hard reboot, or terminate an instance.</para>
</step>
</procedure>
</section>

View File

@ -12,21 +12,13 @@
<title>Launch an instance from an image</title>
<?dbhtml stop-chunking?>
<para>When you launch an instance from an image, OpenStack creates
a local copy of the image on the respective compute node where
the instance is started.</para>
a local copy of the image on the Compute node where the
instance starts.</para>
<procedure>
<title>To launch an instance from an image</title>
<step>
<para>Log in to the OpenStack dashboard.</para>
</step>
<step>
<para>If you are a member of multiple projects, select a
project from the drop-down list at the top of the
<guilabel>Project</guilabel> tab.</para>
</step>
<step>
<para>Click the <guilabel>Images &amp; Snapshot</guilabel>
category.</para>
<para>Log in to the OpenStack dashboard, choose a project,
and click the <guilabel>Images &amp;
Snapshot</guilabel> category.</para>
<para>The dashboard shows the images that have been
uploaded to OpenStack Image Service and are available
for this project.</para>
@ -37,75 +29,125 @@
</step>
<step>
<para>In the <guilabel>Launch Image</guilabel> window,
specify the following:</para>
specify the following values:</para>
<informaltable rules="all">
<col width="30%"/>
<col width="70%"/>
<thead>
<tr>
<th colspan="2" align="center"
><guilabel>Details</guilabel> tab</th>
</tr>
</thead>
<tbody>
<tr>
<td><para><guilabel>Instance
Source</guilabel></para></td>
<td><para>Image or snapshot.</para></td>
</tr>
<tr>
<td><para><guilabel>Instance
Name</guilabel></para></td>
<td><para>The name to assign to the virtual
machine.</para></td>
</tr>
<tr>
<td>
<para><guilabel>Flavor</guilabel></para></td>
<td><para>The size of the virtual machine to
launch.</para></td>
</tr>
<tr>
<td><para><guilabel>Instance
Count</guilabel></para></td>
<td><para>To launch multiple instances, enter
a value greater than 1. Default is 1.
</para></td>
</tr>
<tr>
<th colspan="2" align="center"
><guilabel>Access &amp;
Security</guilabel> tab</th>
</tr>
<tr>
<td><para><guilabel>Keypair</guilabel></para></td>
<td><para>A keypair.</para>
<para>In case an image uses a static root
password or a static key set (neither
is recommended), you do not need to
provide a keypair to launch the
instance.</para></td>
</tr>
<tr>
<td><para><guilabel>Security
Groups</guilabel></para></td>
<td><para>Activate the security groups that
you want to assign to the
instance.</para>
<para>Security groups are a kind of cloud
firewall that define which incoming
network traffic is forwarded to
instances. For details, see <xref
linkend="security_groups_add_rule"
/>.</para>
<para>If you have not created any security
groups, you can assign only the
default security group to the
instance.</para></td>
</tr>
<tr>
<th colspan="2" align="center"
><guilabel>Volume Options</guilabel>
tab</th>
</tr>
<tr>
<td><para><guilabel>Volume
Options</guilabel></para></td>
<td><para>Not applicable when you launch an
instance from an image.</para><para>To
launch from a volume or volume
snapshot, select the appropriate
option in the <guilabel>Volume
Options</guilabel> drop-down list.
Then, choose the volume or
snapshot.</para>
<para>For information about how to create
a bootable volume, see <xref
linkend="dashboard_launch_instances_from_volume"
/>.</para></td>
</tr>
<tr>
<th colspan="2" align="center"
><guilabel>Post-Creation</guilabel>
tab</th>
</tr>
<tr>
<td><para><guilabel>Customization
Script</guilabel></para></td>
<td><para>A customization script that runs
after your instance
launches.</para></td>
</tr>
</tbody>
</informaltable>
</step>
<step>
<substeps>
<step>
<para>Enter an instance name to assign to the
virtual machine.</para>
</step>
<step>
<para>From the <guilabel>Flavor</guilabel>
drop-down list, select the size of the virtual
machine to launch.</para>
</step>
<step>
<para>Select a keypair.</para>
<para>In case an image uses a static root password
or a static key set (neither is recommended),
you do not need to provide a keypair to launch
the instance.</para>
</step>
<step>
<para>In <guilabel>Instance Count</guilabel>,
enter the number of virtual machines to launch
from this image.</para>
</step>
<step>
<para>Activate the security groups that you want
to assign to the instance.</para>
<para>Security groups are a kind of cloud firewall
that define which incoming network traffic
should be forwarded to instances. For details,
see <xref linkend="security_groups_add_rule"/>.</para>
<para>If you have not created any specific
security groups, you can only assign the
instance to the default security group.
</para>
</step>
<step>
<para>If you want to boot from volume, click the
respective entry to expand its options. Set
the options as described in <xref
linkend="dashboard_launch_instances_from_volume"
/>.</para>
</step>
</substeps>
<para>Click <guibutton>Launch</guibutton>. The instance
starts on a Compute node in the cloud.</para>
</step>
<step>
<para>Click <guibutton>Launch Instance</guibutton>. The
instance is started on any of the compute nodes in the
cloud.</para>
<para>The <guilabel>Instances</guilabel> category shows
the instance name, its private and public IP
addresses, size, status, task, and power state.</para>
</step>
<step>
<para>If you did not provide a keypair, security groups,
or rules so far, users can only access the instance
from inside the cloud through VNC. Even pinging the
instance is not possible. To access the instance
through a VNC console, see <xref
linkend="instance_console"/>.</para>
</step>
</procedure>
<para>After you have launched an instance, switch to the
<guilabel>Instances</guilabel> category to view the
instance name, its (private or public) IP address, size,
status, task, and power state.</para>
<figure>
<title>OpenStack dashboard &ndash; Instances</title>
<mediaobject>
<imageobject>
<imagedata
fileref="../../common/figures/instances.png"
format="PNG" contentwidth="4in"/>
</imageobject>
</mediaobject>
</figure>
<para>If you did not provide a keypair, security groups, or rules
so far, by default the instance can only be accessed from
inside the cloud through VNC at this point. Even pinging the
instance is not possible. To access the instance through a VNC
console, see <xref linkend="instance_console"/>.</para>
</section>

View File

@ -13,46 +13,11 @@
<?dbhtml stop-chunking?>
<para>You can launch an instance directly from an image that has
been copied to a persistent volume.</para>
<para>In that case, the instance is booted from the volume, which
is provided by nova-volume, through iSCSI.</para>
<para>For preparation details, see <xref
linkend="create_or_delete_volumes"/>.</para>
<para>To boot an instance from the volume, especially note the
following steps: <itemizedlist>
<listitem>
<para>To be able to select from which volume to boot,
launch an instance from an arbitrary image. The
image you select does not boot. It is replaced by
the image on the volume that you choose in the
next steps.</para>
<para>In case you want to boot a Xen image from a
volume, note the following requirement: The image
you launch in must be the same type, fully
virtualized or paravirtualized, as the one on the
volume.</para>
</listitem>
<listitem>
<para>Select the volume or volume snapshot to boot
from.</para>
<para>Enter a device name. Enter
<literal>vda</literal> for KVM images or
<literal>xvda</literal> for Xen images.</para>
</listitem>
</itemizedlist></para>
<procedure>
<title>To launch an instance from a volume</title>
<para>You can launch an instance directly from one of the
images available through the OpenStack Image Service or
from an image that you have copied to a persistent volume.
When you launch an instance from a volume, the procedure
is basically the same as when launching an instance from
an image in OpenStack Image Service, except for some
additional steps.</para>
<!--<title>To launch an instance from a volume</title> -->
<step>
<para>Create a volume as described in <xref
linkend="create_or_delete_volumes"/>.</para>
<para>It must be large enough to store an unzipped image.
</para>
<para>Create a volume that is large enough to store an
unzipped image.</para>
</step>
<step>
<para>Create an image.</para>
@ -66,9 +31,7 @@
<para>Launch an instance.</para>
</step>
<step>
<para>Attach the volume to the instance as described in
<xref linkend="attach_volumes_to_instances"/>.
</para>
<para>Attach the volume to the instance.</para>
</step>
<step>
<para>Assuming that the attached volume is mounted as
@ -93,31 +56,19 @@
</itemizedlist>
</step>
<step>
<para>Only <emphasis role="italic">detached</emphasis>
volumes are available for booting. Detach the volume.
</para>
<para>Because only <emphasis role="italic"
>detached</emphasis> volumes are available for
booting, detach the volume.</para>
</step>
<step>
<para>To launch an instance from the volume, continue with
<xref linkend="dashboard_launch_instances_from_image"
<para>Now, you can launch an instance from an image
that has been copied to the volume. The
instance is booted from the volume, which is provided
by <systemitem class="service"
>nova-volume</systemitem> through iSCSI. To launch
an instance from the volume, see <xref
linkend="dashboard_launch_instances_from_image"
/>.</para>
</step>
<step>
<para>You can launch an instance directly from one of the
images available through the OpenStack Image Service.
When you do that, OpenStack creates a local copy of
the image on the respective compute node where the
instance is started.</para>
<note>
<title>Launch instances from a volume</title>
<para>Alternatively, you can start an instance from an
image that has been copied to a persistent volume.
In that case, the instance is booted from the
volume, which is provided by nova-volume, through
iSCSI.</para>
<para>For preparation details, see <xref
linkend="create_or_delete_volumes"/>.</para>
</note>
</step>
</procedure>
</section>

View File

@ -4,7 +4,7 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="dashboard_manage_instances">
<title>Manage instances</title>
<title>Create instance snapshots</title>
<?dbhtml stop-chunking?>
<section xml:id="instance_snapshots">
<title>Create instance snapshots</title>

View File

@ -11,88 +11,49 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="dashboard_manage_volumes">
<title>Manage volumes</title>
<?dbhtml stop-chunking?>
<?dbhtml stop-chunking?>
<para>Volumes are block storage devices that you can attach to
instances. They allow for persistent storage as they can be attached to
a running instance, or detached and attached to another
instance at any time.</para>
<para>In contrast to the instance's root disk, the data of volumes
is not destroyed when the instance is deleted.</para>
<section xml:id="create_or_delete_volumes">
<title>Create or delete a volume</title>
instances. They allow for persistent storage. You can attach a
volume to a running instance, or detach a volume and attach it
to another instance at any time.</para>
<section xml:id="dashboard_create_volumes">
<title>Create a volume</title>
<procedure>
<title>To create or delete a volume</title>
<!-- <title>To create or delete a volume</title> -->
<step>
<para>Log in to the OpenStack dashboard.</para>
<para>Log in to the OpenStack dashboard, choose a
project, and, click the
<guibutton>Volumes</guibutton>
category.</para>
</step>
<step>
<para>If you are a member of multiple projects, select
a <guilabel>Project</guilabel> from the drop-down
list at the top of the tab.</para>
<para>Click <guibutton>Create
Volume</guibutton>.</para>
<para>In the window that opens, enter a name to assign
to a volume, a description (optional), and define
the size in GBs.</para>
</step>
<step>
<para>Click the <guibutton>Volumes</guibutton> category.</para>
<para>Confirm your changes.</para>
</step>
<step>
<title>To create a volume</title>
<substeps>
<step>
<para>Click <guibutton>Create
Volume</guibutton>.</para>
<para>In the window that opens, enter a name
to assign to a volume, a description
(optional), and define the size in GBs.
</para>
</step>
<step>
<para>Confirm your changes.</para>
</step>
<step>
<para>The dashboard shows the volume in the
<guilabel>Volumes</guilabel> category.</para>
</step>
</substeps>
</step>
<step>
<title>To delete one or multiple volumes</title>
<substeps>
<step>
<para>Activate the check boxes in front of the
volumes that you want to delete.</para>
</step>
<step>
<para>Click <guibutton>Delete
Volumes</guibutton> and confirm your
choice in the pop-up that appears.</para>
</step>
<step>
<para>A message indicates whether the
action was successful.</para>
</step>
</substeps>
<para>The dashboard shows the volume in the
<guilabel>Volumes</guilabel> category.</para>
</step>
</procedure>
<para>After you create one or more volumes, you can attach
them to instances.</para>
<para>You can attach a volume to one instance at a time.</para>
<para>View the status of a volume in the <guilabel>Instances
&amp; Volumes</guilabel> category of the dashboard:
the volume is either available or In-Use.</para>
</section>
<section xml:id="attach_volumes_to_instances">
<title>Attach volumes to instances</title>
<procedure>
<title>To attach volumes to instances</title>
<para>After you create one or more volumes, you can attach
them to instances.</para>
<procedure>
<!--<title>To attach volumes to instances</title>-->
<step>
<para>Log in to OpenStack dashboard.</para>
</step>
<step>
<para>If you are a member of multiple projects, select
a <guilabel>Project</guilabel> from the drop-down
list at the top of the tab.</para>
</step>
<step>
<para>Click the <guibutton>Volumes</guibutton> category.</para>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guibutton>Volumes</guibutton>
category.</para>
</step>
<step>
<para>Select the volume to add to an instance and
@ -113,44 +74,45 @@
<para>Click <guibutton>Attach Volume</guibutton> to
confirm your changes. The dashboard shows the
instance to which the volume has been attached and
the volume's device name.</para>
the volume's device name. You can attach a volume
to one instance at a time.</para>
</step>
<step>
<para>View the status of a volume in the
<guilabel>Instances &amp; Volumes</guilabel>
category of the dashboard. The volume is either
available or In-Use.</para>
</step>
<step>
<para>Now you can log in to the instance, mount the
disk, format it, and use it.</para>
</step>
<!-- <step>
<para>If the instance is running the latest SUSE Linux
Enterprise Server SP2 Kernel, it is not necessary
to reboot the virtual machine to make the device
appear. Otherwise load the acpiphp module
manually:</para>
<programlisting><prompt>$</prompt> modprobe acpiphp</programlisting>
</step>-->
</procedure>
</section>
<section xml:id="dashboard_detach_volume">
<title>Detach a volume from an instance</title>
<procedure>
<step>
<title>To detach a volume from an instance</title>
<substeps>
<step>
<para>Select the volume and click
<guibutton>Edit
Attachments</guibutton>.</para>
</step>
<step>
<para>Click
<guibutton>Detach Volume</guibutton>
and confirm your changes.</para>
</step>
<step>
<para>A message indicates whether the
action was successful.</para>
</step>
</substeps>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guibutton>Volumes</guibutton>
category.</para>
</step>
<step>
<para>Select the volume and click <guibutton>Edit
Attachments</guibutton>.</para>
</step>
<step>
<para>Click <guibutton>Detach Volume</guibutton> and
confirm your changes.</para>
</step>
<step>
<para>A message indicates whether the action was
successful.</para>
</step>
</procedure>
</section>
<!-- <section xml:id="create_volume_snapsnots">
<!-- <section xml:id="create_volume_snapsnots">
<title>Create volume snapshots</title>
<procedure>
@ -188,4 +150,30 @@
</step>
</procedure>
</section>-->
<section xml:id="dashboard_delete_volume">
<title>Delete volumes</title>
<para>When you delete an instance, the data of its attached
volumes is not destroyed.</para>
<procedure>
<step>
<para>Log in to the OpenStack dashboard, choose a
project, and click the
<guibutton>Volumes</guibutton>
category.</para>
</step>
<step>
<para>Activate the check boxes in front of the volumes
that you want to delete.</para>
</step>
<step>
<para>Click <guibutton>Delete Volumes</guibutton> and
confirm your choice in the pop-up that
appears.</para>
</step>
<step>
<para>A message indicates whether the action was
successful.</para>
</step>
</procedure>
</section>
</section>

View File

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="glance_commands">
<title>glance commands</title>
<para>The glance client is the command-line interface (CLI) for the
OpenStack Image Service API.</para>
<para>For help on a specific glance command, enter:</para>
<screen><userinput><command>glance</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
<title>Usage</title>
<screen><computeroutput> glance [--version] [-d] [-v] [-k] [--cert-file CERT_FILE]
[--key-file KEY_FILE] [--os-cacert &lt;ca-certificate-file>]
[--ca-file OS_CACERT] [--timeout TIMEOUT] [--no-ssl-compression]
[-f] [--dry-run] [--ssl] [-H ADDRESS] [-p PORT]
[--os-username OS_USERNAME] [-I OS_USERNAME]
[--os-password OS_PASSWORD] [-K OS_PASSWORD]
[--os-tenant-id OS_TENANT_ID] [--os-tenant-name OS_TENANT_NAME]
[-T OS_TENANT_NAME] [--os-auth-url OS_AUTH_URL] [-N OS_AUTH_URL]
[--os-region-name OS_REGION_NAME] [-R OS_REGION_NAME]
[--os-auth-token OS_AUTH_TOKEN] [-A OS_AUTH_TOKEN]
[--os-image-url OS_IMAGE_URL] [-U OS_IMAGE_URL]
[--os-image-api-version OS_IMAGE_API_VERSION]
[--os-service-type OS_SERVICE_TYPE]
[--os-endpoint-type OS_ENDPOINT_TYPE] [-S OS_AUTH_STRATEGY]
&lt;subcommand> ...</computeroutput></screen>
</example>
<example>
<title>Positional arguments</title>
<screen><computeroutput>&lt;subcommand>
add DEPRECATED! Use image-create instead.
clear DEPRECATED!
delete DEPRECATED! Use image-delete instead.
details DEPRECATED! Use image-list instead.
image-create Create a new image.
image-delete Delete specified image(s).
image-download Download a specific image.
image-list List images you can access.
image-members DEPRECATED! Use member-list instead.
image-show Describe a specific image.
image-update Update a specific image.
index DEPRECATED! Use image-list instead.
member-add DEPRECATED! Use member-create instead.
member-create Share a specific image with a tenant.
member-delete Remove a shared image from a tenant.
member-images DEPRECATED! Use member-list instead.
member-list Describe sharing permissions by image or tenant.
members-replace DEPRECATED!
show DEPRECATED! Use image-show instead.
update DEPRECATED! Use image-update instead.
help Display help about this program or one of its
subcommands.</computeroutput></screen>
</example>
<example>
<title>Optional arguments</title>
<screen><computeroutput> --version show program's version number and exit
-d, --debug Defaults to env[GLANCECLIENT_DEBUG]
-v, --verbose Print more verbose output
-k, --insecure Explicitly allow glanceclient to perform "insecure
SSL" (https) requests. The server's certificate will
not be verified against any certificate authorities.
This option should be used with caution.
--cert-file CERT_FILE
Path of certificate file to use in SSL connection.
This file can optionally be prepended with the private
key.
--key-file KEY_FILE Path of client key to use in SSL connection. This
option is not necessary if your key is prepended to
your cert file.
--os-cacert &lt;ca-certificate-file>
Path of CA TLS certificate(s) used to verify the
remote server's certificate. Without this option
glance looks for the default system CA certificates.
--ca-file OS_CACERT DEPRECATED! Use --os-cacert.
--timeout TIMEOUT Number of seconds to wait for a response
--no-ssl-compression Disable SSL compression when using https.
-f, --force Prevent select actions from requesting user
confirmation.
--dry-run DEPRECATED! Only used for deprecated legacy commands.
--ssl DEPRECATED! Send a fully-formed endpoint using --os-
image-url instead.
-H ADDRESS, --host ADDRESS
DEPRECATED! Send a fully-formed endpoint using --os-
image-url instead.
-p PORT, --port PORT DEPRECATED! Send a fully-formed endpoint using --os-
image-url instead.
--os-username OS_USERNAME
Defaults to env[OS_USERNAME]
-I OS_USERNAME DEPRECATED! Use --os-username.
--os-password OS_PASSWORD
Defaults to env[OS_PASSWORD]
-K OS_PASSWORD DEPRECATED! Use --os-password.
--os-tenant-id OS_TENANT_ID
Defaults to env[OS_TENANT_ID]
--os-tenant-name OS_TENANT_NAME
Defaults to env[OS_TENANT_NAME]
-T OS_TENANT_NAME DEPRECATED! Use --os-tenant-name.
--os-auth-url OS_AUTH_URL
Defaults to env[OS_AUTH_URL]
-N OS_AUTH_URL DEPRECATED! Use --os-auth-url.
--os-region-name OS_REGION_NAME
Defaults to env[OS_REGION_NAME]
-R OS_REGION_NAME DEPRECATED! Use --os-region-name.
--os-auth-token OS_AUTH_TOKEN
Defaults to env[OS_AUTH_TOKEN]
-A OS_AUTH_TOKEN, --auth_token OS_AUTH_TOKEN
DEPRECATED! Use --os-auth-token.
--os-image-url OS_IMAGE_URL
Defaults to env[OS_IMAGE_URL]
-U OS_IMAGE_URL, --url OS_IMAGE_URL
DEPRECATED! Use --os-image-url.
--os-image-api-version OS_IMAGE_API_VERSION
Defaults to env[OS_IMAGE_API_VERSION] or 1
--os-service-type OS_SERVICE_TYPE
Defaults to env[OS_SERVICE_TYPE]
--os-endpoint-type OS_ENDPOINT_TYPE
Defaults to env[OS_ENDPOINT_TYPE]
-S OS_AUTH_STRATEGY, --os_auth_strategy OS_AUTH_STRATEGY
DEPRECATED! This option is completely ignored.</computeroutput></screen>
</example>
</section>

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="glance_commands">
<title>glance commands</title>
<para>Describes commands for glance, which is the command-line
interface for the OpenStack Image Service API.</para>
<para>The glance client is the command-line interface (CLI) for the
OpenStack Image Service API.</para>
<para>For help on a specific glance command, enter:</para>
<screen><userinput><command>glance</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>

View File

@ -12,7 +12,7 @@
<para>To create a stack, or template, from an <link
xlink:href="https://github.com/openstack/heat-templates">example template
file</link>, run following command:</para>
<screen><prompt>$</prompt> <userinput>heat stack-create mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance.template
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat stack-create mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance.template
--parameters="InstanceType=m1.large;DBUsername=wp;DBPassword=verybadpassword;KeyName=heat_key;LinuxDistribution=F17"</userinput></screen>
<para>The <literal>--parameters</literal> values that you specify
depend on which parameters are defined in the
@ -22,7 +22,7 @@
instead of the <literal>--template-file</literal>
parameter.</para>
<para>The command returns the following output:</para>
<screen><computeroutput>+--------------------------------------+---------------+--------------------+----------------------+
<screen><computeroutput><?db-font-size 65%?>+--------------------------------------+---------------+--------------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+---------------+--------------------+----------------------+
| 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | CREATE_IN_PROGRESS | 2013-04-03T23:22:08Z |
@ -33,7 +33,7 @@
command to validate a template file without creating a
stack from it.</para>
<para>To do so, run the following command:</para>
<screen><prompt>$</prompt> <userinput>heat stack-create mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance.template</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat stack-create mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance.template</userinput></screen>
<para>If validation fails, the response returns an error
message.</para>
</step>
@ -43,7 +43,7 @@
<step>
<para>To see which stacks are visible to the current user,
run the following command:
<screen><prompt>$</prompt> <userinput>heat stack-list</userinput></screen><screen><computeroutput>+--------------------------------------+---------------+-----------------+----------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat stack-list</userinput></screen><screen><computeroutput><?db-font-size 65%?>+--------------------------------------+---------------+-----------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+---------------+-----------------+----------------------+
| 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | CREATE_COMPLETE | 2013-04-03T23:22:08Z |
@ -57,12 +57,12 @@
<step>
<para>To show the details of a stack, run the following
command:</para>
<screen><prompt>$</prompt> <userinput>heat stack-show mystack</userinput></screen></step>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat stack-show mystack</userinput></screen></step>
<step><para>A stack consists of a collection of resources. To list the
resources, including their status, in a stack, run the
following command:</para>
<screen><prompt>$</prompt> <userinput>heat resource-list mystack</userinput></screen>
<screen><computeroutput>+---------------------+--------------------+-----------------+----------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat resource-list mystack</userinput></screen>
<screen><computeroutput><?db-font-size 65%?>+---------------------+--------------------+-----------------+----------------------+
| logical_resource_id | resource_type | resource_status | updated_time |
+---------------------+--------------------+-----------------+----------------------+
| WikiDatabase | AWS::EC2::Instance | CREATE_COMPLETE | 2013-04-03T23:25:56Z |
@ -71,14 +71,14 @@
<step>
<para>To show the details for the specified resource in a
stack, run the following command:</para>
<screen><prompt>$</prompt> <userinput>heat resource-show mystack WikiDatabase</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat resource-show mystack WikiDatabase</userinput></screen>
<para>Some resources have associated metadata which can
change throughout the life-cycle of a resource:</para>
<screen><prompt>$</prompt> <userinput>heat resource-metadata mystack WikiDatabase</userinput></screen></step>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat resource-metadata mystack WikiDatabase</userinput></screen></step>
<step><para>A series of events is generated during the
life-cycle of a stack. This command will display those
events.</para>
<screen><prompt>$</prompt> <userinput>heat event-list mystack</userinput></screen><screen><computeroutput>+---------------------+----+------------------------+-----------------+----------------------+
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat event-list mystack</userinput></screen><screen><computeroutput><?db-font-size 65%?>+---------------------+----+------------------------+-----------------+----------------------+
| logical_resource_id | id | resource_status_reason | resource_status | event_time |
+---------------------+----+------------------------+-----------------+----------------------+
| WikiDatabase | 1 | state changed | IN_PROGRESS | 2013-04-03T23:22:09Z |
@ -86,7 +86,7 @@
+---------------------+----+------------------------+-----------------+----------------------+</computeroutput></screen>
</step><step><para>To show the details for a particular event, run the following
command:</para>
<screen><prompt>$</prompt> <userinput>heat event-show WikiDatabase 1</userinput></screen>
<screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat event-show WikiDatabase 1</userinput></screen>
</step>
</procedure>
<procedure xml:id="heat-stack-update">
@ -94,8 +94,8 @@
<step>
<para>To update an existing stack from a modified template
file, run a command like the following
command:</para><screen><prompt>$</prompt> <userinput>heat stack-update mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance_v2.template
--parameters="InstanceType=m1.large;DBUsername=wp;DBPassword=verybadpassword;KeyName=heat_key;LinuxDistribution=F17"</userinput></screen><screen><computeroutput>+--------------------------------------+---------------+-----------------+----------------------+
command:</para><screen><prompt>$</prompt> <userinput><?db-font-size 75%?>heat stack-update mystack --template-file=/path/to/heat/templates/WordPress_Single_Instance_v2.template
--parameters="InstanceType=m1.large;DBUsername=wp;DBPassword=verybadpassword;KeyName=heat_key;LinuxDistribution=F17"</userinput></screen><screen><computeroutput><?db-font-size 65%?>+--------------------------------------+---------------+-----------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+---------------+-----------------+----------------------+
| 4c712026-dcd5-4664-90b8-0915494c1332 | mystack | UPDATE_COMPLETE | 2013-04-03T23:22:08Z |

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="heat_client_commands">
<title>heat commands</title>
<para>Describes the commands for heat, which is the command-line
interface for the OpenStack Heat API.</para>
<para>The heat client is the command-line interface for the
OpenStack Orchestration API.</para>
<para>For help on a specific heat command, enter:</para>
<screen><userinput><command>heat</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="keystone_client_commands">
<title>keystone commands</title>
<para>Describes commands for keystone, which is the command-line
interface for the OpenStack Identity API.</para>
<para>The keystone client is the command-line interface (CLI) for
the OpenStack Identity API.</para>
<para>For help on a specific keystone command, enter:</para>
<screen><userinput><command>keystone</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
@ -50,8 +50,7 @@ keystone [--version] [--timeout &lt;seconds>]
service-create Add service to Service Catalog
service-delete Delete service from Service Catalog
service-get Display service from Service Catalog
service-list List all services in Service Catalog</computeroutput></screen>
<screen><computeroutput> tenant-create Create new tenant
service-list List all services in Service Catalog<?sbr?> tenant-create Create new tenant
tenant-delete Delete tenant
tenant-get Display tenant details
tenant-list List all tenants
@ -75,7 +74,6 @@ keystone [--version] [--timeout &lt;seconds>]
help Display help about this program or one of its
subcommands.</computeroutput></screen>
</example>
<example>
<title>Optional arguments</title>
<screen><computeroutput> --version Shows the client version and exits
@ -98,8 +96,7 @@ keystone [--version] [--timeout &lt;seconds>]
--os-region-name &lt;region-name>
Defaults to env[OS_REGION_NAME]
--os-identity-api-version &lt;identity-api-version>
Defaults to env[OS_IDENTITY_API_VERSION] or 2.0</computeroutput></screen>
<screen><computeroutput> --os-token &lt;service-token>
Defaults to env[OS_IDENTITY_API_VERSION] or 2.0<?sbr?> --os-token &lt;service-token>
Specify an existing token to use instead of retrieving
one via authentication (e.g. with username &amp;
password). Defaults to env[OS_SERVICE_TOKEN]

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="neutron_client_commands">
<title>neutron commands</title>
<para>The neutron client is the command-line interface (CLI) for the
OpenStack Networking API.</para>
<para>For help on a specific neutron command, enter:</para>
<screen><userinput><command>neutron</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
<title>Usage</title>
<screen><computeroutput> neutron [--version] [-v] [-q] [-h] [--debug]
[--os-auth-strategy &lt;auth-strategy>] [--os-auth-url &lt;auth-url>]
[--os-tenant-name &lt;auth-tenant-name>]
[--os-username &lt;auth-username>] [--os-password &lt;auth-password>]
[--os-region-name &lt;auth-region-name>] [--os-token &lt;token>]
[--endpoint-type &lt;endpoint-type>] [--os-url &lt;url>] [--insecure]</computeroutput></screen>
</example>
<example>
<title>Optional arguments</title>
<screen><computeroutput> --version show program's version number and exit
-v, --verbose Increase verbosity of output. Can be repeated.
-q, --quiet suppress output except warnings and errors
-h, --help show this help message and exit
--debug show tracebacks on errors
--os-auth-strategy &lt;auth-strategy>
Authentication strategy (Env: OS_AUTH_STRATEGY,
default keystone). For now, any other value will
disable the authentication
--os-auth-url &lt;auth-url>
Authentication URL (Env: OS_AUTH_URL)
--os-tenant-name &lt;auth-tenant-name>
Authentication tenant name (Env: OS_TENANT_NAME)
--os-username &lt;auth-username>
Authentication username (Env: OS_USERNAME)
--os-password &lt;auth-password>
Authentication password (Env: OS_PASSWORD)
--os-region-name &lt;auth-region-name>
Authentication region name (Env: OS_REGION_NAME)
--os-token &lt;token> Defaults to env[OS_TOKEN]
--endpoint-type &lt;endpoint-type>
Defaults to env[OS_ENDPOINT_TYPE] or publicURL.
--os-url &lt;url> Defaults to env[OS_URL]
--insecure Explicitly allow neutronclient to perform "insecure"
SSL (https) requests. The server's certificate will
not be verified against any certificate authorities.
This option should be used with caution.</computeroutput></screen>
</example>
<example>
<title>Commands</title>
<screen><computeroutput> agent-delete Delete a given agent.
agent-list List agents.
agent-show Show information of a given agent.
agent-update Update a given agent.
dhcp-agent-list-hosting-net List DHCP agents hosting a network.
dhcp-agent-network-add Add a network to a DHCP agent.
dhcp-agent-network-remove Remove a network from a DHCP agent.
ext-list List all extensions.
ext-show Show information of a given resource.
floatingip-associate Create a mapping between a floating ip and a fixed ip.
floatingip-create Create a floating ip for a given tenant.
floatingip-delete Delete a given floating ip.
floatingip-disassociate Remove a mapping from a floating ip to a fixed ip.
floatingip-list List floating ips that belong to a given tenant.
floatingip-show Show information of a given floating ip.
help print detailed help for another command
l3-agent-list-hosting-router List L3 agents hosting a router.
l3-agent-router-add Add a router to a L3 agent.
l3-agent-router-remove Remove a router from a L3 agent.
lb-healthmonitor-associate Create a mapping between a health monitor and a pool.
lb-healthmonitor-create Create a healthmonitor.
lb-healthmonitor-delete Delete a given healthmonitor.
lb-healthmonitor-disassociate Remove a mapping from a health monitor to a pool.
lb-healthmonitor-list List healthmonitors that belong to a given tenant.
lb-healthmonitor-show Show information of a given healthmonitor.
lb-healthmonitor-update Update a given healthmonitor.
lb-member-create Create a member.
lb-member-delete Delete a given member.
lb-member-list List members that belong to a given tenant.
lb-member-show Show information of a given member.
lb-member-update Update a given member.
lb-pool-create Create a pool.
lb-pool-delete Delete a given pool.
lb-pool-list List pools that belong to a given tenant.
lb-pool-show Show information of a given pool.
lb-pool-stats Retrieve stats for a given pool.
lb-pool-update Update a given pool.
lb-vip-create Create a vip.
lb-vip-delete Delete a given vip.
lb-vip-list List vips that belong to a given tenant.
lb-vip-show Show information of a given vip.
lb-vip-update Update a given vip.
net-create Create a network for a given tenant.
net-delete Delete a given network.
net-external-list List external networks that belong to a given tenant.
net-gateway-connect Add an internal network interface to a router.
net-gateway-create Create a network gateway.
net-gateway-delete Delete a given network gateway.
net-gateway-disconnect Remove a network from a network gateway.
net-gateway-list List network gateways for a given tenant.
net-gateway-show Show information of a given network gateway.
net-gateway-update Update the name for a network gateway.
net-list List networks that belong to a given tenant.
net-list-on-dhcp-agent List the networks on a DHCP agent.
net-show Show information of a given network.
net-update Update network's information.
port-create Create a port for a given tenant.
port-delete Delete a given port.
port-list List ports that belong to a given tenant.
port-show Show information of a given port.
port-update Update port's information.
queue-create Create a queue.
queue-delete Delete a given queue.
queue-list List queues that belong to a given tenant.
queue-show Show information of a given queue.
quota-delete Delete defined quotas of a given tenant.
quota-list List defined quotas of all tenants.
quota-show Show quotas of a given tenant
quota-update Define tenant's quotas not to use defaults.
router-create Create a router for a given tenant.
router-delete Delete a given router.
router-gateway-clear Remove an external network gateway from a router.
router-gateway-set Set the external network gateway for a router.
router-interface-add Add an internal network interface to a router.
router-interface-delete Remove an internal network interface from a router.
router-list List routers that belong to a given tenant.
router-list-on-l3-agent List the routers on a L3 agent.
router-port-list List ports that belong to a given tenant, with specified router.
router-show Show information of a given router.
router-update Update router's information.
security-group-create Create a security group.
security-group-delete Delete a given security group.
security-group-list List security groups that belong to a given tenant.
security-group-rule-create Create a security group rule.
security-group-rule-delete Delete a given security group rule.
security-group-rule-list List security group rules that belong to a given tenant.
security-group-rule-show Show information of a given security group rule.
security-group-show Show information of a given security group.
security-group-update Update a given security group.
subnet-create Create a subnet for a given tenant.
subnet-delete Delete a given subnet.
subnet-list List networks that belong to a given tenant.
subnet-show Show information of a given subnet.
subnet-update Update subnet's information.</computeroutput></screen>
</example>
</section>

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="neutron_client_commands">
<title>neutron commands</title>
<para>Describes the commands for neutron, which is the command-line
interface for the OpenStack Networking API.</para>
<para>The neutron client is the command-line interface (CLI) for the
OpenStack Networking API.</para>
<para>For help on a specific neutron command, enter:</para>
<screen><userinput><command>neutron</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
@ -95,7 +95,7 @@
lb-vip-list List vips that belong to a given tenant.
lb-vip-show Show information of a given vip.
lb-vip-update Update a given vip.
net-create Create a network for a given tenant.
<?sbr?> net-create Create a network for a given tenant.
net-delete Delete a given network.
net-external-list List external networks that belong to a given tenant.
net-gateway-connect Add an internal network interface to a router.

View File

@ -4,9 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="novaclient_commands">
<title>nova commands</title>
<para>Describes commands for nova, which is the command-line
interface for the OpenStack Compute API and its
extensions.</para>
<para>The nova client is the command-line interface for the
OpenStack Compute API and its extensions.</para>
<para>For help on a specific nova command, enter:</para>
<screen><userinput><command>nova</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
@ -48,8 +47,8 @@
aggregate-update Update the aggregate's name and optionally
availability zone.
availability-zone-list
List all the availability zones.</computeroutput></screen>
<screen><computeroutput> backup Backup a instance by create a 'backup' type snapshot
List all the availability zones.
backup Backup a instance by create a 'backup' type snapshot
boot Boot a new server.
clear-password Clear password for a server.
cloudpipe-configure
@ -73,8 +72,8 @@
dns-delete-domain Delete the specified DNS domain.
dns-domains Print a list of available dns domains.
dns-list List current DNS entries for domain and ip or domain
and name.</computeroutput></screen>
<screen><computeroutput> endpoints Discover endpoints that get returned from the
and name.
endpoints Discover endpoints that get returned from the
authenticate services
evacuate Evacuate server from failed host to specified one.
fixed-ip-get Get info on a fixed ip
@ -100,8 +99,8 @@
floating-ip-delete De-allocate a floating IP.
floating-ip-list List floating ips for this tenant.
floating-ip-pool-list
List all floating ip pools.</computeroutput></screen>
<screen><computeroutput> get-password Get password for a server.
List all floating ip pools.
get-password Get password for a server.
get-spice-console Get a spice console to a server.
get-vnc-console Get a vnc console to a server.
host-action Perform a power action on a host.
@ -130,8 +129,8 @@
lock Lock a server.
meta Set or Delete metadata on a server.
migrate Migrate a server. The new host will be selected by the
scheduler.</computeroutput></screen>
<screen><computeroutput> network-associate-host
scheduler.
network-associate-host
Associate host with network.
network-associate-project
Associate project with network.
@ -164,8 +163,8 @@
resize-revert Revert a previous resize (and return to the previous
VM).
resume Resume a server.
root-password Change the root password for a server.</computeroutput></screen>
<screen><computeroutput> scrub Deletes data associated with the project
root-password Change the root password for a server.
scrub Deletes data associated with the project
secgroup-add-group-rule
Add a source group rule to a security group.
secgroup-add-rule Add a rule to a security group.
@ -187,8 +186,8 @@
ssh SSH into a server.
start Start a server.
stop Stop a server.
suspend Suspend a server.</computeroutput></screen>
<screen><computeroutput> unlock Unlock a server.
suspend Suspend a server.
unlock Unlock a server.
unpause Unpause a server.
unrescue Unrescue a server.
usage Show usage data for a single tenant
@ -209,8 +208,8 @@
Show details about a snapshot.
volume-type-create Create a new volume type.
volume-type-delete Delete a specific flavor.
volume-type-list Print a list of available 'volume types'.</computeroutput></screen>
<screen><computeroutput> x509-create-cert Create x509 cert for a user in tenant
volume-type-list Print a list of available 'volume types'.
x509-create-cert Create x509 cert for a user in tenant
x509-get-root-cert Fetches the x509 root cert.
bash-completion Prints all of the commands and options to stdout so
that the

View File

@ -0,0 +1,266 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="config-drive">
<title>Config drive</title>
<simplesect>
<title>Introduction</title>
<para>OpenStack can be configured to write metadata to a
special configuration drive that will be attached to the
instance when it boots. The instance can retrieve any
information that would normally be available through the
<link linkend="metadata-service">metadata
service</link> by mounting this disk and reading files
from it.</para>
<para>One use case for the config drive is to pass networking
configuration (such as, IP address, netmask, and gateway)
when DHCP is not being used to assign IP addresses to
instances. The instance's IP configuration can be
transmitted using the config drive, which can be mounted
and accessed before the instance's network settings have
been configured.</para>
<para>The config drive can be used by any guest operating
system that is capable of mounting an ISO9660 or VFAT file
system. This functionality should be available on all
modern operating systems.</para>
<para>In addition, an image that has been built with a recent
version of the cloud-init package will be able to
automatically access metadata passed via config drive. The
current version of cloud-init as of this writing (0.7.1)
has been confirmed to work with Ubuntu, as well as
Fedora-based images such as RHEL.</para>
<para>If an image does not have the cloud-init package
installed, the image must be customized to run a script
that mounts the config drive on boot, reads the data from
the drive, and takes appropriate action such as adding the
public key to an account. See below for details on how
data is organized on the config drive.<note>
<para>To use config drive, the
<command>genisoimage</command> program must be
installed on each compute host. In the Ubuntu
packages, it is not installed by default (see bug
<link
xlink:href="https://bugs.launchpad.net/cloud-archive/+bug/1165174"
>#1165174</link>). Make sure you install this
program on each compute host before attempting to
use config drive, or an instance will not boot
properly.</para>
</note>
<note>
<para>If you use Xen with a config drive, disable the
agent through the
<literal>xenapi_disable_agent</literal>
configuration parameter.</para>
</note>
</para>
</simplesect>
<simplesect>
<title>Enabling the config drive</title>
<para>To enable the config drive, pass the
<literal>--config-drive=true</literal> parameter when
calling <command>nova boot</command>. Here is a complex
example that enables the config drive as well as passing
user data, two files, and two key/value metadata pairs,
all of which are accessible from the config drive.</para>
<screen><prompt>$</prompt> <userinput>nova boot --config-drive=true --image my-image-name --key-name mykey --flavor 1 --user-data ./my-user-data.txt myinstance --file /etc/network/interfaces=/home/myuser/instance-interfaces --file known_hosts=/home/myuser/.ssh/known_hosts --meta role=webservers --meta essential=false</userinput></screen>
<para>You can also configure the Compute service to always
create a config drive by setting the following option in
<filename>/etc/nova/nova.conf</filename>:</para>
<programlisting language="bash">force_config_drive=true</programlisting>
<note>
<para>If a user passes the
<literal>--config-drive=true</literal> flag to the
<command>nova boot</command> command, an
administrator cannot disable the config drive.</para>
</note>
</simplesect>
<simplesect>
<title>Accessing the config drive from inside an
instance</title>
<para>The config drive will have a volume label of
<literal>config-2</literal>. If your guest OS supports
accessing disk by label, you should be able to mount the
config drive as the
<filename>/dev/disk/by-label/config-2</filename>
device. For
example:<screen><prompt>#</prompt> <userinput>mkdir -p /mnt/config</userinput>
<prompt>#</prompt> <userinput>mount /dev/disk/by-label/config-2 /mnt/config</userinput></screen></para>
<para>
<note>
<para>The cirros 0.3.0 test image does not have
support for the config drive. Support will be
added in version 0.3.1.</para>
</note>
</para>
<para>If your guest operating system does not use
<literal>udev</literal>, then the
<filename>/dev/disk/by-label</filename> directory will
not be present. The <command>blkid</command> command can
be used to identify the block device that corresponds to
the config drive. For example, when booting the cirros
image with the m1.tiny flavor, the device will be
<filename>/dev/vdb</filename>:</para>
<para><screen><prompt>#</prompt> <userinput>blkid -t LABEL="config-2" -odevice</userinput>
<computeroutput>/dev/vdb</computeroutput></screen>Once
identified, the device can then be mounted:</para>
<para>
<screen><prompt>#</prompt> <userinput>mkdir -p /mnt/config</userinput>
<prompt>#</prompt> <userinput>mount /dev/vdb /mnt/config</userinput></screen>
</para>
</simplesect>
<simplesect>
<title>Contents of the config drive</title>
<para>The files that will be present in the config drive will
vary depending on the arguments that were passed to
<command>nova boot</command>. Based on the example
above, the contents of the config drive is:</para>
<screen><computeroutput>ec2/2009-04-04/meta-data.json
ec2/2009-04-04/user-data
ec2/latest/meta-data.json
ec2/latest/user-data
openstack/2012-08-10/meta_data.json
openstack/2012-08-10/user_data
openstack/content
openstack/content/0000
openstack/content/0001
openstack/latest/meta_data.json
openstack/latest/user_data</computeroutput></screen>
</simplesect>
<simplesect>
<title>Guidelines for accessing config drive data</title>
<para>Do not rely on the presence of the EC2 metadata present
in the config drive (i.e., files under the
<filename>ec2</filename> directory), as this content
may be removed in a future release.</para>
<para>When creating images that access config drive data, if
there are multiple directories under the
<filename>openstack</filename> directory, always
select the highest API version by date that your consumer
supports. For example, if your guest image can support
versions 2012-03-05, 2012-08-05, 2013-04-13. It is best to
try 2013-04-13 first and fall back to an earlier version
if it 2013-04-13 isn't present.</para>
</simplesect>
<simplesect>
<title>Format of OpenStack metadata</title>
<para>Here is an example of the contents of
<filename>openstack/2012-08-10/meta_data.json</filename>,
<filename>openstack/latest/meta_data.json</filename>
(these two files are identical), formatted to improve
readability:</para>
<para>
<programlisting>{
"availability_zone": "nova",
"files": [
{
"content_path": "/content/0000",
"path": "/etc/network/interfaces"
},
{
"content_path": "/content/0001",
"path": "known_hosts"
}
],
"hostname": "test.novalocal",
"launch_index": 0,
"name": "test",
"meta": {
"role": "webservers"
"essential": "false"
},
"public_keys": {
"mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
},
"uuid": "83679162-1378-4288-a2d4-70e13ec132aa"
}</programlisting>
</para>
<para>Note the effect of the <literal>--file
/etc/network/interfaces=/home/myuser/instance-interfaces</literal>
argument passed to the original <command>nova
boot</command> command. The contents of this file are
contained in the file
<filename>openstack/content/0000</filename> file on
the config drive, and the path is specified as
<filename>/etc/network/interfaces</filename> in the
<filename>meta_data.json</filename> file.</para>
</simplesect>
<simplesect>
<title>Format of EC2 metadata</title>
<para>Here is an example of the contents of
<filename>ec2/2009-04-04/meta-data.json</filename>,
<filename>latest/meta-data.json</filename> (these two
files are identical) formatted to improve
readability:</para>
<para>
<programlisting>{
"ami-id": "ami-00000001",
"ami-launch-index": 0,
"ami-manifest-path": "FIXME",
"block-device-mapping": {
"ami": "sda1",
"ephemeral0": "sda2",
"root": "/dev/sda1",
"swap": "sda3"
},
"hostname": "test.novalocal",
"instance-action": "none",
"instance-id": "i-00000001",
"instance-type": "m1.tiny",
"kernel-id": "aki-00000002",
"local-hostname": "test.novalocal",
"local-ipv4": null,
"placement": {
"availability-zone": "nova"
},
"public-hostname": "test.novalocal",
"public-ipv4": "",
"public-keys": {
"0": {
"openssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n"
}
},
"ramdisk-id": "ari-00000003",
"reservation-id": "r-7lfps8wj",
"security-groups": [
"default"
]
}</programlisting>
</para>
</simplesect>
<simplesect>
<title>User data</title>
<para>The files
<filename>openstack/2012-08-10/user_data</filename>,
<filename>openstack/latest/user_data</filename>,
<filename>ec2/2009-04-04/user-data</filename>, and
<filename>ec2/latest/user-data</filename>, will only
be present if the <literal>--user-data</literal> flag was
passed to <command>nova boot</command> and will contain
the contents of the user data file passed as the
argument.</para>
</simplesect>
<simplesect>
<title>Format of the config drive</title>
<para>The default format of the config drive as an ISO 9660
filesystem. To explicitly specify the ISO 9660 format, add
the following line to
<filename>/etc/nova/nova.conf</filename>:</para>
<programlisting language="bash">config_drive_format=iso9660</programlisting>
<para>For legacy reasons, the config drive can be configured
to use VFAT format instead of ISO 9660. It is unlikely
that you would require VFAT format, since ISO 9660 is
widely supported across operating systems. However, if you
wish to use the VFAT format, add the following line to
<filename>/etc/nova/nova.conf</filename>
instead:</para>
<programlisting language="bash">config_drive_format=vfat</programlisting>
<para>If you choose VFAT, the config drive is 64 MBs.</para>
</simplesect>
<simplesect>
<title>Configuration Reference</title>
<para>The following table shows all options for the config
drive.</para>
<xi:include href="../../common/tables/nova-configdrive.xml"/>
</simplesect>
</section>

View File

@ -14,7 +14,8 @@
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="cli_configure_instances">
<title>Set up access and security for instances</title>
<title>Configure access and security for instances</title>
<?dbhtml stop-chunking?>
<para>When you launch a virtual machine, you can inject a
<emphasis role="italic">keypair</emphasis>, which provides
SSH access to your instance. For this to work, the image must
@ -73,10 +74,10 @@
assign a floating IP address to an instance and attach a block
storage device, or volume, for persistent storage. See <xref
linkend="manage_ip_addresses"/>.</para>
<?hard-pagebreak?>
<section xml:id="create_import_keys">
<title>Add or import keypairs</title>
<title>Add a keypair</title>
<procedure>
<title>To add a key</title>
<para>You can generate a keypair or upload an existing
public key.</para>
<step>
@ -99,8 +100,13 @@
<filename><replaceable>MY_KEY</replaceable>.pem</filename>
file so that only you can read and write to
it.</para>
</step></procedure>
<procedure><title>To import a key</title> <step>
</step>
</procedure>
</section>
<section xml:id="import_keypair_cli">
<title>Import a keypair</title>
<procedure>
<step>
<para>If you have already generated a keypair with the
public key located at
<filename>~/.ssh/id_rsa.pub</filename>, run
@ -119,25 +125,21 @@
</procedure>
</section>
<section xml:id="configure_security_groups_rules">
<title>Configure security groups and rules</title>
<title>Create and manage security groups</title>
<procedure>
<title>To configure security groups</title>
<step>
<title>To list all security groups</title>
<para>To list security groups for the current project,
including descriptions, enter the following
command:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-list</userinput></screen>
</step>
<step>
<title>To create a security group</title>
<para>To create a security group with a specified name
and description, enter the following
command:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-create <replaceable>SEC_GROUP_NAME</replaceable> <replaceable>GROUP_DESCRIPTION</replaceable></userinput></screen>
</step>
<step>
<title>To delete a security group</title>
<para>To delete a specified group, enter the following
command:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-delete <replaceable>SEC_GROUP_NAME</replaceable> </userinput></screen>
@ -149,8 +151,10 @@
</note>
</step>
</procedure>
</section>
<section xml:id="security_grp_rules_cli">
<title>Create and manage security group rules</title>
<procedure>
<title>To configure security group rules</title>
<para>Modify security group rules with the <command>nova
secgroup-*-rule</command> commands.</para>
<step>
@ -158,12 +162,12 @@
details, see <xref linkend="cli_openrc"/>.</para>
</step>
<step>
<title>To list the rules for a security group</title>
<para>To list the rules for a security group</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-list-rules <replaceable>SEC_GROUP_NAME</replaceable></userinput></screen>
</step>
<step>
<title>To allow SSH access to the instances</title>
<para>Choose one of the following sub-steps:</para>
<para>To allow SSH access to the instances, choose one
of the following sub-steps:</para>
<substeps>
<step xml:id="sec_group_rule_add">
<title wordsize="20">Add rule for all
@ -186,8 +190,8 @@
</substeps>
</step>
<step>
<title>To allow pinging the instances</title>
<para>Choose one of the following sub-steps:</para>
<para>To allow pinging the instances, choose one of
the following sub-steps:</para>
<substeps>
<step>
<title wordsize="20">To allow pinging from
@ -212,23 +216,21 @@
</substeps>
</step>
<step>
<title>To allow access through UDP port</title>
<para>To allow access through a UDP port, such as
allowing access to a DNS server that runs on a VM,
complete one of the following sub-steps:</para>
<substeps>
<step>
<title>To allow UDP access from IPs</title>
<para>Specify all IP addresses as IP subnet in
CIDR notation:
<literal>0.0.0.0/0</literal>.<screen><prompt>$</prompt> <userinput>nova secgroup-add-rule SEC_GROUP_NAME udp 53 53 0.0.0.0/0</userinput></screen></para>
<para>To allow UDP access from IPs, specify
all IP addresses as IP subnet in CIDR
notation:
<literal>0.0.0.0/0</literal>.<screen><prompt>$</prompt> <userinput>nova secgroup-add-rule SEC_GROUP_NAME udp 53 53 0.0.0.0/0</userinput></screen></para>
</step>
<step>
<title>To allow UDP access</title>
<para>To allow only IP addresses from other
security groups (source groups) to access
the specified port:</para>
<screen><prompt>$</prompt> <userinput>nova secgroup-add-group-rule --ip_proto udp --from_port 53 \
<screen><prompt>$</prompt> <userinput>nova secgroup-add-group-rule --ip_proto udp --from_port 53 \
--to_port 53 <replaceable>SEC_GROUP_NAME</replaceable> <replaceable>SOURCE_GROUP_NAME</replaceable></userinput></screen>
</step>
</substeps>

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="manage_ip_addresses"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<title>Manage IP addresses</title>
<section xml:id="floating_ips_overview">
<title>Floating IP Addresses Overview</title>
<para>Each instance can have a private, or fixed, IP address
and a public, or floating, one.</para>
<para>Private IP addresses are used for communication between
instances, and public ones are used for communication with
the outside world.</para>
<para>When you launch an instance, it is automatically
assigned a private IP address that stays the same until
you explicitly terminate the instance. Rebooting an
instance has no effect on the private IP address.</para>
<para>A pool of floating IPs, configured by the cloud
operator, is available in OpenStack Compute.</para>
<para>You can allocate a certain number of these to a project:
The maximum number of floating IP addresses per project is
defined by the quota.</para>
<para>You can add a floating IP address from this set to an
instance of the project. Floating IP addresses can be
dynamically disassociated and associated with other
instances of the same project at any time.</para>
<para>Before you can assign a floating IP address to an
instance, you first must allocate floating IPs to a
project. After floating IP addresses have been allocated
to the current project, you can assign them to running
instances.</para>
<para>You can assign a floating IP address to one instance at
a time.</para>
</section>
<section xml:id="floating_ips_proc">
<title>List floating IP address information</title>
<procedure>
<step>
<para>To list all floating IP addresses:</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-bulk-list</userinput></screen>
<screen><computeroutput>+------------+---------------+---------------+--------+-----------+
| project_id | address | instance_uuid | pool | interface |
+------------+---------------+---------------+--------+-----------+
| None | 172.24.4.225 | None | public | eth0 |
| None | 172.24.4.226 | None | public | eth0 |
| None | 172.24.4.227 | None | public | eth0 |
| None | 172.24.4.228 | None | public | eth0 |
| None | 172.24.4.229 | None | public | eth0 |
| None | 172.24.4.230 | None | public | eth0 |
| None | 172.24.4.231 | None | public | eth0 |
| None | 172.24.4.232 | None | public | eth0 |
| None | 172.24.4.233 | None | public | eth0 |
| None | 172.24.4.234 | None | public | eth0 |
| None | 172.24.4.235 | None | public | eth0 |
| None | 172.24.4.236 | None | public | eth0 |
| None | 172.24.4.237 | None | public | eth0 |
| None | 172.24.4.238 | None | public | eth0 |
| None | 192.168.253.1 | None | test | eth0 |
| None | 192.168.253.2 | None | test | eth0 |
| None | 192.168.253.3 | None | test | eth0 |
| None | 192.168.253.4 | None | test | eth0 |
| None | 192.168.253.5 | None | test | eth0 |
| None | 192.168.253.6 | None | test | eth0 |
+------------+---------------+---------------+--------+-----------+</computeroutput></screen>
</step>
<step>
<para>To list all pools that provide floating IP
addresses:</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-pool-list</userinput></screen>
<screen><computeroutput>+--------+
| name |
+--------+
| public |
| test |
+--------+</computeroutput></screen>
</step>
</procedure>
</section>
<section xml:id="floating_ip_allocate">
<title>Assign floating IP addresses to projects and
instances</title>
<procedure>
<title>To allocate a floating IP address to the current
project</title>
<step>
<para>If more than one pool of IP addresses is
available, you can specify the pool from which to
allocate the IP address. In this example, the pool
name is <literal>public</literal>:</para>
<screen><prompt>$</prompt> <userinput>floating-ip-create public</userinput></screen>
<screen><computeroutput>+--------------+-------------+----------+--------+
| Ip | Instance Id | Fixed Ip | Pool |
+--------------+-------------+----------+--------+
| 172.24.4.225 | None | None | public |
+--------------+-------------+----------+--------+</computeroutput></screen>
</step>
<step>
<para>To release a floating IP address from the
current project:</para>
<screen><prompt>$</prompt> <userinput>nova floating-ip-delete <replaceable>FLOATING_IP</replaceable></userinput></screen>
<para>The IP address is returned to the pool of IP
addresses that are available for all projects. If
an IP address is assigned to a running instance,
it is disassociated from the instance.</para>
</step>
<step>
<para>To associate an IP address with an instance, at
least one floating IP address must be allocated to
the current project.</para>
<para>To assign a floating IP address to an
instance:</para>
<screen><prompt>$</prompt> <userinput>nova add-floating-ip <replaceable>INSTANCE_NAME_OR_ID</replaceable> <replaceable>FLOATING_IP</replaceable></userinput></screen>
<para>After you assign the IP address and configure
security group rules for the instance, the
instance is publicly available at the floating IP
address.</para>
</step>
<step>
<para>To remove a floating IP address from an
instance, you must specify the same arguments that
you used to assign the IP.</para>
<para>To remove a floating IP address from an
instance:</para>
<screen><prompt>$</prompt> <userinput>nova remove-floating-ip <replaceable>INSTANCE_NAME_OR_ID</replaceable> <replaceable>FLOATING_IP</replaceable></userinput></screen>
</step>
</procedure>
</section>
</section>

View File

@ -6,14 +6,14 @@
<title>Manage instances and hosts</title>
<para>Instances are virtual machines that run inside the
cloud.</para>
<xi:include href="section_cli_floating_ips.xml"/>
<xi:include href="section_nova_cli_floating_ips.xml"/>
<xi:include href="../../common/section_nova_cli_resizerebuild.xml"/>
<xi:include href="../../common/section_nova_cli_startstop.xml"/>
<xi:include href="../../common/section_cli_reboot.xml"/>
<xi:include href="../../common/section_nova_cli_reboot.xml"/>
<xi:include href="../../common/section_nova_cli_evacuate.xml"/>
<xi:include href="../../common/section_nova_cli_terminate.xml"/>
<xi:include href="../../common/section_cli_get_console.xml"/>
<xi:include href="../../common/section_cli_baremetal.xml"/>
<xi:include href="../../common/section_nova_cli_get_console.xml"/>
<xi:include href="../../common/section_nova_cli_baremetal.xml"/>
<xi:include
href="../../common/section_nova_cli_usage_statistics.xml"/>
</section>

View File

@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="swift_commands">
<title>swift commands</title>
<para>Describes the commands for swift, which is the command-line
interface for the OpenStack Object Storage API.</para>
<para>The swift client is the command-line interface for the
OpenStack Object Storage API.</para>
<para>For help on a specific swift command, enter:</para>
<screen><userinput><command>swift</command> <option>help</option> <replaceable>COMMAND</replaceable></userinput></screen>
<example>
@ -58,15 +58,12 @@
</example>
<example>
<title>Examples</title>
<screen><computeroutput> swift -A https://auth.api.rackspacecloud.com/v1.0 -U user -K key stat
swift --os-auth-url https://api.example.com/v2.0 --os-tenant-name tenant \
--os-usernameuser --os-password password list
swift --os-auth-token 6ee5eb33efad4e45ab46806eac010566 \
<screen><prompt>$</prompt> <userinput>swift -A https://auth.api.rackspacecloud.com/v1.0 -U user -K key stat</userinput></screen>
<screen><prompt>$</prompt> <userinput>swift --os-auth-url https://api.example.com/v2.0 --os-tenant-name tenant \
--os-usernameuser --os-password password list</userinput></screen>
<screen><prompt>$</prompt> <userinput>swift --os-auth-token 6ee5eb33efad4e45ab46806eac010566 \
--os-storage-url https://10.1.5.2:8080/v1/AUTH_ced809b6a4baea7aeab61a \
list
swift list --lh</computeroutput></screen>
list</userinput></screen>
<screen><prompt>$</prompt> <userinput>swift list --lh</userinput></screen>
</example>
</section>