I recently did a four-node install of Openstack Mitaka (RDO 9) using a pre-edited Packstack answer file. Of the four nodes, two are Nova compute nodes, one is a control node (Keystone, Horizon, Nova Controller, Neutron, etc) and one is a storage node (Glance and Cinder).
The external and internal network interfaces are br-ex and br-eno2, respectively. Before running
packstack --answer-file [name of answerfile]
you must create these interfaces manually in /etc/sysconfig/network-scripts
On my servers, I made eno1 a slave of br-ex and used an Open V-switch bridge instead of the built-in linux bridge. Here is my network config file for eno1 (ifcfg-eno1)
And here is my network config file for br-ex (ifcfg-br-ex):
You will also need to make similar settings for eno2 and br-eno2 (which will be used for the internal or management network). In my case the external network is on 192.168.10.x, while my internal network is on 192.168.95.x
To apply the new settings, systemctl restart network and also make sure that you stop and disable NetworkManager before running Packstack.
In the Packstack answer file, I used br-ex and br-eno2 in the following four settings:
I also specified that extnet and physnet1 use flat networking instead of vxlan or vlan so that instances can communicate with my existing physical network.
In order to install Glance and Cinder on a node separate from the control node, you must enable unsupported parameters as follows:
# Specify 'y' if you want to use unsupported parameters. This should
# be used only if you know what you are doing. Issues caused by using
# unsupported options will not be fixed before the next major release.
# ['y', 'n']
then specify the storage node IP which will host Glance and Cinder:
# (Unsupported!) Server on which to install OpenStack services
# specific to storage servers such as Image or Block Storage services.
It is highly-recommended to define hostnames for each node so that Openstack can refer to nodes without using IP addresses (which can change), but in my test installation I didn't create specify hostnames and IP's in /etc/hosts for each node. Because I simply use IP addresses as identifiers, after the Packstack install is completed, I have to edit /etc/nova/nova.conf on both compute nodes and edit the following setting to use IP address instead of hostname:
Note that the IP address must have an IP in the same subnet as the vnc base url in nova.conf
You can see my entire Openstack Mitaka Packstack answer file for four-node installation at the following link: