32 lines
806 B
Plaintext
32 lines
806 B
Plaintext
|
#!/usr/bin/env python
|
||
|
|
||
|
EXAMPLES = '''
|
||
|
# Generates a fastd key
|
||
|
- fastd_key: path=/etc/fastd/site/secret.conf
|
||
|
'''
|
||
|
|
||
|
from ansible.module_utils.basic import *
|
||
|
import os
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
module = AnsibleModule(
|
||
|
argument_spec={
|
||
|
'path': {'required': True, 'type': 'str'},
|
||
|
}
|
||
|
)
|
||
|
|
||
|
path = module.params['path']
|
||
|
changed = False
|
||
|
|
||
|
# file does not exist or is empty?
|
||
|
if not os.path.isfile(path) or os.stat(path).st_size == 0:
|
||
|
# create file with restrictive permissions
|
||
|
with os.fdopen(os.open(path, os.O_WRONLY | os.O_CREAT, 0600), 'w') as handle:
|
||
|
# generate fastd secret
|
||
|
secret = subprocess.check_output(["fastd", "--machine-readable", "--generate-key"]).strip()
|
||
|
handle.write('secret "%s";\n' % secret)
|
||
|
|
||
|
changed = True
|
||
|
|
||
|
module.exit_json(changed=changed)
|