diff --git a/doc/source/controllingservers.rst b/doc/source/controllingservers.rst index aba526a208..d1630de09f 100644 --- a/doc/source/controllingservers.rst +++ b/doc/source/controllingservers.rst @@ -30,6 +30,8 @@ reference implementation registry server that ships with Glance): * Using the ``glance-control`` server daemon wrapper program +We recommend using the second way. + Manually starting the server ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -41,7 +43,7 @@ use when configuring the server application. Glance ships with an ``etc/`` directory that contains sample ``paste.deploy`` configuration files that you can copy to a standard configuation directory and - adapt for your own uses. + adapt for your own uses. Specifically, bind_host must be set properly. If you do `not` specifiy a configuration file on the command line, Glance will do its best to locate a ``glance.conf`` configuration file in one of the @@ -57,30 +59,62 @@ following directories, stopping at the first config file it finds: * /etc -If no configuration file is found, you will see any error, like so:: +If no configuration file is found, you will see an error, like:: $> glance-api ERROR: Unable to locate any configuration file. Cannot load application glance-api -Here is an example showing how you can manually start the ``glance-api`` server -in a shell.:: +Here is an example showing how you can manually start the ``glance-api`` server and ``glance-registry`` in a shell.:: - $> sudo glance-api etc/glance.conf.sample --debug - 2011-02-09 14:58:29 DEBUG [glance-api] ******************************************************************************** - 2011-02-09 14:58:29 DEBUG [glance-api] Configuration options gathered from config file: - 2011-02-09 14:58:29 DEBUG [glance-api] /home/jpipes/repos/glance/trunk/etc/glance.conf.sample - 2011-02-09 14:58:29 DEBUG [glance-api] ================================================ - 2011-02-09 14:58:29 DEBUG [glance-api] bind_host 0.0.0.0 - 2011-02-09 14:58:29 DEBUG [glance-api] bind_port 9292 - 2011-02-09 14:58:29 DEBUG [glance-api] debug True - 2011-02-09 14:58:29 DEBUG [glance-api] default_store file - 2011-02-09 14:58:29 DEBUG [glance-api] filesystem_store_datadir /var/lib/glance/images/ - 2011-02-09 14:58:29 DEBUG [glance-api] registry_host 0.0.0.0 - 2011-02-09 14:58:29 DEBUG [glance-api] registry_port 9191 - 2011-02-09 14:58:29 DEBUG [glance-api] verbose False - 2011-02-09 14:58:29 DEBUG [glance-api] ******************************************************************************** - 2011-02-09 14:58:29 DEBUG [routes.middleware] Initialized with method overriding = True, and path info altering = True - (16333) wsgi starting up on http://0.0.0.0:9292/ + $ sudo glance-api glance.conf --debug & + jsuh@mc-ats1:~$ 2011-04-13 14:50:12 DEBUG [glance-api] ******************************************************************************** + 2011-04-13 14:50:12 DEBUG [glance-api] Configuration options gathered from config file: + 2011-04-13 14:50:12 DEBUG [glance-api] /home/jsuh/glance.conf + 2011-04-13 14:50:12 DEBUG [glance-api] ================================================ + 2011-04-13 14:50:12 DEBUG [glance-api] bind_host 65.114.169.29 + 2011-04-13 14:50:12 DEBUG [glance-api] bind_port 9292 + 2011-04-13 14:50:12 DEBUG [glance-api] debug True + 2011-04-13 14:50:12 DEBUG [glance-api] default_store file + 2011-04-13 14:50:12 DEBUG [glance-api] filesystem_store_datadir /home/jsuh/images/ + 2011-04-13 14:50:12 DEBUG [glance-api] registry_host 65.114.169.29 + 2011-04-13 14:50:12 DEBUG [glance-api] registry_port 9191 + 2011-04-13 14:50:12 DEBUG [glance-api] verbose False + 2011-04-13 14:50:12 DEBUG [glance-api] ******************************************************************************** + 2011-04-13 14:50:12 DEBUG [routes.middleware] Initialized with method overriding = True, and path info altering = True + 2011-04-13 14:50:12 DEBUG [eventlet.wsgi.server] (21354) wsgi starting up on http://65.114.169.29:9292/ + + $ sudo glance-registry glance.conf & + jsuh@mc-ats1:~$ 2011-04-13 14:51:16 INFO [sqlalchemy.engine.base.Engine.0x...feac] PRAGMA table_info("images") + 2011-04-13 14:51:16 INFO [sqlalchemy.engine.base.Engine.0x...feac] () + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Col ('cid', 'name', 'type', 'notnull', 'dflt_value', 'pk') + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (0, u'created_at', u'DATETIME', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (1, u'updated_at', u'DATETIME', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (2, u'deleted_at', u'DATETIME', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (3, u'deleted', u'BOOLEAN', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (4, u'id', u'INTEGER', 1, None, 1) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (5, u'name', u'VARCHAR(255)', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (6, u'disk_format', u'VARCHAR(20)', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (7, u'container_format', u'VARCHAR(20)', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (8, u'size', u'INTEGER', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (9, u'status', u'VARCHAR(30)', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (10, u'is_public', u'BOOLEAN', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (11, u'location', u'TEXT', 0, None, 0) + 2011-04-13 14:51:16 INFO [sqlalchemy.engine.base.Engine.0x...feac] PRAGMA table_info("image_properties") + 2011-04-13 14:51:16 INFO [sqlalchemy.engine.base.Engine.0x...feac] () + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Col ('cid', 'name', 'type', 'notnull', 'dflt_value', 'pk') + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (0, u'created_at', u'DATETIME', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (1, u'updated_at', u'DATETIME', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (2, u'deleted_at', u'DATETIME', 0, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (3, u'deleted', u'BOOLEAN', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (4, u'id', u'INTEGER', 1, None, 1) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (5, u'image_id', u'INTEGER', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (6, u'key', u'VARCHAR(255)', 1, None, 0) + 2011-04-13 14:51:16 DEBUG [sqlalchemy.engine.base.Engine.0x...feac] Row (7, u'value', u'TEXT', 0, None, 0) + + $ ps aux | grep glance + root 20009 0.7 0.1 12744 9148 pts/1 S 12:47 0:00 /usr/bin/python /usr/bin/glance-api glance.conf --debug + root 20012 2.0 0.1 25188 13356 pts/1 S 12:47 0:00 /usr/bin/python /usr/bin/glance-registry glance.conf + jsuh 20017 0.0 0.0 3368 744 pts/1 S+ 12:47 0:00 grep glance Simply supply the configuration file as the first argument (``etc/glance.conf.sample`` in the above example) and then any common options @@ -93,9 +127,8 @@ For more information on configuring the server via the ``paste.deploy`` configuration files, see the section entitled :doc:`Configuring Glance servers ` -Note that the server does not `daemonize` itself when run manually -from the terminal. You can force the server to daemonize using the standard -shell backgrounding indicator, ``&``. However, for most use cases, we recommend +Note that the server `daemonizes` itself by using the standard +shell backgrounding indicator, ``&``, in the previous example. For most use cases, we recommend using the ``glance-control`` server daemon wrapper for daemonizing. See below for more details on daemonization with ``glance-control``. @@ -125,8 +158,16 @@ in the following way:: Here is an example that shows how to start the ``glance-registry`` server with the ``glance-control`` wrapper script. :: - $> sudo glance-control registry start etc/glance.conf.sample - Starting glance-registry with /home/jpipes/repos/glance/trunk/etc/glance.conf.sample + + $ sudo glance-control all start glance.conf + Starting glance-api with /home/jsuh/glance.conf + Starting glance-registry with /home/jsuh/glance.conf + + $ ps aux | grep glance + root 20038 4.0 0.1 12728 9116 ? Ss 12:51 0:00 /usr/bin/python /usr/bin/glance-api /home/jsuh/glance.conf + root 20039 6.0 0.1 25188 13356 ? Ss 12:51 0:00 /usr/bin/python /usr/bin/glance-registry /home/jsuh/glance.conf + jsuh 20042 0.0 0.0 3368 744 pts/1 S+ 12:51 0:00 grep glance + The same ``paste.deploy`` configuration files are used by ``glance-control`` to start the Glance server programs, and you can specify (as the example above @@ -134,8 +175,8 @@ shows) a configuration file when starting the server. .. note:: - To start all the Glance servers (currently the glance-api and glance-registry - programs) at once, you can specify "all" for the + To start each of Glance servers (currently the glance-api and glance-registry + programs), you can specify glance-api and glance-registry, respectively for the . Stopping a server ----------------- diff --git a/doc/source/glance.rst b/doc/source/glance.rst index 1b112fc4aa..9bdf8f64df 100644 --- a/doc/source/glance.rst +++ b/doc/source/glance.rst @@ -149,20 +149,20 @@ on our local filesystem in ``/tmp/images/myimage.tar.gz``. We'd also like to tell Glance that this image should be called "My Image", and that the image should be public -- anyone should be able to fetch it. -Here is how we'd upload this image to Glance:: +Here is how we'd upload this image to Glance. Change example ip number to your server ip number.:: - $> glance add name="My Image" is_public=true < /tmp/images/myimage.tar.gz + $> glance add name="My Image" is_public=true < /tmp/images/myimage.tar.gz --host=65.114.169.29 If Glance was able to successfully upload and store your VM image data and metadata attributes, you would see something like this:: - $> glance add name="My Image" is_public=true < /tmp/images/myimage.tar.gz + $> glance add name="My Image" is_public=true < /tmp/images/myimage.tar.gz --host=65.114.169.29 Added new image with ID: 2 You can use the ``--verbose`` (or ``-v``) command-line option to print some more information about the metadata that was saved with the image:: - $> glance --verbose add name="My Image" is_public=true < /tmp/images/myimage.tar.gz + $> glance --verbose add name="My Image" is_public=true < /tmp/images/myimage.tar.gz --host=65.114.169.29 Added new image with ID: 4 Returned the following metadata for the new image: container_format => ovf @@ -183,7 +183,7 @@ information about the metadata that was saved with the image:: If you are unsure about what will be added, you can use the ``--dry-run`` command-line option, which will simply show you what *would* have happened:: - $> glance --dry-run add name="Foo" distro="Ubuntu" is_publi=True < /tmp/images/myimage.tar.gz + $> glance --dry-run add name="Foo" distro="Ubuntu" is_publi=True < /tmp/images/myimage.tar.gz --host=65.114.169.29 Dry run. We would have done the following: Add new image with metadata: container_format => ovf @@ -250,12 +250,12 @@ image. You use this command like so:: Let's say we have an image with identifier 5 that we wish to change the is_public attribute of the image from False to True. The following would accomplish this:: - $> glance update 5 is_public=true + $> glance update 5 is_public=true --host=65.114.169.29 Updated image 5 Using the ``--verbose`` flag will show you all the updated data about the image:: - $> glance --verbose update 5 is_public=true + $> glance --verbose update 5 is_public=true --host=65.114.169.29 Updated image 5 Updated image metadata for image 5: URI: http://example.com/images/5 @@ -273,7 +273,7 @@ The ``delete`` command You can delete an image by using the ``delete`` command, shown below:: - $> glance --verbose delete 5 + $> glance --verbose delete 5 --host=65.114.169.29 Deleted image 5 The ``index`` command @@ -282,7 +282,7 @@ The ``index`` command The ``index`` command displays brief information about the *public* images available in Glance, as shown below:: - $> glance index + $> glance index --host=65.114.169.29 Found 4 public images... ID Name Disk Format Container Format Size ---------------- ------------------------------ -------------------- -------------------- -------------- @@ -297,7 +297,7 @@ The ``details`` command The ``details`` command displays detailed information about the *public* images available in Glance, as shown below:: - $> glance details + $> glance details --host=65.114.169.29 Found 4 public images... ================================================================================ URI: http://example.com/images/1 @@ -349,7 +349,7 @@ The ``show`` command The ``show`` command displays detailed information about a specific image, specified with ````, as shown below:: - $> glance show 3 + $> glance show 3 --host=65.114.169.29 URI: http://example.com/images/3 Id: 3 Public? Yes @@ -368,7 +368,7 @@ The ``clear`` command is an administrative command that deletes **ALL** images and all image metadata. Passing the ``--verbose`` command will print brief information about all the images that were deleted, as shown below:: - $> glance --verbose clear + $> glance --verbose clear --host=65.114.169.29 Deleting image 1 "Some web image" ... done Deleting image 2 "Some other web image" ... done Completed in 0.0328 sec.