Skip to content

Commit b24788a

Browse files
authored
Merge pull request #1081 from Shourai/devel
Add out of band IP option
2 parents 2cb63a7 + ebfe86c commit b24788a

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

plugins/inventory/nb_inventory.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@
238238
type: boolean
239239
default: True
240240
version_added: "3.6.0"
241+
oob_ip_as_primary_ip:
242+
description: Use out of band IP as `ansible host`
243+
type: boolean
244+
default: False
241245
"""
242246

243247
EXAMPLES = """
@@ -820,6 +824,13 @@ def extract_primary_ip6(self, host):
820824
except Exception:
821825
return
822826

827+
def extract_oob_ip(self, host):
828+
try:
829+
address = host["oob_ip"]["address"]
830+
return str(ip_interface(address).ip)
831+
except Exception:
832+
return
833+
823834
def extract_tags(self, host):
824835
try:
825836
tag_zero = host["tags"][0]
@@ -1863,6 +1874,10 @@ def _fill_host_variables(self, host, hostname):
18631874
if extracted_primary_ip6:
18641875
self.inventory.set_variable(hostname, "primary_ip6", extracted_primary_ip6)
18651876

1877+
extracted_oob_ip = self.extract_oob_ip(host=host)
1878+
if extracted_oob_ip and self.oob_ip_as_primary_ip:
1879+
self.inventory.set_variable(hostname, "ansible_host", extracted_oob_ip)
1880+
18661881
for attribute, extractor in self.group_extractors.items():
18671882
extracted_value = extractor(host)
18681883

@@ -2053,6 +2068,7 @@ def parse(self, inventory, loader, path, cache=True):
20532068
self.cert = self.get_option("cert")
20542069
self.key = self.get_option("key")
20552070
self.ca_path = self.get_option("ca_path")
2071+
self.oob_ip_as_primary_ip = self.get_option("oob_ip_as_primary_ip")
20562072

20572073
self._set_authorization()
20582074

0 commit comments

Comments
 (0)