diff --git a/infrastructure-playbooks/cephadm.yml b/infrastructure-playbooks/cephadm.yml index 75c39373a0..64542b4a57 100644 --- a/infrastructure-playbooks/cephadm.yml +++ b/infrastructure-playbooks/cephadm.yml @@ -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 diff --git a/library/cephadm_bootstrap.py b/library/cephadm_bootstrap.py index b9bb9c1ab9..260c7ede3c 100644 --- a/library/cephadm_bootstrap.py +++ b/library/cephadm_bootstrap.py @@ -77,6 +77,14 @@ - 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 ''' @@ -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,