|
@@ -19,13 +19,15 @@ def generate_inventory(hosts):
|
|
|
global CFG
|
|
|
masters = [host for host in hosts if host.master]
|
|
|
nodes = [host for host in hosts if host.node]
|
|
|
+ new_nodes = [host for host in hosts if host.node and host.new_host]
|
|
|
proxy = determine_proxy_configuration(hosts)
|
|
|
multiple_masters = len(masters) > 1
|
|
|
+ scaleup = len(new_nodes) > 0
|
|
|
|
|
|
base_inventory_path = CFG.settings['ansible_inventory_path']
|
|
|
base_inventory = open(base_inventory_path, 'w')
|
|
|
|
|
|
- write_inventory_children(base_inventory, multiple_masters, proxy)
|
|
|
+ write_inventory_children(base_inventory, multiple_masters, proxy, scaleup)
|
|
|
|
|
|
write_inventory_vars(base_inventory, multiple_masters, proxy)
|
|
|
|
|
@@ -71,6 +73,11 @@ def generate_inventory(hosts):
|
|
|
base_inventory.write('\n[lb]\n')
|
|
|
write_host(proxy, base_inventory)
|
|
|
|
|
|
+ if scaleup:
|
|
|
+ base_inventory.write('\n[new_nodes]\n')
|
|
|
+ for node in new_nodes:
|
|
|
+ write_host(node, base_inventory)
|
|
|
+
|
|
|
base_inventory.close()
|
|
|
return base_inventory_path
|
|
|
|
|
@@ -84,12 +91,14 @@ def determine_proxy_configuration(hosts):
|
|
|
|
|
|
return None
|
|
|
|
|
|
-def write_inventory_children(base_inventory, multiple_masters, proxy):
|
|
|
+def write_inventory_children(base_inventory, multiple_masters, proxy, scaleup):
|
|
|
global CFG
|
|
|
|
|
|
base_inventory.write('\n[OSEv3:children]\n')
|
|
|
base_inventory.write('masters\n')
|
|
|
base_inventory.write('nodes\n')
|
|
|
+ if scaleup:
|
|
|
+ base_inventory.write('new_nodes\n')
|
|
|
if multiple_masters:
|
|
|
base_inventory.write('etcd\n')
|
|
|
if not getattr(proxy, 'preconfigured', True):
|