mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fixes #6590 add set_remote_user parameter to synchronize
This allows usage of custom ssh configs for remote hosts where the inventory user does not match the configured user.
This commit is contained in:
parent
c729bf209c
commit
ea5186ca63
2 changed files with 22 additions and 8 deletions
|
@ -30,7 +30,10 @@ class ActionModule(object):
|
|||
def _process_origin(self, host, path, user):
|
||||
|
||||
if not host in ['127.0.0.1', 'localhost']:
|
||||
return '%s@%s:%s' % (user, host, path)
|
||||
if user:
|
||||
return '%s@%s:%s' % (user, host, path)
|
||||
else:
|
||||
return '%s:%s' % (host, path)
|
||||
else:
|
||||
return path
|
||||
|
||||
|
@ -38,7 +41,10 @@ class ActionModule(object):
|
|||
transport = self.runner.transport
|
||||
return_data = None
|
||||
if not host in ['127.0.0.1', 'localhost'] or transport != "local":
|
||||
return_data = '%s@%s:%s' % (user, host, path)
|
||||
if user:
|
||||
return_data = '%s@%s:%s' % (user, host, path)
|
||||
else:
|
||||
return_data = '%s:%s' % (host, path)
|
||||
else:
|
||||
return_data = path
|
||||
|
||||
|
@ -122,12 +128,13 @@ class ActionModule(object):
|
|||
if process_args or use_delegate:
|
||||
|
||||
user = None
|
||||
if use_delegate:
|
||||
user = inject['hostvars'][conn.delegate].get('ansible_ssh_user')
|
||||
if utils.boolean(options.get('set_remote_user', 'yes')):
|
||||
if use_delegate:
|
||||
user = inject['hostvars'][conn.delegate].get('ansible_ssh_user')
|
||||
|
||||
if not use_delegate or not user:
|
||||
user = inject.get('ansible_ssh_user',
|
||||
self.runner.remote_user)
|
||||
if not use_delegate or not user:
|
||||
user = inject.get('ansible_ssh_user',
|
||||
self.runner.remote_user)
|
||||
|
||||
if use_delegate:
|
||||
# FIXME
|
||||
|
|
|
@ -119,6 +119,12 @@ options:
|
|||
- Specify a --timeout for the rsync command in seconds.
|
||||
default: 10
|
||||
required: false
|
||||
set_remote_user:
|
||||
description:
|
||||
- put user@ for the remote paths. If you have a custom ssh config to define the remote user for a host
|
||||
that does not match the inventory user, you should set this parameter to "no".
|
||||
default: yes
|
||||
required: false
|
||||
notes:
|
||||
- Inspect the verbose output to validate the destination user/host/path
|
||||
are what was expected.
|
||||
|
@ -189,6 +195,7 @@ def main():
|
|||
times = dict(type='bool'),
|
||||
owner = dict(type='bool'),
|
||||
group = dict(type='bool'),
|
||||
set_remote_user = dict(default='yes', type='bool'),
|
||||
rsync_timeout = dict(type='int', default=10)
|
||||
),
|
||||
supports_check_mode = True
|
||||
|
|
Loading…
Reference in a new issue