Ask Your Question
2

Unable to access instances' consoles from Openstack dashboard

asked 2014-11-22 02:46:51 -0500

Xeek gravatar image

updated 2014-11-23 03:06:59 -0500

I successfully deployed openstack services on a MAAS+Juju setup. I logged into the dashboard and created a few instances. When I launch the instance, everything comes up fine( Status = Running ) but I am unable to access the console from the Web GUI. It says "console is currently unavailable. Please try again later." I checked the console logs tab and it seems to be fine. It shows all boot up logs until the login prompt

On searching for this on net someone suggested installing novaconsoleauth and nova-novncproxy on the compute which I did. But still no luck.

Can someone help?

EDIT: Thanks for the help guys. Here's how my nova.conf looks after your suggestions on the compute node

---Snip----
vnc_enabled = True
novncproxy_base_url=http://10.10.10.102:6080/vnc_auto.html
vncserver_proxyclient_address=10.10.10.102(This private IP was assigned to this node my MAAS)
vncserver_listen=0.0.0.0
novnc_enabled = False
ec2_dmz_host = 10.10.10.112
flat_interface = eth1
network_manager = nova.network.manager.FlatDHCPManager

But I am not sure whether the IP I've given is correct as my machine has a bunch of IPs

IP address for eth0:   130.245.158.193(NIC 1)
IP address for eth0:   130.245.158.195(NIC 2)
IP address for br0:    10.10.10.102
IP address for lxcbr0: 10.0.3.1
IP address for br100:  10.0.0.1
IP address for virbr0: 192.168.122.1

$root@slot13:~# netstat -lntp | grep 6080
tcp        0      0 0.0.0.0:6080            0.0.0.0:*               LISTEN      8002/python

And regarding the controller node, I have hosted on an LXC(LXC has a different IP than the machine on which it is running on ) on machine having private IP 10.10.10.104(assigned by MAAS). I went to the node with this IP and changed nova.conf to

----Snip
my_ip=10.10.10.104
vncserver_listen=10.10.10.104
vncserver_proxyclient_address=10.10.10.104

IPs on this controller machine

IP address for br0:    10.10.10.104
IP address for lxcbr0: 10.0.3.1

$root@slot12:~# netstat -lntp | grep 6080
tcp        0      0 0.0.0.0:6080            0.0.0.0:*               LISTEN      25602/python

And re-started nova-consoleauth and nova-novncproxy services on both compute and controller nodes. Still no use :(

edit retag flag offensive close merge delete

Comments

What says cat nova.conf | grep vnc ?
netstat -lntp | grep 6080

dbaxps gravatar imagedbaxps ( 2014-11-22 03:09:45 -0500 )edit

@dbaxps I've updated my post with the required data. Pls check.

Xeek gravatar imageXeek ( 2014-11-23 03:07:39 -0500 )edit

Per Sam's instruction on Compute Node

  novncproxy_base_url = http://controller:6080/vnc_auto.html

Does your controller have IP 10.10.10.102 ? Looks like 10.10.10.104

dbaxps gravatar imagedbaxps ( 2014-11-23 08:35:33 -0500 )edit

3 answers

Sort by ยป oldest newest most voted
2

answered 2014-11-22 11:15:08 -0500

SamYaple gravatar image

updated 2014-11-22 11:15:45 -0500

This is pretty common. In my opinion the setup of the VNC console is pretty vague.

Please post your nova.conf from your controller and compute node.

After making any changes restart all of the nova services if you are unsure which one is needed.

Your compute should look like this:

vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = LOCAL_MANAGEMENT_INTERFACE_IP_ADDRESS
novncproxy_base_url = http://controller:6080/vnc_auto.html

Your controller should look like this:

my_ip = LOCAL_MANAGEMENT_INTERFACE_IP_ADDRESS
vncserver_listen = LOCAL_MANAGEMENT_INTERFACE_IP_ADDRESS
vncserver_proxyclient_address = LOCAL_MANAGEMENT_INTERFACE_IP_ADDRESS

For more information look here

edit flag offensive delete link more

Comments

I've updated my post with latest findings. Pls check.

Xeek gravatar imageXeek ( 2014-11-23 03:03:53 -0500 )edit

novncproxy_base_url on your compute node should point to your controllers ip address

SamYaple gravatar imageSamYaple ( 2014-11-23 05:38:30 -0500 )edit

My changes to nova.conf on the compute node are all overwritten by juju. :( It has again set vnc_enabled=false. I found this warning at the top of nova.conf file "Configuration file maintained by Juju. Local changes may be overwritten." Any ideas to prevent this from happening?

Xeek gravatar imageXeek ( 2014-11-23 14:12:26 -0500 )edit

Before juju could overwrite again, I changed the novncproxy_base_url to the compute node as you suggested, but of no use. And accessing http://10.10.10.104:6080/vnc_auto.html via browser says Failed to Connect to server ( code: 1006)

Xeek gravatar imageXeek ( 2014-11-23 14:25:54 -0500 )edit
1

answered 2014-11-22 11:33:04 -0500

rajiv-kumar gravatar image

updated 2014-11-23 08:05:39 -0500

Just installing nova-consoleauth and nova-novncproxy would not solve the problem, you need to change your /etc/nova/nova.conf to access console. You have to set up novncproxy_base_url, vncserver_proxyclient_address and vncserver_listen variables in configuration file of controller. You can see an example of nova.conf file for controller at

   http://docs.openstack.org/juno/config-reference/content/section_compute-config-samples.html

for compute node use configuration options defined in the following guide

     http://docs.openstack.org/icehouse/install-guide/install/apt/content/nova-compute.html

Don't forget to change IP address defined in this document to your systems IP address.

Your novncproxy_base_url must be accessible to the system, you are using dashboard on because it is point where your dasboard will contact for the console. So, in case you are using dashboard on external world make sure this url must have public IP address. If you are using dashboard on the same machine or in the private network then it can have private IP address. If it does not solve the problem then please provide your /etc/nova/nova.conf and setup info(IP address and which node has what components).

If i understood correctly, you have installed controller node on the container inside the physical server. Because containers create their NAT at the host and you can not access containers inside a machine untill you have not mapped the port to the external machine. Map all the port to the physical machine and give the address of the external machine in the configuration of the compute node. If i have misunderstood, please provide more details regarding IP of the container of controller node. IP address of the external machine and compute node.

edit flag offensive delete link more

Comments

I've updated my post with latest findings. Pls check.

Xeek gravatar imageXeek ( 2014-11-23 03:03:58 -0500 )edit

I have update answer.

rajiv-kumar gravatar imagerajiv-kumar ( 2014-11-23 08:06:25 -0500 )edit

My changes to nova.conf on the compute node are all overwritten by juju. :( It has again set vnc_enabled=false. I found this warning at the top of nova.conf file "Configuration file maintained by Juju. Local changes may be overwritten." Any ideas to prevent this from happening?

Xeek gravatar imageXeek ( 2014-11-23 14:12:40 -0500 )edit
0

answered 2014-11-23 18:52:06 -0500

9lives gravatar image

updated 2014-11-23 18:54:42 -0500

@Xeek Force to use the answer box for words limitation in comments.

if your configuration is managed by deployment tools like juju , chef etc. normally they will be overwritten if you change anything, there are two ways to make your change persistent:

1. modify the configuration script in juju or chef and rerun the configuration action 
2. after your made changes then use the linux command like this   chattr +i  /etc/nova/nova.conf to prevent the overwritten.

We have used the option2 in practice and it is a shortcut.

Hope that helps!

Vic

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

2 followers

Stats

Asked: 2014-11-22 02:46:51 -0500

Seen: 10,652 times

Last updated: Nov 23 '14