Multi NIC host report wrong IP

Hello.
I'm new to Foreman and Puppet.
In my environment, I'm using KT uCloud as Cloud provider(It's biggest cloud
provider in South Korea, and built on Apache CloudStack).

due to It's network structure and limitation, every VM has 2 of NIC -
eth0 for default Network(which can connected to internet), and eth1 for
private network.
and unfortunately, eth0 was created during installation, but eth1 was
created AFTER installation - It's default behavior.
so puppet reports IP of eth0 (because It searchs VMs IP during
installation), which cannot be reached by puppet master. :frowning:

I think I can fix this by changing host info in database, but It seems not
a proper way :frowning:
Is there any guide to change already registered hosts' IP?

thanks for all your help :slight_smile:

Hello,

In recent Foreman versions, all interfaces are being imported into Foreman and
you can choose what interface is primary. We no longer rely on "ip" fact since
it's not reliable.

So in Foreman 1.8+ you should be able too see all interfaces and their IPs in
host detail page. If you're not satisfied with what's considered as a primary
interface which determines what's displayed as an IP in Properties tab, just
edit the host and click on tag icon for the interface you prefer. That marks
it as a primary. Then hit the Submit button. Note that this affects the host
name, so make sure the dns name and domain is set correctly.

If you want to ignore eth1 completely, there's "Ignore interfaces with
matching identifier" setting that you can adjust. If you change it to something
like this

[ lo, usb*, vnet*, macvtap*, _vdsmdummy_ , eth1 ]

it should completely ignore all eth1 interfaces. You can find it at Administer
-> Settings -> Provisioning

Hope this helps

··· -- Marek

On Sunday 12 of June 2016 23:24:59 Eugene Gwon wrote:

Hello.
I’m new to Foreman and Puppet.
In my environment, I’m using KT uCloud as Cloud provider(It’s biggest cloud
provider in South Korea, and built on Apache CloudStack).

due to It’s network structure and limitation, every VM has 2 of NIC -
eth0 for default Network(which can connected to internet), and eth1 for
private network.
and unfortunately, eth0 was created during installation, but eth1 was
created AFTER installation - It’s default behavior.
so puppet reports IP of eth0 (because It searchs VMs IP during
installation), which cannot be reached by puppet master. :frowning:

I think I can fix this by changing host info in database, but It seems not
a proper way :frowning:
Is there any guide to change already registered hosts’ IP?

thanks for all your help :slight_smile:

Hello, Merek!
unfortunately, I'm using Foreman 1.7, so I can't choose default
interface.
but after I changed IP in Foreman database(foreman.hosts) and call Foreman
API(/unattended/built), now hosts status changed to
'Active' and I can see all of 'facts'.

but I'm not sure If It's safe; the IP is getting changed to original
value(maybe It caused by fact?)…
anyway, It works fine. thanks for your help :slight_smile:

··· On Monday, June 13, 2016 at 5:27:42 PM UTC+9, Marek Hulán wrote: > > Hello, > > In recent Foreman versions, all interfaces are being imported into Foreman > and > you can choose what interface is primary. We no longer rely on "ip" fact > since > it's not reliable. > > So in Foreman 1.8+ you should be able too see all interfaces and their IPs > in > host detail page. If you're not satisfied with what's considered as a > primary > interface which determines what's displayed as an IP in Properties tab, > just > edit the host and click on tag icon for the interface you prefer. That > marks > it as a primary. Then hit the Submit button. Note that this affects the > host > name, so make sure the dns name and domain is set correctly. > > If you want to ignore eth1 completely, there's "Ignore interfaces with > matching identifier" setting that you can adjust. If you change it to > something > like this > > [ lo, usb*, vnet*, macvtap*, _vdsmdummy_ , eth1 ] > > it should completely ignore all eth1 interfaces. You can find it at > Administer > -> Settings -> Provisioning > > Hope this helps > > -- > Marek > > On Sunday 12 of June 2016 23:24:59 Eugene Gwon wrote: > > Hello. > > I'm new to Foreman and Puppet. > > In my environment, I'm using KT uCloud as Cloud provider(It's biggest > cloud > > provider in South Korea, and built on Apache CloudStack). > > > > due to It's network structure and limitation, every VM has 2 of NIC - > > eth0 for default Network(which can connected to internet), and eth1 for > > private network. > > and unfortunately, eth0 was created during installation, but eth1 was > > created AFTER installation - It's default behavior. > > so puppet reports IP of eth0 (because It searchs VMs IP during > > installation), which cannot be reached by puppet master. :( > > > > I think I can fix this by changing host info in database, but It seems > not > > a proper way :( > > Is there any guide to change already registered hosts' IP? > > > > thanks for all your help :) > >

Hello again,

in 1.7 there should be a setting that turns of updating of IP and MAC on facts
receive. Hopefully you can update to newer Foreman soon.

··· -- Marek

On Monday 13 of June 2016 01:47:40 Eugene Gwon wrote:

Hello, Merek!
unfortunately, I’m using Foreman 1.7, so I can’t choose default
interface.
but after I changed IP in Foreman database(foreman.hosts) and call Foreman
API(/unattended/built), now hosts status changed to
’Active’ and I can see all of ‘facts’.

but I’m not sure If It’s safe; the IP is getting changed to original
value(maybe It caused by fact?)…
anyway, It works fine. thanks for your help :slight_smile:

On Monday, June 13, 2016 at 5:27:42 PM UTC+9, Marek Hulán wrote:

Hello,

In recent Foreman versions, all interfaces are being imported into Foreman
and
you can choose what interface is primary. We no longer rely on “ip” fact
since
it’s not reliable.

So in Foreman 1.8+ you should be able too see all interfaces and their IPs
in
host detail page. If you’re not satisfied with what’s considered as a
primary
interface which determines what’s displayed as an IP in Properties tab,
just
edit the host and click on tag icon for the interface you prefer. That
marks
it as a primary. Then hit the Submit button. Note that this affects the
host
name, so make sure the dns name and domain is set correctly.

If you want to ignore eth1 completely, there’s “Ignore interfaces with
matching identifier” setting that you can adjust. If you change it to
something
like this

[ lo, usb*, vnet*, macvtap*, _vdsmdummy_ , eth1 ]

it should completely ignore all eth1 interfaces. You can find it at
Administer
-> Settings -> Provisioning

Hope this helps

On Sunday 12 of June 2016 23:24:59 Eugene Gwon wrote:

Hello.
I’m new to Foreman and Puppet.
In my environment, I’m using KT uCloud as Cloud provider(It’s biggest

cloud

provider in South Korea, and built on Apache CloudStack).

due to It’s network structure and limitation, every VM has 2 of NIC -
eth0 for default Network(which can connected to internet), and eth1 for
private network.
and unfortunately, eth0 was created during installation, but eth1 was
created AFTER installation - It’s default behavior.
so puppet reports IP of eth0 (because It searchs VMs IP during
installation), which cannot be reached by puppet master. :frowning:

I think I can fix this by changing host info in database, but It seems

not

a proper way :frowning:
Is there any guide to change already registered hosts’ IP?

thanks for all your help :slight_smile: