.. Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. The nova-manage command ======================= Introduction ~~~~~~~~~~~~ The nova-manage command is used to perform many essential functions for administration and ongoing maintenance of nova, such as user creation, vpn management, and much more. The standard pattern for executing a nova-manage command is: ``nova-manage []`` For example, to obtain a list of all projects: ``nova-manage project list`` Run without arguments to see a list of available command categories: ``nova-manage`` Categories are user, project, role, shell, vpn, and floating. Detailed descriptions are below. You can also run with a category argument such as user to see a list of all commands in that category: ``nova-manage user`` These sections describe the available categories and arguments for nova-manage. Nova Db ~~~~~~~ ``nova-manage db version`` Print the current database version. ``nova-manage db sync`` Sync the database up to the most recent version. This is the standard way to create the db as well. Nova User ~~~~~~~~~ ``nova-manage user admin `` Create an admin user with the name . ``nova-manage user create `` Create a normal user with the name . ``nova-manage user delete `` Delete the user with the name . ``nova-manage user exports `` Outputs a list of access key and secret keys for user to the screen ``nova-manage user list`` Outputs a list of all the user names to the screen. ``nova-manage user modify `` Updates the indicated user keys, indicating with T or F if the user is an admin user. Leave any argument blank if you do not want to update it. Nova Project ~~~~~~~~~~~~ ``nova-manage project add `` Add a nova project with the name to the database that will be administered by the named user. ``nova-manage project create `` Create a new nova project with the name (you still need to do nova-manage project add to add it to the database). The username is the administrator of the project. ``nova-manage project delete `` Delete a nova project with the name . ``nova-manage project environment `` Exports environment variables for the named project to a file named novarc. ``nova-manage project list`` Outputs a list of all the projects to the screen. ``nova-manage project quota `` Outputs the size and specs of the project's instances including gigabytes, instances, floating IPs, volumes, and cores. ``nova-manage project remove `` Deletes the project with the name . ``nova-manage project zipfile `` Compresses all related files for a created project into a named zip file such as nova.zip. Nova Role ~~~~~~~~~ nova-manage role [] ``nova-manage role add <(optional) projectname>`` Add a user to either a global or project-based role with the indicated assigned to the named user. Role names can be one of the following five roles: admin, itsec, projectmanager, netadmin, developer. If you add the project name as the last argument then the role is assigned just for that project, otherwise the user is assigned the named role for all projects. ``nova-manage role has `` Checks the user or project and responds with True if the user has a global role with a particular project. ``nova-manage role remove `` Remove the indicated role from the user. Nova Shell ~~~~~~~~~~ ``nova-manage shell bpython`` Starts a new bpython shell. ``nova-manage shell ipython`` Starts a new ipython shell. ``nova-manage shell python`` Starts a new python shell. ``nova-manage shell run`` Starts a new shell using python. ``nova-manage shell script `` Runs the named script from the specified path with flags set. Nova VPN ~~~~~~~~ ``nova-manage vpn list`` Displays a list of projects, their IP prot numbers, and what state they're in. ``nova-manage vpn run `` Starts the VPN for the named project. ``nova-manage vpn spawn`` Runs all VPNs. Nova Floating IPs ~~~~~~~~~~~~~~~~~ ``nova-manage floating create `` Creates floating IP addresses for the named host by the given range. ``nova-manage floating delete `` Deletes floating IP addresses in the range given. ``nova-manage floating list`` Displays a list of all floating IP addresses. Nova Images ~~~~~~~~~~~ ``nova-manage image image_register `` Registers an image with the image service. ``nova-manage image kernel_register `` Registers a kernel with the image service. ``nova-manage image ramdisk_register `` Registers a ramdisk with the image service. ``nova-manage image all_register `` Registers an image kernel and ramdisk with the image service. ``nova-manage image convert `` Converts all images in directory from the old (Bexar) format to the new format. Concept: Flags -------------- python-gflags Concept: Plugins ---------------- * Managers/Drivers: utils.import_object from string flag * virt/connections: conditional loading from string flag * db: LazyPluggable via string flag * auth_manager: utils.import_class based on string flag * Volumes: moving to pluggable driver instead of manager * Network: pluggable managers * Compute: same driver used, but pluggable at connection Concept: IPC/RPC ---------------- Rabbit is the main messaging queue, used for all communication between Nova components and it also does the remote procedure calls and inter-process communication. Concept: Fakes -------------- * auth * ldap Concept: Scheduler ------------------ * simple * random Concept: Security Groups ------------------------ Security groups Concept: Certificate Authority ------------------------------ Nova does a small amount of certificate management. These certificates are used for :ref:`project vpns <../cloudpipe>` and decrypting bundled images. Concept: Images --------------- * launching * bundling