Server IP : 85.214.239.14 / Your IP : 3.136.22.194 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python3/dist-packages/ansible_collections/cisco/ucs/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import absolute_import, division, print_function __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'certified'} DOCUMENTATION = r''' --- module: ucs_ntp_server short_description: Configures NTP server on Cisco UCS Manager extends_documentation_fragment: cisco.ucs.ucs description: - Configures NTP server on Cisco UCS Manager. options: state: description: - If C(absent), will remove an NTP server. - If C(present), will add or update an NTP server. choices: [absent, present] default: present ntp_server: description: - NTP server IP address or hostname. - Enter up to 63 characters that form a valid hostname. - Enter a valid IPV4 Address. aliases: [ name ] default: "" description: description: - A user-defined description of the NTP server. - Enter up to 256 characters. - "You can use any characters or spaces except the following:" - "` (accent mark), \ (backslash), ^ (carat), \" (double quote), = (equal sign), > (greater than), < (less than), or ' (single quote)." aliases: [ descr ] default: "" requirements: - ucsmsdk author: - David Soper (@dsoper2) - John McDonough (@movinalot) - CiscoUcs (@CiscoUcs) version_added: "2.7" ''' EXAMPLES = r''' - name: Configure NTP server cisco.ucs.ucs_ntp_server: hostname: 172.16.143.150 username: admin password: password ntp_server: 10.10.10.10 description: Internal NTP Server by IP address state: present - name: Configure NTP server cisco.ucs.ucs_ntp_server: hostname: 172.16.143.150 username: admin password: password ntp_server: pool.ntp.org description: External NTP Server by hostname state: present - name: Remove NTP server cisco.ucs.ucs_ntp_server: hostname: 172.16.143.150 username: admin password: password ntp_server: 10.10.10.10 state: absent - name: Remove NTP server cisco.ucs.ucs_ntp_server: hostname: 172.16.143.150 username: admin password: password ntp_server: pool.ntp.org state: absent ''' RETURN = r''' # ''' from ansible.module_utils.basic import AnsibleModule from ansible_collections.cisco.ucs.plugins.module_utils.ucs import UCSModule, ucs_argument_spec def run_module(): argument_spec = ucs_argument_spec argument_spec.update( ntp_server=dict(type='str', aliases=['name']), description=dict(type='str', aliases=['descr'], default=''), state=dict(type='str', default='present', choices=['present', 'absent']), ) module = AnsibleModule( argument_spec, supports_check_mode=True, required_if=[ ['state', 'present', ['ntp_server']], ], ) # UCSModule verifies ucsmsdk is present and exits on failure. Imports are below ucs object creation. ucs = UCSModule(module) err = False from ucsmsdk.mometa.comm.CommNtpProvider import CommNtpProvider changed = False try: mo_exists = False props_match = False dn = 'sys/svc-ext/datetime-svc/ntp-' + module.params['ntp_server'] mo = ucs.login_handle.query_dn(dn) if mo: mo_exists = True if module.params['state'] == 'absent': if mo_exists: if not module.check_mode: ucs.login_handle.remove_mo(mo) ucs.login_handle.commit() changed = True else: if mo_exists: # check top-level mo props kwargs = dict(descr=module.params['description']) if mo.check_prop_match(**kwargs): props_match = True if not props_match: if not module.check_mode: # update/add mo mo = CommNtpProvider(parent_mo_or_dn='sys/svc-ext/datetime-svc', name=module.params['ntp_server'], descr=module.params['description']) ucs.login_handle.add_mo(mo, modify_present=True) ucs.login_handle.commit() changed = True except Exception as e: err = True ucs.result['msg'] = "setup error: %s " % str(e) ucs.result['changed'] = changed if err: module.fail_json(**ucs.result) module.exit_json(**ucs.result) def main(): run_module() if __name__ == '__main__': main()