Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dominion-solutions/ansible-netbird
Netbird Collection for Ansible
https://github.com/dominion-solutions/ansible-netbird
ansible ansible-collections devops-tools galaxy netbird vpn wireguard zero-trust
Last synced: 3 months ago
JSON representation
Netbird Collection for Ansible
- Host: GitHub
- URL: https://github.com/dominion-solutions/ansible-netbird
- Owner: dominion-solutions
- License: other
- Created: 2024-02-05T18:46:13.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-05-07T19:31:34.000Z (9 months ago)
- Last Synced: 2024-05-07T20:35:12.002Z (9 months ago)
- Topics: ansible, ansible-collections, devops-tools, galaxy, netbird, vpn, wireguard, zero-trust
- Language: Python
- Homepage:
- Size: 74.2 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
dominion_solutions.netbird
---
This collection allows you to manage your netbird servers.- [Required Python Libraries](#required-python-libraries)
- [Roles](#roles)
- [dominion\_solutions.netbird.netbird](#dominion_solutionsnetbirdnetbird)
- [Inventories](#inventories)
- [dominion\_solutions.netbird.netbird](#dominion_solutionsnetbirdnetbird-1)
- [Sample Inventory Setups](#sample-inventory-setups)
- [Retrieve All Netbird Peers in the _Development_ group](#retrieve-all-netbird-peers-in-the-development-group)
- [Retrieve all Netbird Peers that _are Connected_](#retrieve-all-netbird-peers-that-are-connected)
- [A More Complex example](#a-more-complex-example)
- [Available data for custom groupings](#available-data-for-custom-groupings)
- [Contributing](#contributing)
- [Contributors](#contributors)# Required Python Libraries
- ansible ~=9.2.0
- requests ~=2.31.0 (If using the inventory plugin)# Roles
## dominion_solutions.netbird.netbird
Applying this role will install the netbird client on the target machine.[Documentation](https://galaxy.ansible.com/ui/repo/published/dominion_solutions/netbird/content/role/netbird/)
# Inventories
## dominion_solutions.netbird.netbird
This is a dynamic inventory generated based on the configuration in the netbird API.[Documentation](https://galaxy.ansible.com/ui/repo/published/dominion_solutions/netbird/content/inventory/netbird/)
### Sample Inventory Setups
#### Retrieve All Netbird Peers in the _Development_ group
```yaml
---
plugin: dominion_solutions.netbird.netbird
api_url: https://api.netbird.io/api/
api_key: nbp_this_is_a_fake_api_key
netbird_groups:
- Development
strict: No
```#### Retrieve all Netbird Peers that _are Connected_
```yaml
---
plugin: dominion_solutions.netbird.netbird
api_key: nbp_this_is_a_fake_api_key
api_url: https://netbird.example.com/api/
netbird_connected: True
```#### A More Complex example
This example gets all peers in the _All_ group and builds the additional _connected_ and _ssh\_hosts_ groups, based on the keys.
```yaml
---
plugin: dominion_solutions.netbird.netbird
api_key: nbp_this_is_a_fake_api_key
api_url: https://netbird.example.com/api/
netbird_connected: False
leading_separator: No
netbird_groups:
- "All"
groups:
connected: connected
ssh_hosts: ssh_enabled
strict: No
keyed_groups:
compose:
ansible_ssh_host: label
ansible_ssh_port: 22
```
### Available data for custom groupings
Fields are taken directly from the responses at the [Netbird Peers API](https://docs.netbird.io/api/resources/peers#list-all-peers) unless otherwise indicated| Field | Type | Notes |
| ------------------------- | --------- | ----- |
| label | `string` | `label` is a field generated as part of the inventory as an alias to the `dns_label` field. |
| id | `string` | |
| name | `string` | |
| ip | `string` | |
| connected | `boolean` | |
| last_seen | `string` | This is is an [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) UTC Date Time String |
| os | `string` | An OS Identifier such as `Linux Mint 21.3` or `Alpine Linux 3.19.1` |
| version | `string` | The version of the Netbird Client that is running on the Peer |
| groups | `object` | The groups object. This is parsed into the the groups in the inventory by name. |
| enabled | `boolean` | |
| user_id | `string` | |
| hostname | `string` | The hostname part of the FQDN |
| ui_version | `string` | Blank if there's no UI client installed, otherwise a version for the UI such as `netbird-desktop-ui/0.25.7` |
| dns_label | `string` | The Fully Qualified Domain Name for this peer. |
| login_expiration_enabled | `boolean` | Is this peer exempt from login expiration? |
| login_expired | `boolean` | Is the login for this expired? |
| last_login | `string` | |
| approval_required | `boolean` | |
| accessible_peers_count | `integer` | |# Contributing
Please see [CONTRIBUTING.md](https://github.com/dominion-solutions/ansible-netbird/blob/main/.github/CONTRIBUTING.md)# Contributors
- [Mark J. Horninger](https://github.com/spam-n-eggs)
- [All Contributors](https://github.com/dominion-solutions/ansible-netbird/graphs/contributors)