From 84c390f07f04396c31471d7871402d3ec6631860 Mon Sep 17 00:00:00 2001 From: Ricardo Marques Date: Wed, 27 May 2020 09:20:47 +0100 Subject: [PATCH] cephadm: Alow users to provide ssh config during bootstrap Custom ssh config can be provided by using the '--ssh-config' option Signed-off-by: Ricardo Marques --- doc/man/8/cephadm.rst | 2 ++ src/cephadm/cephadm | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/doc/man/8/cephadm.rst b/doc/man/8/cephadm.rst index b1eb9648e111b..c0533367df921 100644 --- a/doc/man/8/cephadm.rst +++ b/doc/man/8/cephadm.rst @@ -62,6 +62,7 @@ Synopsis | [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD] | [--dashboard-key DASHBOARD_KEY] | [--dashboard-crt DASHBOARD_CRT] +| [--ssh-config SSH_CONFIG] | [--ssh-private-key SSH_PRIVATE_KEY] | [--ssh-public-key SSH_PUBLIC_KEY] [--skip-mon-network] | [--skip-dashboard] [--dashboard-password-noupdate] @@ -200,6 +201,7 @@ Arguments: * [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD] Initial password for the initial dashboard user * [--dashboard-key DASHBOARD_KEY] Dashboard key * [--dashboard-crt DASHBOARD_CRT] Dashboard certificate +* [--ssh-config SSH_CONFIG] SSH config * [--ssh-private-key SSH_PRIVATE_KEY] SSH private key * [--ssh-public-key SSH_PUBLIC_KEY] SSH public key * [--skip-mon-network] set mon public_network based on bootstrap mon ip diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 3f998da77ed60..d62ea7309f75b 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -2562,6 +2562,13 @@ def command_bootstrap(): logger.info('Setting orchestrator backend to cephadm...') cli(['orch', 'set', 'backend', 'cephadm']) + if args.ssh_config: + logger.info('Using provided ssh config...') + mounts = { + pathify(args.ssh_config.name): '/tmp/cephadm-ssh-config:z', + } + cli(['cephadm', 'set-ssh-config', '-i', '/tmp/cephadm-ssh-config'], extra_mounts=mounts) + if args.ssh_private_key and args.ssh_public_key: logger.info('Using provided ssh keys...') mounts = { @@ -4473,6 +4480,10 @@ def _get_parser(): '--dashboard-crt', help='Dashboard certificate') + parser_bootstrap.add_argument( + '--ssh-config', + type=argparse.FileType('r'), + help='SSH config') parser_bootstrap.add_argument( '--ssh-private-key', type=argparse.FileType('r'), -- 2.47.3