1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python
- '''
- timedatectl ansible module
- This module supports setting ntp enabled
- '''
- import subprocess
- def do_timedatectl(options=None):
- ''' subprocess timedatectl '''
- cmd = ['/usr/bin/timedatectl']
- if options:
- cmd += options.split()
- proc = subprocess.Popen(cmd, stdin=None, stdout=subprocess.PIPE)
- proc.wait()
- return proc.stdout.read()
- def main():
- ''' Ansible module for timedatectl
- '''
- module = AnsibleModule(
- argument_spec=dict(
- #state=dict(default='enabled', type='str'),
- ntp=dict(default=True, type='bool'),
- ),
- #supports_check_mode=True
- )
- # do something
- ntp_enabled = False
- results = do_timedatectl()
- for line in results.split('\n'):
- if 'NTP enabled' in line:
- if 'yes' in line:
- ntp_enabled = True
- ########
- # Enable NTP
- ########
- if module.params['ntp']:
- if ntp_enabled:
- module.exit_json(changed=False, results="enabled", state="enabled")
- # Enable it
- # Commands to enable ntp
- else:
- results = do_timedatectl('set-ntp yes')
- module.exit_json(changed=True, results="enabled", state="enabled", cmdout=results)
- #########
- # Disable NTP
- #########
- else:
- if not ntp_enabled:
- module.exit_json(changed=False, results="disabled", state="disabled")
- results = do_timedatectl('set-ntp no')
- module.exit_json(changed=True, results="disabled", state="disabled")
- module.exit_json(failed=True, changed=False, results="Something went wrong", state="unknown")
- # Pylint is getting in the way of basic Ansible
- # pylint: disable=redefined-builtin,wildcard-import,unused-wildcard-import
- from ansible.module_utils.basic import *
- main()
|