mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge branch 'bcoca-become_fixes' into devel
This commit is contained in:
commit
5f0ed76f1c
6 changed files with 22 additions and 30 deletions
|
@ -121,7 +121,7 @@ def main(args):
|
||||||
options.ask_vault_pass = options.ask_vault_pass or C.DEFAULT_ASK_VAULT_PASS
|
options.ask_vault_pass = options.ask_vault_pass or C.DEFAULT_ASK_VAULT_PASS
|
||||||
|
|
||||||
if options.listhosts or options.syntax or options.listtasks or options.listtags:
|
if options.listhosts or options.syntax or options.listtasks or options.listtags:
|
||||||
(_, _, _, vault_pass) = utils.ask_passwords(ask_vault_pass=options.ask_vault_pass)
|
(_, _, vault_pass) = utils.ask_passwords(ask_vault_pass=options.ask_vault_pass)
|
||||||
else:
|
else:
|
||||||
options.ask_pass = options.ask_pass or C.DEFAULT_ASK_PASS
|
options.ask_pass = options.ask_pass or C.DEFAULT_ASK_PASS
|
||||||
# Never ask for an SSH password when we run with local connection
|
# Never ask for an SSH password when we run with local connection
|
||||||
|
|
|
@ -24,7 +24,7 @@ For information about writing your own dynamic inventory source, see :doc:`devel
|
||||||
Example: The Cobbler External Inventory Script
|
Example: The Cobbler External Inventory Script
|
||||||
``````````````````````````````````````````````
|
``````````````````````````````````````````````
|
||||||
|
|
||||||
It is expected that many Ansible users with a reasonable amount of physical hardware may also be `Cobbler <http://cobbler.github.com>`_ users. (note: Cobbler was originally written by Michael DeHaan and is now lead by James Cammarata, who also works for Ansible, Inc).
|
It is expected that many Ansible users with a reasonable amount of physical hardware may also be `Cobbler <http://cobbler.github.com>`_ users. (note: Cobbler was originally written by Michael DeHaan and is now led by James Cammarata, who also works for Ansible, Inc).
|
||||||
|
|
||||||
While primarily used to kickoff OS installations and manage DHCP and DNS, Cobbler has a generic
|
While primarily used to kickoff OS installations and manage DHCP and DNS, Cobbler has a generic
|
||||||
layer that allows it to represent data for multiple configuration management systems (even at the same time), and has
|
layer that allows it to represent data for multiple configuration management systems (even at the same time), and has
|
||||||
|
|
|
@ -583,29 +583,6 @@ class Play(object):
|
||||||
included_become_vars[k] = become_vars[k]
|
included_become_vars[k] = become_vars[k]
|
||||||
x[k] = become_vars[k]
|
x[k] = become_vars[k]
|
||||||
|
|
||||||
## backwards compat with old sudo/su directives
|
|
||||||
if 'sudo' in x or 'sudo_user' in x:
|
|
||||||
included_become_vars['become'] = x['sudo']
|
|
||||||
x['become'] = x['sudo']
|
|
||||||
x['become_method'] = 'sudo'
|
|
||||||
del x['sudo']
|
|
||||||
|
|
||||||
if x.get('sudo_user', False):
|
|
||||||
included_become_vars['become_user'] = x['sudo_user']
|
|
||||||
x['become_user'] = x['sudo_user']
|
|
||||||
del x['sudo_user']
|
|
||||||
|
|
||||||
elif 'su' in x or 'su_user' in x:
|
|
||||||
included_become_vars['become'] = x['su']
|
|
||||||
x['become'] = x['su']
|
|
||||||
x['become_method'] = 'su'
|
|
||||||
del x['su']
|
|
||||||
|
|
||||||
if x.get('su_user', False):
|
|
||||||
included_become_vars['become_user'] = x['su_user']
|
|
||||||
x['become_user'] = x['su_user']
|
|
||||||
del x['su_user']
|
|
||||||
|
|
||||||
if 'meta' in x:
|
if 'meta' in x:
|
||||||
if x['meta'] == 'flush_handlers':
|
if x['meta'] == 'flush_handlers':
|
||||||
results.append(Task(self, x))
|
results.append(Task(self, x))
|
||||||
|
|
|
@ -173,19 +173,34 @@ class Task(object):
|
||||||
|
|
||||||
# set only if passed in current task data
|
# set only if passed in current task data
|
||||||
if 'sudo' in ds or 'sudo_user' in ds:
|
if 'sudo' in ds or 'sudo_user' in ds:
|
||||||
self.become=ds['sudo']
|
|
||||||
self.become_method='sudo'
|
self.become_method='sudo'
|
||||||
|
|
||||||
|
if 'sudo' in ds:
|
||||||
|
self.become=ds['sudo']
|
||||||
|
del ds['sudo']
|
||||||
|
else:
|
||||||
|
self.become=True
|
||||||
if 'sudo_user' in ds:
|
if 'sudo_user' in ds:
|
||||||
self.become_user = ds['sudo_user']
|
self.become_user = ds['sudo_user']
|
||||||
|
del ds['sudo_user']
|
||||||
if 'sudo_pass' in ds:
|
if 'sudo_pass' in ds:
|
||||||
self.become_pass = ds['sudo_pass']
|
self.become_pass = ds['sudo_pass']
|
||||||
if 'su' in ds or 'su_user' in ds:
|
del ds['sudo_pass']
|
||||||
self.become=ds['su']
|
|
||||||
|
elif 'su' in ds or 'su_user' in ds:
|
||||||
self.become_method='su'
|
self.become_method='su'
|
||||||
|
|
||||||
|
if 'su' in ds:
|
||||||
|
self.become=ds['su']
|
||||||
|
else:
|
||||||
|
self.become=True
|
||||||
|
del ds['su']
|
||||||
if 'su_user' in ds:
|
if 'su_user' in ds:
|
||||||
self.become_user = ds['su_user']
|
self.become_user = ds['su_user']
|
||||||
|
del ds['su_user']
|
||||||
if 'su_pass' in ds:
|
if 'su_pass' in ds:
|
||||||
self.become_pass = ds['su_pass']
|
self.become_pass = ds['su_pass']
|
||||||
|
del ds['su_pass']
|
||||||
|
|
||||||
# Both are defined
|
# Both are defined
|
||||||
if ('action' in ds) and ('local_action' in ds):
|
if ('action' in ds) and ('local_action' in ds):
|
||||||
|
|
|
@ -133,7 +133,7 @@ class ActionModule(object):
|
||||||
xfered = self.runner._transfer_str(conn, tmp, 'source', resultant)
|
xfered = self.runner._transfer_str(conn, tmp, 'source', resultant)
|
||||||
|
|
||||||
# fix file permissions when the copy is done as a different user
|
# fix file permissions when the copy is done as a different user
|
||||||
if self.runner.become and self.runner.become_user != 'root' or self.runner.su and self.runner.su_user != 'root':
|
if self.runner.become and self.runner.become_user != 'root':
|
||||||
self.runner._remote_chmod(conn, 'a+r', xfered, tmp)
|
self.runner._remote_chmod(conn, 'a+r', xfered, tmp)
|
||||||
|
|
||||||
# run the copy module
|
# run the copy module
|
||||||
|
|
|
@ -246,7 +246,7 @@ class Connection(object):
|
||||||
|
|
||||||
if success_key in become_output or \
|
if success_key in become_output or \
|
||||||
(prompt and become_output.endswith(prompt)) or \
|
(prompt and become_output.endswith(prompt)) or \
|
||||||
utils.su_prompts.check_su_prompt(become_output)):
|
utils.su_prompts.check_su_prompt(become_output):
|
||||||
break
|
break
|
||||||
chunk = chan.recv(bufsize)
|
chunk = chan.recv(bufsize)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue