Adding serial console support

This change is to add serial console support
serial console is needed in the case the underlying platform
does not support the spice or novnc option.

Another benefit is more extended configurations options users
have more options in how their Openstack enviroment is configured

Defaults for serialconsole are added to /defaults/main.yml

/templates/nova.conf.j2 template has been changed so new variables
can be imported

the file nova_install.yml has been changed: added conditional to
ensure no new console playbooks are loaded.

Change-Id: I02dc48a8d562d20f37b21e03207e91a220b6dbaf
Partial-Bug: #1696701
Depends-On: I30f91b20b195e578647ea2a0cfe087bdac2b5b6b
This commit is contained in:
Chris Beukers 2017-07-03 07:25:03 -07:00
parent 5528f9a183
commit 0aefe6ab27
3 changed files with 33 additions and 3 deletions

View File

@ -237,6 +237,15 @@ nova_novncproxy_agent_enabled: True
nova_novncproxy_git_repo: https://github.com/novnc/noVNC
nova_novncproxy_git_install_branch: master
## Nova serialconsole
nova_serialconsoleproxy_proto: "ws"
nova_serialconsoleproxy_port: 6083
nova_serialconsoleproxy_port_range: 10000:20000
nova_serialconsoleproxy_base_uri: "{{ nova_serialconsoleproxy_proto }}://{{ external_lb_vip_address }}:{{ nova_serialconsoleproxy_port }}"
nova_serialconsoleproxy_base_url: "{{ nova_serialconsoleproxy_base_uri }}"
nova_serialconsoleproxy_serialconsole_proxyserver_proxyclient_address: "{{ ansible_host }}"
nova_serialconsoleproxy_enabled: True
## Nova metadata
nova_metadata_proxy_enabled: "{{ nova_network_services[nova_network_type]['metadata_proxy_enabled'] | bool }}"
nova_metadata_host: "{{ internal_lb_vip_address }}"
@ -292,7 +301,7 @@ nova_libvirt_hw_disk_discard: '{{ nova_libvirt_images_rbd_pool is defined | tern
## Nova console
nova_console_agent_enabled: True
# Set the console type. Presently the only options are ["spice", "novnc"].
# Set the console type. Presently the only options are ["spice", "novnc", "serialconsole"].
nova_console_type: spice
# Nova console ssl info, presently only used by novnc console type
@ -420,6 +429,7 @@ nova_novncproxy_init_overrides: {}
nova_scheduler_init_overrides: {}
nova_spicehtml5proxy_init_overrides: {}
nova_placement_api_init_overrides: {}
nova_serialproxy_init_overrides: {}
## Service Name-Group Mapping
nova_services:
@ -489,7 +499,12 @@ nova_services:
uwsgi_port: "{{ nova_placement_service_port }}"
wsgi_name: nova-placement-api
wsgi_overrides: "{{ nova_placement_uwsgi_ini_overrides }}"
nova-serialconsole-proxy:
group: nova_console
service_name: nova-serialproxy
init_config_overrides: "{{ nova_serialproxy_init_overrides }}"
condition: "{{ nova_console_type == 'serialconsole' }}"
start_order: 4
nova_novnc_pip_packages:
- websockify

View File

@ -161,6 +161,7 @@
- include: "consoles/nova_console_{{ nova_console_type }}_install.yml"
when:
- "'nova_console' in group_names"
- "nova_console_type != 'serialconsole'"
tags:
- nova-install
- nova-novnc-console

View File

@ -111,7 +111,6 @@ catalog_info = volumev3:cinderv3:internalURL
cross_az_attach = {{ nova_cross_az_attach }}
os_region_name = {{ nova_service_region }}
{% if nova_console_type == 'spice' %}
[spice]
agent_enabled = {{ nova_console_agent_enabled }}
@ -133,6 +132,21 @@ novncproxy_base_url = {{ nova_novncproxy_base_url }}
vncserver_listen = {{ nova_novncproxy_vncserver_listen }}
vncserver_proxyclient_address = {{ nova_novncproxy_vncserver_proxyclient_address }}
{% elif nova_console_type == 'serialconsole' %}
[serial_console]
enabled = {{ nova_serialconsoleproxy_enabled }}
# Console Url and binds
base_url= {{ nova_serialconsoleproxy_base_url }}
proxyclient_address = {% if nova_management_address == 'localhost' %}127.0.0.1{% else %}{{ nova_management_address }}{% endif %}
port_range = {{ nova_serialconsoleproxy_port_range }}
{% if 'nova_console' in group_names %}
serialproxy_host= {{ nova_serialconsoleproxy_serialconsole_proxyserver_proxyclient_address }}
serialproxy_port= {{ nova_serialconsoleproxy_port }}
{% endif %}
[vnc]
enabled = False
{% endif %}
# Glance