def main(): from ansible.module_utils.dellemc_idrac import iDRACConnection module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), change_power=dict(required=True, choices=["On", "ForceOff", "GracefulRestart", "GracefulShutdown", "PushPowerButton", "Nmi"]) ), supports_check_mode=True) # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection Success') # Get Lifecycle Controller status msg, err = run_change_power_state(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): from ansible.module_utils.dellemc_idrac import iDRACConnection module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), change_power=dict(required=True, choices=[ "On", "ForceOff", "GracefulRestart", "GracefulShutdown", "PushPowerButton", "Nmi" ])), supports_check_mode=True) # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection Success') # Get Lifecycle Controller status msg, err = run_change_power_state(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Share Details share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), lockdown_mode=dict(required=True, choices=['Enabled', 'Disabled']) ), supports_check_mode=False) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Get Lifecycle Controller status msg, err = run_system_lockdown_mode(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), ), supports_check_mode=False) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # get software inventory msg, err = run_get_firmware_inventory(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json( ansible_facts={idrac.ipaddr: { 'Firmware Inventory': msg['msg'] }})
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup SNMP Trap Destination destination_number=dict(required=False, type="int"), destination=dict(required=False, type="str"), snmp_v3_username=dict(required=False, type="str"), snmp_trap_state=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup Email Alerts alert_number=dict(required=False, type="int"), address=dict(required=False, default=None, type="str"), custom_message=dict(required=False, default=None, type="str"), email_alert_state=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup iDRAC Alerts enable_alerts=dict(required=False, choices=["Enabled", "Disabled"], default=None), # setup SMTP authentication=dict(required=False, choices=['Enabled', 'Disabled'], default=None), smtp_ip_address=dict(required=False, default=None, type='str'), smtp_port=dict(required=False, type='str'), username=dict(required=False, type="str"), password=dict(required=False, type="str", no_log=True), ), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export Server Configuration Profile msg, err = run_idrac_eventing_config(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): from ansible.module_utils.dellemc_idrac import iDRACConnection module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443) ), supports_check_mode=True) logger.info(module.params['idrac_ip'] + ': STARTING: Get System Inventory') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection is successful') # Get System Inventory msg, err = run_get_system_inventory(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(ansible_facts={idrac.ipaddr: {'SystemInventory': msg['msg']}}) logger.info(module.params['idrac_ip'] + ': FINISHED: Get System Inventory')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # JOB ID job_id=dict(required=True, type='str')), supports_check_mode=False) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() msg, err = run_get_lc_job_status(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), job_wait=dict(required=True, type='bool')), supports_check_mode=False) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export LC Logs msg, err = run_export_lc_logs(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int')), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Get Lifecycle Controller status msg, err = get_lc_status(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), # ISO Image relative to Network File Share iso_image=dict(required=True, type='str'), ), supports_check_mode=False) if not HAS_OMSDK: module.fail_json(msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() msg, err = run_boot_to_network_iso(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): from ansible.module_utils.dellemc_idrac import iDRACConnection module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int')), supports_check_mode=True) logger.info(module.params['idrac_ip'] + ': STARTING: iDRAC Reset.') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection Success') # Get Lifecycle Controller status msg, err = run_idrac_reset(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg) logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Reset.')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443)), supports_check_mode=False) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Get System Inventory msg, err = run_get_system_inventory(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json( ansible_facts={idrac.ipaddr: { 'SystemInventory': msg['msg'] }})
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # SNMP Configuration snmp_enable=dict(required=False, choice=['Enabled', 'Disabled'], default='Enabled', type='str'), snmp_protocol=dict(required=False, choice=['All', 'SNMPv3'], default='All', type='str'), snmp_community=dict(required=False, default='public', type='str'), snmp_port=dict(required=False, default=161, type='int'), snmp_trap_port=dict(required=False, default=162, type='int'), snmp_trap_format=dict(required=False, choice=['SNMPv1', 'SNMPv2', 'SNMPv3'], default='SNMPv1', type='str'), ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Configure SNMP (msg, err) = setup_idrac_snmp(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # Local user credentials user_name=dict(required=True, type='str'), user_pwd=dict(required=False, default=None, type='str', no_log=True), user_priv=dict( required=False, choices=['Administrator', 'Operator', 'ReadOnly', 'NoAccess'], default=None), # State state=dict(required=False, choices=['present', 'absent', 'enable', 'disable'], default='present')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Setup User msg, err = setup_idrac_user(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # Web Server Service paramaters timeout=dict(required=False, default=1800, type='int'), http_port=dict(required=False, default=80, type='int'), https_port=dict(required=False, default=443, type='int'), tls_protocol=dict(required=False, choices=['TLS 1.0 and Higher', 'TLS 1.1 and Higher', 'TLS 1.2 Only'], default='TLS 1.1 and Higher'), ssl_bits=dict(required=False, choices=['Auto-Negotiate', '128-Bit or higher', '168-Bit or higher', '256-Bit or higher'], default='128-Bit or higher'), state=dict(required=False, choices=['present', 'absent'], default='present') ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json(msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Setup web server parameters msg, err = setup_idrac_webserver(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup Webserver enable_web_server=dict(required=False, choices=['Enabled', 'Disabled'], default=None), http_port=dict(required=False, default=None, type='int'), https_port=dict(required=False, default=None, type='int'), ssl_encryption=dict(required=False, choices=['Auto_Negotiate', 'T_128_Bit_or_higher', 'T_168_Bit_or_higher', 'T_256_Bit_or_higher'], default=None), tls_protocol=dict(required=False, choices=['TLS_1_0_and_Higher', 'TLS_1_1_and_Higher', 'TLS_1_2_Only'], default=None), timeout=dict(required=False, default=None, type="str"), # set up SNMP snmp_enable=dict(required=False, choices=['Enabled', 'Disabled'], default=None), community_name=dict(required=False, type='str'), snmp_protocol=dict(required=False, choices=['All', 'SNMPv3'], default=None), alert_port=dict(required=False), discovery_port=dict(required=False, type="int", default=162), trap_format=dict(required=False, ), ), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export Server Configuration Profile msg, err = run_idrac_services_config(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): from ansible.module_utils.dellemc_idrac import iDRACConnection module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), scp_file=dict(required=True, type='str'), scp_components=dict( required=False, choices=['ALL', 'IDRAC', 'BIOS', 'NIC', 'RAID'], default='ALL'), shutdown_type=dict(required=False, choices=['Graceful', 'Forced', 'NoReboot'], default='Graceful'), end_host_power_state=dict(required=False, choices=['On', 'Off'], default='On'), job_wait=dict(required=True, type='bool')), supports_check_mode=True) logger.info(module.params['idrac_ip'] + ': STARTING: Import Server Configuration Profile') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection is successful') msg, err = run_import_server_config_profile(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg) logger.info(module.params['idrac_ip'] + ': FINISHED: Imported Server Configuration Profile')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # Remote Syslog parameters syslog_servers=dict(required=False, default=None, type='list'), syslog_port=dict(required=False, default=514, type='int'), state=dict(required=False, choices=['present', 'absent'], default='absent')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Setup Syslog (msg, err) = setup_idrac_syslog(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_user=dict(required=True, type='str'), scp_components=dict( required=False, choices=['ALL', 'IDRAC', 'BIOS', 'NIC', 'RAID'], default='ALL', type='str'), export_format=dict(required=False, choices=['XML', 'JSON'], default='XML'), export_method=dict(required=False, choices=['Default', 'Clone'], default='Default'), job_wait=dict(required=False, default=True, type='bool')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export Server Configuration Profile msg, err = export_server_config_profile(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): mutual_exclusive_args = [['boot_sources', 'attributes'], ['boot_sources', 'secure_boot_mode'], ['boot_sources', 'boot_mode'], ['boot_sources', 'boot_sequence'], ['boot_sources', 'nvme_mode'], ['boot_sources', 'onetime_boot_mode']] module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=False, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # Bios configuration Attributes boot_mode=dict(required=False, choices=['Bios', 'Uefi'], default=None), nvme_mode=dict(required=False, choices=['NonRaid', 'Raid'], default=None), secure_boot_mode=dict(required=False, choices=['AuditMode', 'DeployedMode', 'SetupMode', 'UserMode'], default=None), onetime_boot_mode=dict(required=False, choices=['Disabled', 'OneTimeBootSeq', 'OneTimeCustomBootSeqStr', 'OneTimeCustomHddSeqStr', 'OneTimeCustomUefiBootSeqStr', 'OneTimeHddSeq', 'OneTimeUefiBootSeq'], default=None), # Bios Boot Sequence boot_sequence=dict(required=False, type="str", default=None), attributes=dict(required=False, type='dict'), boot_sources=dict(required=False, type='list') ), mutually_exclusive=mutual_exclusive_args, supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export Server Configuration Profile msg, err = run_server_bios_config(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # Collect System Inventory on Restart (CSIOR) csior=dict(required=False, choices=['Enabled', 'Disabled'], default='Enabled', type='str'), reboot=dict(required=False, default=False, type='bool')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") msg, err = setup_idrac_lc_attr(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # Time Zone timezone=dict(required=False, default=None, type='str'), # NTP parameters ntp_servers=dict(required=False, default=None, type='list'), state=dict(required=False, choices=['present', 'absent'], default='present') ), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Setup TZ and NTP (msg, err) = setup_idrac_timezone_ntp(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # ISO Image relative to Network File Share iso_image=dict(required=True, type='str'), # Job wait job_wait=dict(required=False, default=True, type='bool') ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json(msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") msg, err = boot_to_network_iso(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), # SNMP Alert Destinations Configuration Options snmp_alert_dest=dict(required=True, type='list'), state=dict(required=False, choice=['present', 'absent'], default='present') ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json(msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # setup snmp alert destinations msg, err = setup_idrac_snmp_alert(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='str'), # Firmware update parameters reboot=dict(required=False, default=False, type='bool'), job_wait=dict(required=False, default=True, type='bool')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") logger.info(module.params['idrac_ip'] + ': STARTING: Firmware Update') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection is successful') msg, err = run_update_fw_from_nw_share(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg) logger.info(module.params['idrac_ip'] + ': FINISHED: Firmware Update')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), share_mnt=dict(required=True, type='path'), server_topology=dict(required=False, default=None, type='dict'), data_center_name=dict(required=False, default=None, type='str'), aisle_name=dict(required=False, default=None, type='str'), rack_name=dict(required=False, default=None, type='str'), rack_slot=dict(required=False, default=None, type='str'), room_name=dict(required=False, default=None, type='str')), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup network share as local mount if not idrac_conn.setup_nw_share_mount(): module.fail_json(msg="Failed to setup network share local mount point") # Setup iDRAC system attributes msg, error = setup_idrac_system_attr(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if error: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # JOB ID job_id=dict(required=True, type='str'), # state state=dict(required=False, choices=['present', 'absent'], default='present')), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() msg = {} err = False if module.params['state'] == "present": if module.params['job_id'] != 'JID_CLEARALL': msg, err = lc_job_status(idrac, module) else: msg, err = delete_lc_job_queue(idrac, module) elif module.params['state'] == "absent": msg, err = delete_lc_job(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") logger.info(module.params['idrac_ip'] + ': STARTING: Get Firmware Inventory') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection is successful') # get software inventory msg, err = run_get_firmware_inventory(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json( ansible_facts={idrac.ipaddr: { 'Firmware Inventory': msg['msg'] }}) # module.exit_json(**msg) logger.info(module.params['idrac_ip'] + ': FINISHED: Get Firmware Inventory')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Network File Share share_name=dict(required=True, type='str'), share_user=dict(required=True, type='str'), share_pwd=dict(required=True, type='str', no_log=True), # ISO Image relative to Network File Share iso_image=dict(required=True, type='str'), ), supports_check_mode=True) if not HAS_OMSDK: module.fail_json(msg="Dell EMC OpenManage Python SDK required for this module") logger.info(module.params['idrac_ip'] + ': STARTING: Operating Syatem Deployment') # Connect to iDRAC logger.info(module.params['idrac_ip'] + ': CALLING: iDRAC Connection') idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() logger.info(module.params['idrac_ip'] + ': FINISHED: iDRAC Connection is successful') msg, err = run_boot_to_network_iso(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg) logger.info(module.params['idrac_ip'] + ': FINISHED: Operating Syatem Deployment')
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Export Destination share_name=dict(required=True, type='str'), share_pwd=dict(required=False, type='str', no_log=True), share_user=dict(required=False, type='str'), share_mnt=dict(required=False, type='str'), # setup NTP enable_ntp=dict(required=False, choices=['Enabled', 'Disabled'], default=None), ntp_server_1=dict(required=False, default=None), ntp_server_2=dict(required=False, default=None), ntp_server_3=dict(required=False, default=None), # set up timezone setup_idrac_timezone=dict(required=False, type='str', default=None), ), supports_check_mode=True) # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Export Server Configuration Profile msg, err = run_idrac_timezone_config(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)
def main(): module = AnsibleModule( argument_spec=dict( # iDRAC Handle idrac=dict(required=False, type='dict'), # iDRAC Credentials idrac_ip=dict(required=True, type='str'), idrac_user=dict(required=True, type='str'), idrac_pwd=dict(required=True, type='str', no_log=True), idrac_port=dict(required=False, default=443, type='int'), # Power Cycle State state=dict(required=True, choice=[ "PowerOn", "SoftPowerCycle", "SoftPowerOff", "HardReset", "DiagnosticInterrupt", "GracefulPowerOff" ], type='str')), supports_check_mode=True) if not HAS_OMSDK: module.fail_json( msg="Dell EMC OpenManage Python SDK required for this module") # Connect to iDRAC idrac_conn = iDRACConnection(module) idrac = idrac_conn.connect() # Setup Power Cycle State (msg, err) = change_power_state(idrac, module) # Disconnect from iDRAC idrac_conn.disconnect() if err: module.fail_json(**msg) module.exit_json(**msg)