{"id":20155257,"url":"https://github.com/redhat-cop/network.interfaces","last_synced_at":"2025-10-29T01:06:42.467Z","repository":{"id":73504686,"uuid":"582341522","full_name":"redhat-cop/network.interfaces","owner":"redhat-cop","description":"This repository contains the network.interfaces Ansible Collection.","archived":false,"fork":false,"pushed_at":"2025-01-30T19:38:43.000Z","size":177,"stargazers_count":6,"open_issues_count":0,"forks_count":8,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-04-09T22:02:07.515Z","etag":null,"topics":["validated-content"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhat-cop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-26T14:15:22.000Z","updated_at":"2025-01-30T19:38:46.000Z","dependencies_parsed_at":"2023-11-27T14:42:32.496Z","dependency_job_id":"215cd1b9-6f3c-4595-980b-ec3868f55982","html_url":"https://github.com/redhat-cop/network.interfaces","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Fnetwork.interfaces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Fnetwork.interfaces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Fnetwork.interfaces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-cop%2Fnetwork.interfaces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-cop","download_url":"https://codeload.github.com/redhat-cop/network.interfaces/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119296,"owners_count":21050755,"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":["validated-content"],"created_at":"2024-11-13T23:31:01.697Z","updated_at":"2025-10-29T01:06:37.431Z","avatar_url":"https://github.com/redhat-cop.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ansible Network interfaces\n[![CI](https://github.com/redhat-cop/network.interfaces/actions/workflows/tests.yml/badge.svg?branch=main\u0026event=schedule)](https://github.com/redhat-cop/network.interfaces/actions/workflows/tests.yml)[!\n[OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7650/badge)](https://bestpractices.coreinfrastructure.org/projects/7650)\n\nThis repository contains the `network.interfaces` Ansible Collection.\n\n\n## About\n\n- Ansible Network interfaces Collection contains the role that provides a platform-agnostic way of\n  managing interfaces protocol/resources. This collection provides the user the capabilities to gather,\n  deploy, remediate, detect, persist and perform health checks for network interfaces resources.\n\n- Network interfaces collection can be used by anyone who is looking to manage and maintain interfaces protocol/resources. This includes system administrators and IT professionals.\n\nThis collection includes the following roles:\n- **`deploy`**: Ensure consistent configuration deployment across network devices.\n- **`detect`**: Identify configuration drifts between desired and actual states.\n- **`remediate`**: Automatically correct configuration drifts and restore compliance.\n- **`gather`**: Collect facts and running configurations from network devices.\n- **`persist`**: Save network device configurations and facts to local or remote repositories for backup or audit\npurposes.\n- **`health_checks`**: Enables to perform health checks for interfaces.\n\n## Included content\n\nClick on the name of a role to view its documentation:\n\n\u003c!--start collection content--\u003e\n### Roles\nName | Description\n--- | ---\n[network.interfaces.deploy](roles/deploy/README.md) | Deploy consistent network configurations.\n[network.interfaces.detect](roles/detect/README.md) | Identify configuration drifts and discrepancies.\n[network.interfaces.remediate](roles/remediate/README.md) | Correct configuration drifts and restore compliance.\n[network.interfaces.gather](roles/gather/README.md) | Collect facts and running configurations from network devices.\n[network.interfaces.persist](roles/persist/README.md) | Save configurations and facts to local or remote repositories.\n[network.interfaces.health_checks](roles/health_checks/README.md) | Perform health checks for the interfaces.\n\u003c!--end collection content--\u003e\n\n## Requirements\n- [Requires Ansible](https://github.com/redhat-cop/network.interfaces/blob/main/meta/runtime.yml)\n- [Requires Content Collections](https://github.com/redhat-cop/network.interfaces/blob/main/galaxy.yml#L5https://forum.ansible.com/c/news/5/none)\n- [Testing Requirements](https://github.com/redhat-cop/network.interfaces/blob/main/test-requirements.txt)\n- Users also need to include platform collections as per their requirements. The supported platform collections are:\n  - [arista.eos](https://github.com/ansible-collections/arista.eos)\n  - [cisco.ios](https://github.com/ansible-collections/cisco.ios)\n  - [cisco.iosxr](https://github.com/ansible-collections/cisco.iosxr)\n  - [cisco.nxos](https://github.com/ansible-collections/cisco.nxos)\n  - [junipernetworks.junos](https://github.com/ansible-collections/junipernetworks.junos)\n\n## Installation\nTo consume this Validated Content from Automation Hub, the following needs to be added to ansible.cfg:\n```\n[galaxy]\nserver_list = automation_hub\n\n[galaxy_server.automation_hub]\nurl=https://console.redhat.com/api/automation-hub/content/published/\nauth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token\ntoken=\u003cSuperSecretToken\u003e\n```\n\nGet the required token from the [Automation Hub Web UI](https://console.redhat.com/ansible/automation-hub/token).\n\nWith this configured, simply run the following commands:\n\n```\nansible-galaxy collection install network.base\nansible-galaxy collection install network.interfaces\n```\n\n## Use Cases\n\n`Build Brownfield Inventory`:\n- Users want to be able to get the facts for INTERFACES resources and store it as host_vars thus enabling the capability to get facts for all the hosts within the inventory and store facts in a structured format that acts as SOT.\n\n`interfaces Resource Management`:\n- Users want to be able to manage the interfaces, L2 interfaces and L3 interfaces configurations. This also includes the enablement of gathering facts, updating INTERFACE resource host-vars and deploying config onto the appliance.\n\n`Detect Drift and remediate`: This enables users to detect any drift between the provided config and the running config and if required then override the running config.\n\n`interfaces Health Checks`:  Users want to be able to perform health checks for INTERFACES resources. These health checks should be able to provide the interface's admin operational state with the necessary details.\n\n- So in summary this platform-agnostic role enables the user to perform interfaces health checks. Users can perform the following health checks:\n      `all_operational_state_up`\n       `min_operational_state_up`\n       `all_administratnal_state_up`\n       `min_administratnal_state_up`\n\n## Testing\n\nThe project uses tox to run `ansible-lint` and `ansible-test sanity`.\nAssuming this repository is checked out in the proper structure,\ne.g. `collections_root/ansible_collections/network/interfaces`, run:\n\n```shell\n  tox -e ansible-lint\n  tox -e py39-sanity\n```\n\nTo run integration tests, ensure that your inventory has a `network_base` group.\nDepending on what test target you are running, comment out the host(s).\n\n```shell\n[network_hosts]\nios\njunos\n\n[ios:vars]\n\u003c enter inventory details for this group \u003e\n\n[junos:vars]\n\u003c enter inventory details for this group \u003e\n```\n\n```shell\n  ansible-test network-integration -i /path/to/inventory --python 3.9 [target]\n```\n\n## Contributing\n\nWe welcome community contributions to this collection. If you find problems, please open an issue or create a PR against this repository.\n\nDon't know how to start? Refer to the [Ansible community guide](https://docs.ansible.com/ansible/devel/community/index.html)!\n\nWant to submit code changes? Take a look at the [Quick-start development guide](https://docs.ansible.com/ansible/devel/community/create_pr_quick_start.html).\n\nWe also use the following guidelines:\n\n* [Collection review checklist](https://docs.ansible.com/ansible/devel/community/collection_contributors/collection_reviewing.html)\n* [Ansible development guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)\n* [Ansible collection development guide](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections)\n\n### Code of Conduct\nThis collection follows the Ansible project's\n[Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html).\nPlease read and familiarize yourself with this document.\n\n## Release notes\n\nRelease notes are available [here](https://github.com/redhat-cop/network.interfaces/blob/main/CHANGELOG.rst).\n\n## Related information\n\n- [Developing network resource modules](https://github.com/ansible-network/networking-docs/blob/main/rm_dev_guide.md)\n- [Ansible Networking docs](https://github.com/ansible-network/networking-docs)\n- [Ansible Collection Overview](https://github.com/ansible-collections/overview)\n- [Ansible Roles overview](https://docs.ansible.com/ansible/2.9/user_guide/playbooks_reuse_roles.html)\n- [Ansible User guide](https://docs.ansible.com/ansible/latest/user_guide/index.html)\n- [Ansible Developer guide](https://docs.ansible.com/ansible/latest/dev_guide/index.html)\n- [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)\n\n## Licensing\n\nGNU General Public License v3.0 or later.\n\nSee [LICENSE](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-cop%2Fnetwork.interfaces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-cop%2Fnetwork.interfaces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-cop%2Fnetwork.interfaces/lists"}