node provision, Set vars for generating inventory

Adds option output_dir to the node provision command.
Set ansible vars ssh_private_key_file and output_dir
when calling cli-overcloud-node-provision.yaml.

Partial-Implements: blueprint network-data-v2-ports
Change-Id: I97f7bfd16942a8c33367a4fb246a10798344e4a0
This commit is contained in:
Harald Jensås 2021-01-19 01:48:14 +01:00
parent 632194ec03
commit 1b527d0a08
2 changed files with 18 additions and 1 deletions

View File

@ -325,6 +325,7 @@ class TestProvisionNode(fakes.TestOvercloudNode):
keyf.flush()
with open('{}.pub'.format(keyf.name), 'w') as f:
f.write('I am a key')
key_file_name = keyf.name
argslist = ['--output', outp.name,
'--overcloud-ssh-key', keyf.name,
@ -347,9 +348,11 @@ class TestProvisionNode(fakes.TestOvercloudNode):
'baremetal_deployed_path': mock.ANY,
'ssh_public_keys': 'I am a key',
'ssh_user_name': 'heat-admin',
'ssh_private_key_file': key_file_name,
'node_timeout': 3600,
'concurrency': 20,
'manage_network_ports': False,
'output_dir': mock.ANY,
},
inventory='localhost,',
playbook='cli-overcloud-node-provision.yaml',

View File

@ -256,6 +256,13 @@ class ProvisionNode(command.Command):
help=_('Enable provisioning of network ports'),
default=False,
action="store_true")
parser.add_argument('--output-dir',
help=_('Directory to use for saved output. '
'When not specified, '
'$HOME/config-download/node-config will be '
'used.'),
action='store',
default=None)
return parser
def take_action(self, parsed_args):
@ -269,16 +276,23 @@ class ProvisionNode(command.Command):
ssh_key = fp.read()
output_path = os.path.abspath(parsed_args.output)
if parsed_args.output_dir:
output_dir = os.path.abspath(parsed_args.output_dir)
else:
output_dir = os.path.join(constants.DEFAULT_WORK_DIR,
'node-config')
extra_vars = {
"stack_name": parsed_args.stack,
"baremetal_deployment": roles,
"baremetal_deployed_path": output_path,
"ssh_public_keys": ssh_key,
"ssh_private_key_file": key,
"ssh_user_name": parsed_args.overcloud_ssh_user,
"node_timeout": parsed_args.timeout,
"concurrency": parsed_args.concurrency,
"manage_network_ports": parsed_args.network_ports
"manage_network_ports": parsed_args.network_ports,
"output_dir": output_dir
}
with oooutils.TempDirs() as tmp: