]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: Alow users to provide ssh config during bootstrap
authorRicardo Marques <rimarques@suse.com>
Wed, 27 May 2020 08:20:47 +0000 (09:20 +0100)
committerSebastian Wagner <sebastian.wagner@suse.com>
Tue, 2 Jun 2020 12:58:27 +0000 (14:58 +0200)
Custom ssh config can be provided by using the '--ssh-config' option

Signed-off-by: Ricardo Marques <rimarques@suse.com>
(cherry picked from commit 84c390f07f04396c31471d7871402d3ec6631860)

doc/man/8/cephadm.rst
src/cephadm/cephadm

index b1eb9648e111b3b02e4a2bb71b4f352c99941ad8..c0533367df9218fb408a22370a501625b29a615f 100644 (file)
@@ -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
index 63205bac22936fdd75d6407ed8dd4d86649deb0b..3e95fbb19ebdf25da35dfd6fa34da3e7f6e92ee7 100755 (executable)
@@ -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'),