{"id":26688270,"url":"https://github.com/dell-networking/ansible-role-dellos-interface","last_synced_at":"2025-04-12T19:07:16.291Z","repository":{"id":80855222,"uuid":"73995272","full_name":"Dell-Networking/ansible-role-dellos-interface","owner":"Dell-Networking","description":"The dellos-interface facilitates the configuration of Interface attributes in devices running Dell EMC Networking Operating Systems","archived":false,"fork":false,"pushed_at":"2020-04-28T19:25:25.000Z","size":44,"stargazers_count":5,"open_issues_count":8,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-12T19:07:13.839Z","etag":null,"topics":["ansible","ansible-galaxy","dell","role"],"latest_commit_sha":null,"homepage":"https://galaxy.ansible.com/Dell-Networking/dellos-interface/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dell-Networking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-11-17T05:56:15.000Z","updated_at":"2024-06-11T07:25:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"be4b0992-6bcd-4a4f-87af-c24599a2c75a","html_url":"https://github.com/Dell-Networking/ansible-role-dellos-interface","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dell-Networking%2Fansible-role-dellos-interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dell-Networking%2Fansible-role-dellos-interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dell-Networking%2Fansible-role-dellos-interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dell-Networking%2Fansible-role-dellos-interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dell-Networking","download_url":"https://codeload.github.com/Dell-Networking/ansible-role-dellos-interface/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618276,"owners_count":21134200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-galaxy","dell","role"],"created_at":"2025-03-26T13:18:25.009Z","updated_at":"2025-04-12T19:07:16.284Z","avatar_url":"https://github.com/Dell-Networking.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Interface role\n==============\n\nThis role facilitates the configuration of interface attributes. It supports the configuration of admin state, description, MTU, IP address, IP helper, suppress_ra and port mode. This role is abstracted for dellos9, dellos6, and dellos10.\n\nThe interface role requires an SSH connection for connectivity to a Dell EMC Networking device. You can use any of the built-in OS connection variables .\n\nInstallation\n------------\n\n    ansible-galaxy install Dell-Networking.dellos-interface\n\nRole variables\n--------------\n\n- Role is abstracted using the *ansible_network_os* variable that can take dellos9, dellos6, and dellos10 values\n- If *dellos_cfg_generate* is set to true, the variable generates the role configuration commands in a file\n- Any role variable with a corresponding state variable setting to absent negates the configuration of that variable\n- Setting an empty value for any variable negates the corresponding configuration\n- *dellos_interface* (dictionary) holds a dictionary with the interface name; interface name can correspond to any of the valid OS interfaces with the unique interface identifier name\n- For physical interfaces, the interface name must be in *\u003cinterfacename\u003e \u003ctuple\u003e* format; for logical interfaces, the interface must be in *\u003clogical_interfacename\u003e \u003cid\u003e* format; physical interface name can be *fortyGigE 1/1* for dellos9 devices, *ethernet 1/1/32* for dellos10 devices, and *Te1/0/1* for dellos6 devices\n- For interface ranges, the interface name must be in *range \u003cinterface_type\u003e \u003cnode/slot/port[:subport]-node/slot/port[:subport]\u003e* format; *range ethernet 1/1/1-1/1/4* for dellos10 devices\n- Logical interface names can be *vlan 1* or *port-channel 1* for dellos9 devices, dellos6 devices, and dellos10 devices\n- Variables and values are case-sensitive\n\n\u003e **NOTE**: Only define supported variables for the interface type. For example, do not define the *switchport* variable for a logical interface; do not configure portmode when *switchport* is present in dellos9 devices; do not define an IP address for physical interfaces in dellos6 devices.\n\n**interface name keys**\n\n| Key        | Type                      | Description                                             | Support               |\n|------------|---------------------------|---------------------------------------------------------|-----------------------|\n| ``desc``  | string         | Configures a single line interface description  | dellos6, dellos9, dellos10 |\n| ``portmode`` | string | Configures port-mode according to the device type | dellos6 (access and trunk), dellos9 (hybrid), dellos10  |\n| ``switchport`` | boolean: true,false\\*  | Configures an interface in L2 mode |  dellos9, dellos10 |\n| ``admin``      | string: up,down\\*              | Configures the administrative state for the interface; configuring the value as administratively \"up\" enables the interface; configuring the value as administratively \"down\" disables the interface | dellos6, dellos9, dellos10 |\n| ``mtu``        | integer                       | Configures the MTU size for L2 and L3 interfaces; example, MTU range is 594 to 12000 for dellos9 devices, 1280 to 65535 on dellos10 devices, and set globally on dellos6 devices | dellos9, dellos10 |\n| ``fanout``     | string:dual, single, quad (dellos9); string:10g-4x, 40g-1x, 25g-4x, 100g-1x, 50g-2x (dellos10)   | Configures fanout to the appropriate value in dellos* devices.| dellos9, dellos10 |\n| ``fanout_speed`` | string: 10G, 25G, 40G, 50G | Configures speed for the fanout port based on the fanout mode specified | dellos9 |\n| ``fanout_state`` | string: present, absent* | Configures the fanout mode to a port if state is set to present | dellos9 |\n| ``keepalive``     | boolean: true,false           | Configures keepalive on the port if set to true | dellos9 |  \n| ``speed``     | string:10,100,1000,auto           | Configures interface speed parameters | dellos9               | \n| ``duplex``     | string: full,half           | Configures interface duplex parameters | dellos9                |\n| ``auto_neg``     | boolean: true,false           | Configures auto-negotiation mode if set to true | dellos9            | \n| ``cr4_auto_neg``     | boolean: true,false           | Configures auto-negotiation mode on a CR4 interface type if set to true | dellos9         |\n| ``suppress_ra`` | string; present,absent     | Configures IPv6 router advertisements if set to present | dellos6, dellos9, dellos10 |\n| ``ip_type_dynamic`` | boolean: true,false           | Configures IP address DHCP if set to true (*ip_and_mask* is ignored if set to true) | dellos6, dellos9, dellos10 |\n| ``ipv6_type_dynamic`` | boolean: true,false           | Configures an IPv6 address for DHCP if set to true (*ipv6_and_mask* is ignored if set to true) | dellos10 |\n| ``ipv6_autoconfig`` | boolean: true,false           | Configures stateless configuration of IPv6 addresses if set to true (*ipv6_and_mask* is ignored if set to true) | dellos10 |\n| ``class_vendor_identifier`` | string: present,absent,string | Configures the vendor-class identifier without a user-defined string if set to present; configures a vendor-class identifier with a user-defined string when a string is specified; ignored when *ip_type_dynamic* is set to false | dellos9  |\n| ``option82`` | boolean: true,false\\* | Configures option82 with the remote-id MAC address if *remote_id* is undefined; ignored when *ip_type_dynamic* is set to false | dellos9 |\n| ``remote_id`` |string: hostname,mac,string | Configures option82 with the specified *remote-id*; ignored when *option82* is set to false | dellos9  |\n| ``vrf`` | string | Configures the specified VRF to be associated to the interface on dellos10 devices | dellos10 |\n| ``min_ra`` | string | Configures RA minimum interval time period | dellos10 |\n| ``max_ra`` | string | Configures RA maximum interval time period | dellos10 |\n| ``ip_and_mask`` | string | Configures the specified IP address to the interface on dellos9 and dellos10 devices; configures the specified IP address to the interface VLAN on dellos6 devices (192.168.11.1/24 format) | dellos6, dellos9, dellos10 |\n| ``ip_and_mask_secondary`` | string | Configures the specified IP address as secondary address to the interface on dellos9 and dellos10 devices (192.168.11.2/24 format) | dellos9 |\n| ``virtual_gateway_ip``     | string     | Configures an anycast gateway IP address for a VXLAN virtual network | dellos10  |\n| ``secondary_ip_state`` | string: absent,present\\* | Deletes the secondary IP address if set to absent | dellos9    |\n| ``ipv6_and_mask`` | string | Configures a specified IPv6 address to the interface on dellos9 and dellos10 devices; configures a specified IP address to the interface VLAN on dellos6 devices (2001:4898:5808:ffa2::1/126 format) | dellos6, dellos9, dellos10 |\n| ``state_ipv6`` | string: absent,present\\* | Deletes the IPV6 address if set to absent           | dellos10 | \n| ``ipv6_reachabletime``       | integer                       | Configures the reachability time for IPv6 neighbor discovery (0 to 3600000) | dellos6, dellos9 |\n| ``ip_helper`` | list | Configures DHCP server address objects (see ``ip_helper.*``) | dellos6, dellos9, dellos10 |\n| ``ip_helper.ip`` | string (required)         | Configures the IPv4 address of the DHCP server (A.B.C.D format)  | dellos6, dellos9, dellos10 |\n| ``ip_helper.state`` | string: absent,present\\* | Deletes the IP helper address if set to absent           | dellos6, dellos9, dellos10 |\n| ``flowcontrol`` | dictionary | Configures the flowcontrol attribute (see ``flowcontrol.*``) | dellos10 |\n| ``flowcontrol.mode`` | string:   receive,transmit  | Configures the flowcontrol mode   | dellos10 |\n| ``flowcontrol.enable`` | string:   on,off  | Configures the flowcontrol mode on  | dellos10 |\n| ``flowcontrol.state`` | string: absent,present\\* | Deletes the flowcontrol if set to absent   | dellos10 |\n\n\u003e **NOTE**: Asterisk (*) denotes the default value if none is specified.\n\nConnection variables\n--------------------\n\nAnsible Dell EMC Networking roles require connection information to establish communication with the nodes in your inventory. This information can exist in the Ansible *group_vars* or *host_vars* directories or inventory, or in the playbook itself.\n\n| Key         | Required | Choices    | Description                                         |\n|-------------|----------|------------|-----------------------------------------------------|\n| ``ansible_host`` | yes      |            | Specifies the hostname or address for connecting to the remote device over the specified transport |\n| ``ansible_port`` | no       |            | Specifies the port used to build the connection to the remote device; if value is unspecified, the ANSIBLE_REMOTE_PORT option is used; it defaults to 22 |\n| ``ansible_ssh_user`` | no       |            | Specifies the username that authenticates the CLI login for the connection to the remote device; if value is unspecified, the ANSIBLE_REMOTE_USER environment variable value is used  |\n| ``ansible_ssh_pass`` | no       |            | Specifies the password that authenticates the connection to the remote device  |\n| ``ansible_become`` | no       | yes, no\\*   | Instructs the module to enter privileged mode on the remote device before sending any commands; if value is unspecified, the ANSIBLE_BECOME environment variable value is used, and the device attempts to execute all commands in non-privileged mode |\n| ``ansible_become_method`` | no       | enable, sudo\\*   | Instructs the module to allow the become method to be specified for handling privilege escalation; if value is unspecified, the ANSIBLE_BECOME_METHOD environment variable value is used |\n| ``ansible_become_pass`` | no       |            | Specifies the password to use if required to enter privileged mode on the remote device; if ``ansible_become`` is set to no this key is not applicable |\n| ``ansible_network_os`` | yes      | dellos6/dellos9/dellos10, null\\*  | Loads the correct terminal and cliconf plugins to communicate with the remote device |\n\n\u003e **NOTE**: Asterisk (*) denotes the default value if none is specified.\n\nDependencies\n------------\n\nThe *dellos-interface* role is built on modules included in the core Ansible code. These modules were added in Ansible version 2.2.0.\n\nExample playbook\n----------------\n\nThis example uses the *dellos-interface* role to set up description, MTU, admin status, portmode, and switchport details for an interface. The example creates a *hosts* file with the switch details and orresponding variables. The hosts file should define the  *ansible_network_os* variable with corresponding Dell EMC networking OS name.\n\nWhen *dellos_cfg_generate* is set to true, the variable generates the configuration commands as a .part file in *build_dir* path. By default, this variable is set to false. The example writes a simple playbook that only references the *dellos-interface* role.\n\n**Sample hosts file**\n\n    leaf3 ansible_host= \u003cip_address\u003e\n \n**Sample host_vars/leaf3**\n\n    hostname: \"leaf3\"\n    ansible_become: yes\n    ansible_become_method: xxxxx\n    ansible_become_pass: xxxxx\n    ansible_ssh_user: xxxxx\n    ansible_ssh_pass: xxxxx\n    ansible_network_os: dellos9\n    build_dir: ../temp/dellos9\n\n    dellos_interface:\n        TenGigabitEthernet 1/8:\n          desc: \"Connected to Spine1\"\n          portmode:\n          switchport: False\n          mtu: 2500\n          admin: up\n          auto_neg: true\n          speed: auto\n          duplex: full\n          keepalive: true\n          ipv6_and_mask: 2001:4898:5808:ffa2::5/126\n          suppress_ra : present\n          ip_type_dynamic: true\n          ip_and_mask: 192.168.23.22/24\n          class_vendor_identifier: present\n          option82: true\n          remote_id: hostname\n        fortyGigE 1/9:\n          desc: \"Connected to Spine2\"\n          switchport: False\n          mtu: 2500\n          admin: up\n          cr4_auto_neg: true\n          ip_and_mask: 192.168.234.20/31\n          ip_and_mask_secondary: \"192.168.234.21/31\"\n          secondary_ip_state: present\n          suppress_ra: absent\n          ip_type_dynamic: false\n          class_vendor_identifier: absent\n          option82: true\n          remote_id: hostname\n          ipv6_and_mask: 2001:4898:5808:ffa2::9/126\n         vlan 100:\n           mtu: 4096\n           admin: down\n           ip_and_mask:\n           ipv6_and_mask: 2002:4898:5408:faaf::1/64\n           suppress_ra: present\n           state_ipv6: absent\n           ip_helper:\n              - ip: 10.0.0.36\n                state: absent\n            ipv6_reachabletime: 600000\n         virtual-network 888:\n           vrf: \"green\"\n           desc: \"virtual-network interface\"\n           ip_and_mask: \"172.17.17.251/24\"\n           virtual_gateway_ip: \"172.17.17.1\"\n           admin: up\n         vlan 20:\n           suppress_ra: absent\n           min_ra: 3\n           max_ra: 4\n           admin: up\n\n**Simple playbook to setup system - leaf.yaml**\n\n    - hosts: leaf3\n      roles:\n         - Dell-Networking.dellos-interface\n \n**Run**\n\n    ansible-playbook -i hosts leaf.yaml\n\n(c) 2017-2019 Dell Inc. or its subsidiaries. All Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell-networking%2Fansible-role-dellos-interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdell-networking%2Fansible-role-dellos-interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell-networking%2Fansible-role-dellos-interface/lists"}