user module: return public SSH key
Return public SSH key if the user module is called with generate_ssh_key=yes. Since "user" doesn't overwrite files, this also allows querying of existing public keys. Used in playbooks together with the "register" keyword, the returned key can be passed to the "authorized_key" module allowing easy setup of SSH public key authentication between remote hosts.
This commit is contained in:
parent
f07ac2be6e
commit
7d3af457b5
1 changed files with 11 additions and 0 deletions
11
user
11
user
|
@ -492,6 +492,16 @@ class User(object):
|
||||||
|
|
||||||
return self.execute_command(cmd)
|
return self.execute_command(cmd)
|
||||||
|
|
||||||
|
def get_ssh_public_key(self):
|
||||||
|
ssh_public_key_file = '%s.pub' % self.get_ssh_key_path()
|
||||||
|
try:
|
||||||
|
f = open(ssh_public_key_file)
|
||||||
|
ssh_public_key = f.read().strip()
|
||||||
|
f.close()
|
||||||
|
except IOError:
|
||||||
|
return None
|
||||||
|
return ssh_public_key
|
||||||
|
|
||||||
def create_user(self):
|
def create_user(self):
|
||||||
# by default we use the create_user_useradd method
|
# by default we use the create_user_useradd method
|
||||||
return self.create_user_useradd()
|
return self.create_user_useradd()
|
||||||
|
@ -1130,6 +1140,7 @@ def main():
|
||||||
else:
|
else:
|
||||||
result['ssh_fingerprint'] = err.strip()
|
result['ssh_fingerprint'] = err.strip()
|
||||||
result['ssh_key_file'] = user.get_ssh_key_path()
|
result['ssh_key_file'] = user.get_ssh_key_path()
|
||||||
|
result['ssh_public_key'] = user.get_ssh_public_key()
|
||||||
|
|
||||||
|
|
||||||
module.exit_json(**result)
|
module.exit_json(**result)
|
||||||
|
|
Loading…
Reference in a new issue