Create service definition for nova-serialproxy

Nova has the ability to do remote interactive consoles but there is no
easy way to enable this in devstack.  This change defines a service
called n-serial to enable the service.  Documentation is added to a
new guide on nova, describing how to set further options in local.conf

Change-Id: I401d94b2413c62bfae9b90d2214d77bd4cfc15d5
This commit is contained in:
Tony Breeds 2014-12-04 16:52:58 +11:00
parent 9f362d3ab6
commit a339efcd67
3 changed files with 84 additions and 1 deletions

View File

@ -0,0 +1,72 @@
=================
Nova and devstack
=================
This is a rough guide to various configuration parameters for nova
running with devstack.
nova-serialproxy
================
In Juno nova implemented a `spec
<http://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/serial-ports.html>`_
to allow read/write access to the serial console of an instance via
`nova-serialproxy
<http://docs.openstack.org/developer/nova/man/nova-serialproxy.html>`_.
The service can be enabled by adding ``n-sproxy`` to
``ENABLED_SERVICES``. Further options can be enabled via
``local.conf``, e.g.
::
[[post-config|$NOVA_CONF]]
[serial_console]
#
# Options defined in nova.cmd.serialproxy
#
# Host on which to listen for incoming requests (string value)
#serialproxy_host=0.0.0.0
# Port on which to listen for incoming requests (integer
# value)
#serialproxy_port=6083
#
# Options defined in nova.console.serial
#
# Enable serial console related features (boolean value)
#enabled=false
# Do not set this manually. Instead enable the service as
# outlined above.
# Range of TCP ports to use for serial ports on compute hosts
# (string value)
#port_range=10000:20000
# Location of serial console proxy. (string value)
#base_url=ws://127.0.0.1:6083/
# IP address on which instance serial console should listen
# (string value)
#listen=127.0.0.1
# The address to which proxy clients (like nova-serialproxy)
# should connect (string value)
#proxyclient_address=127.0.0.1
Enabling the service is enough to be functional for a single machine devstack.
These config options are defined in `nova.console.serial
<https://github.com/openstack/nova/blob/master/nova/console/serial.py#L33-L52>`_
and `nova.cmd.serialproxy
<https://github.com/openstack/nova/blob/master/nova/cmd/serialproxy.py#L26-L33>`_.
For more information on OpenStack configuration see the `OpenStack
Configuration Reference
<http://docs.openstack.org/trunk/config-reference/content/list-of-compute-config-options.html>`_

View File

@ -67,6 +67,7 @@ Walk through various setups used by stackers
guides/multinode-lab
guides/neutron
guides/devstack-with-nested-kvm
guides/nova
All-In-One Single VM
--------------------
@ -102,6 +103,11 @@ Procedure to setup :doc:`DevStack with KVM-based Nested Virtualization
<guides/devstack-with-nested-kvm>`. With this setup, Nova instances
will be more performant than with plain QEMU emulation.
Nova and devstack
--------------------------------
Guide to working with nova features :doc:`Nova and devstack <guides/nova>`.
DevStack Documentation
======================

View File

@ -566,6 +566,10 @@ function create_nova_conf {
if is_service_enabled tls-proxy; then
iniset $NOVA_CONF DEFAULT ec2_listen_port $EC2_SERVICE_PORT_INT
fi
if is_service_enabled n-sproxy; then
iniset $NOVA_CONF serial_console enabled True
fi
}
function init_nova_cells {
@ -764,6 +768,7 @@ function start_nova_rest {
run_process n-xvnc "$NOVA_BIN_DIR/nova-xvpvncproxy --config-file $api_cell_conf"
run_process n-spice "$NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $api_cell_conf --web $SPICE_WEB_DIR"
run_process n-cauth "$NOVA_BIN_DIR/nova-consoleauth --config-file $api_cell_conf"
run_process n-sproxy "$NOVA_BIN_DIR/nova-serialproxy --config-file $api_cell_conf"
# Starting the nova-objectstore only if swift3 service is not enabled.
# Swift will act as s3 objectstore.
@ -794,7 +799,7 @@ function stop_nova_rest {
# Kill the nova screen windows
# Some services are listed here twice since more than one instance
# of a service may be running in certain configs.
for serv in n-api n-crt n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cond n-cell n-cell n-api-meta n-obj; do
for serv in n-api n-crt n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cond n-cell n-cell n-api-meta n-obj n-sproxy; do
stop_process $serv
done
}