Bug 971539

Summary: Foreman OpenStack Installer requires 2 NICs on the Foreman Server
Product: Red Hat OpenStack Reporter: Stephen Gordon <sgordon>
Component: doc-Installation_and_Configuration_GuideAssignee: Scott Radvan <sradvan>
Status: CLOSED CURRENTRELEASE QA Contact: Omri Hochman <ohochman>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.0CC: cwolfe, hateya, morazi, ohochman, rhos-maint, rlandman, yeylon
Target Milestone: ---Keywords: Documentation
Target Release: 4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-06 00:02:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1011085    

Description Stephen Gordon 2013-06-06 18:37:54 UTC
Description of problem:

When running foreman_server.sh from the ruby193-openstack-foreman-installer package I receive this message:

# sh foreman_server.sh 
This installer needs 2 configured interfaces - only 1 detected

As a result I assumed that foreman installation requires two NICs. When the instructions I had written based on this went for review though...

<jomara> steveg: foreman machine does not need 2 nics, the openstack nodes do
<steveg> jomara, really? because it failed for me without it
<jomara> foreman did? 
<steveg> yes
<steveg> the install script
<jomara> steveg: the private/public interface configuration?
<steveg> jomara, i assumed so yeah - it isn't exactly the most interactive beast
<jomara> steveg: hehe no it is not - those are network configs for openstack, not foreman
<jomara> its slightly unintuitive, you enter them in on your foreman box but they get applied to the controller and compute
<steveg> but why is it running them at that point?
<steveg> this is when i sh foreman_server.sh

I don't really know what is "right" here. Either the script is incorrectly requiring 2 NICs or the message could probably expand upon *why* it needs them (I suspected something to do with smart proxy deployment but I'm not sure we are even doing that?).

Version-Release number of selected component (if applicable):

ruby193-openstack-foreman-installer-0.0.11-1.el6ost.x86_64

Comment 2 Crag Wolfe 2013-08-07 18:15:15 UTC
In provisioning mode (i.e., foreman is responsible for owning the pxe server and installing client OSes), two NIC's are required, one "internal" and one "external."  So, perhaps there should be more of a "why."  However, shouldn't that belong in the documentation and not the script output?

Comment 3 Stephen Gordon 2013-08-07 18:53:21 UTC
(In reply to Crag Wolfe from comment #2)
> In provisioning mode (i.e., foreman is responsible for owning the pxe server
> and installing client OSes), two NIC's are required, one "internal" and one
> "external."  

Which is effectively the default.

> So, perhaps there should be more of a "why."  However,
> shouldn't that belong in the documentation and not the script output?

The documentation actually does state that two NICs are required, I raised this bug to seek clarification as a result of the conversation I had with Jordan where it was suggested that it's not in fact strictly required.

Comment 4 Crag Wolfe 2013-08-07 20:50:39 UTC
It is strictly required in provisioning mode.  Reading back through the pasted IRC text, when jomara writes "foreman machine does not need 2 nics..." that is true, in non-provisioning mode.  We don't really care what the nic config of the foreman server is in the non-provisioning mode, as long as the clients are able to reach the foreman server.  The openstack public/private nic configuration is a separate issue.

In the provisioning case, the foreman node has two nic's.  Let's give those networks the names of external and foreman_provisioning.  E.g.:

 foreman |-- external
         |-- foreman_provisioning (NAT'ed)

The openstack nodes would have three nic's where the networking config looks like:

  openstack_node |-- foreman_provisioning
                 |-- openstack_public
                 |-- openstack_private


In the non-provisioning case, the openstack_nodes still need the openstack_public and openstack_private nic's, and way to reach the foreman server.  For simplicity, let's just say they do that through the external network.  E.g.

  foreman |-- external

  openstack_node |-- external
                 |-- openstack_public
                 |-- openstack_private

In either the provisioning or non-provisioning case, foreman is still responsible for telling the openstack_nodes which interfaces to use for openstack_public and openstack_private, i.e. they are the environment variables PRIVATE_INTERFACE and PUBLIC_INTERFACE in foreman_server.sh.

Comment 5 Stephen Gordon 2013-11-27 14:15:25 UTC
Hi guys,

Crag tells me that the situation per comment # 4 is now clarified in the documentation, can you confirm that this is the case and if not take appropriate action to ensure that it is?

Thanks,

Steve

Comment 7 Omri Hochman 2013-12-16 15:41:41 UTC
Verified with: openstack-foreman-installer-0.0.25-1.el6ost.noarch

(puddle 2013-12-12.1)

In foreman_server.sh :  When setting 'FOREMAN_PROVISIONING=False' the script do not require for two available NICs with IP. 

When FOREMAN_PROVISIONING=True -> the script won't run without 2 NICs with IP.