cephadm: set ssh configs at bootstrap step

Add support ssh_user and ssh_config to cephadm bootstrap plugin

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit ae6be71b08)
pull/6955/head
Seena Fallah 2021-10-10 02:22:08 +03:30 committed by Guillaume Abrioux
parent 21a4c16b06
commit 057f8e4315
2 changed files with 20 additions and 6 deletions

View File

@ -153,6 +153,8 @@
dashboard_password: "{{ dashboard_admin_password if dashboard_enabled | bool else omit }}"
monitoring: false
firewalld: "{{ configure_firewall }}"
ssh_user: "{{ cephadm_ssh_user | default('root') }}"
ssh_config: "{{ cephadm_ssh_config | default(omit) }}"
- name: set default container image in ceph configuration
command: "{{ cephadm_cmd }} shell -- ceph --cluster {{ cluster }} config set global container_image {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
@ -224,12 +226,6 @@
user: "{{ cephadm_ssh_user | default('root') }}"
key: '{{ cephadm_pubpkey.stdout }}'
- name: set cephadm ssh user to {{ cephadm_ssh_user | default('root') }}
command: "{{ cephadm_cmd }} shell -- ceph --cluster {{ cluster }} cephadm set-user {{ cephadm_ssh_user | default('root') }}"
changed_when: false
run_once: true
delegate_to: "{{ groups[mon_group_name][0] }}"
- name: run cephadm prepare-host
command: cephadm prepare-host
changed_when: false

View File

@ -77,6 +77,14 @@ options:
- Manage firewall rules with firewalld.
required: false
default: true
ssh_user:
description:
- SSH user used for cephadm ssh to the hosts
required: false
ssh_config:
description:
- SSH config file path for cephadm ssh client
required: false
author:
- Dimitri Savineau <dsavinea@redhat.com>
'''
@ -135,6 +143,8 @@ def main():
dashboard_password=dict(type='str', required=False, no_log=True),
monitoring=dict(type='bool', required=False, default=True),
firewalld=dict(type='bool', required=False, default=True),
ssh_user=dict(type='str', required=False),
ssh_config=dict(type='str', required=False),
),
supports_check_mode=True,
)
@ -149,6 +159,8 @@ def main():
dashboard_password = module.params.get('dashboard_password')
monitoring = module.params.get('monitoring')
firewalld = module.params.get('firewalld')
ssh_user = module.params.get('ssh_user')
ssh_config = module.params.get('ssh_config')
startd = datetime.datetime.now()
@ -182,6 +194,12 @@ def main():
if not firewalld:
cmd.append('--skip-firewalld')
if ssh_user:
cmd.extend(['--ssh-user', ssh_user])
if ssh_config:
cmd.extend(['--ssh-config', ssh_config])
if module.check_mode:
exit_module(
module=module,