From 7f7b6a08edf0351dbb590da7300b8a8d93f17b02 Mon Sep 17 00:00:00 2001
From: shaofeng_cheng <chengsf@winhong.com>
Date: Tue, 20 Jun 2017 10:58:42 +0800
Subject: [PATCH] Add webconsole support in ironic

Add webconsole support in ironic by pxe_ipmitool driver.
Serial speed must be the same as the serial configuration in
the BIOS settings, so that the operating system boot process
can be seen in the web console.

see:
https://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#appending-kernel-parameters-to-boot-instances

Change-Id: I967ed2f63a50d024c54e0762ec6c0ae09b66d6bd
---
 ansible/roles/ironic/defaults/main.yml        |  3 ++-
 ansible/roles/ironic/templates/ironic.conf.j2 |  3 +++
 doc/ironic-guide.rst                          | 15 +++++++++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml
index f9241d2d96..7212e13062 100644
--- a/ansible/roles/ironic/defaults/main.yml
+++ b/ansible/roles/ironic/defaults/main.yml
@@ -57,7 +57,7 @@ ironic_logging_debug: "{{ openstack_logging_debug }}"
 
 openstack_ironic_auth: "{{ openstack_auth }}"
 
-openstack_ironic_inspector_auth: "{{ openstack_auth }}" 
+openstack_ironic_inspector_auth: "{{ openstack_auth }}"
 
 
 #########
@@ -67,3 +67,4 @@ openstack_ironic_inspector_auth: "{{ openstack_auth }}"
 ironic_dnsmasq_interface: "{{ api_interface }}"
 ironic_dnsmasq_dhcp_range:
 ironic_cleaning_network:
+ironic_console_serial_speed: "115200n8"
diff --git a/ansible/roles/ironic/templates/ironic.conf.j2 b/ansible/roles/ironic/templates/ironic.conf.j2
index 7e7d13ada1..12579e67dd 100644
--- a/ansible/roles/ironic/templates/ironic.conf.j2
+++ b/ansible/roles/ironic/templates/ironic.conf.j2
@@ -79,3 +79,6 @@ enabled = true
 deploy_logs_local_path = /var/log/kolla/ironic
 deploy_logs_storage_backend = local
 deploy_logs_collect = always
+
+[pxe]
+pxe_append_params = nofb nomodeset vga=normal console=tty0 console=ttyS0,{{ ironic_console_serial_speed }}
diff --git a/doc/ironic-guide.rst b/doc/ironic-guide.rst
index e026865538..13dff7d965 100644
--- a/doc/ironic-guide.rst
+++ b/doc/ironic-guide.rst
@@ -20,6 +20,21 @@ The Ironic implementation is "tech preview", so currently instances can only be
 deployed on baremetal. Further work will be done to allow scheduling for both
 virtualized and baremetal deployments.
 
+Configuring Web Console
+=======================
+Configuration based off upstream web_console_documentation_.
+
+Serial speed must be the same as the serial configuration in the BIOS settings.
+Default value: 115200bps, 8bit, non-parity.If you have different serial speed.
+
+Set ironic_console_serial_speed in ``/etc/kolla/globals.yml``:
+
+::
+
+    ironic_console_serial_speed: 9600n8
+
+.. _web_console_documentation: https://docs.openstack.org/developer/ironic/deploy/console.html#node-web-console
+
 Post-deployment configuration
 =============================
 Configuration based off upstream documentation_.