chore: ansible-lint review (almost done)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# net-config
|
||||
|
||||
This role configures a network interface.
|
||||
|
||||
## Requirements
|
||||
|
||||
None
|
||||
|
||||
## Example Playbook
|
||||
|
||||
```yaml
|
||||
- hosts: servers
|
||||
roles:
|
||||
- role: net-config
|
||||
interface:
|
||||
name: lan0
|
||||
mac_address: 02:a0:c9:8d:7e:b6
|
||||
address: 192.168.1.2/24
|
||||
gateway: 192.168.1.254
|
||||
nameservers:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
## Author Information
|
||||
|
||||
Jokester <main@jokester.fr>
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: Jokester <main@jokester.fr>
|
||||
description: Configure the network as set in the inventory
|
||||
license: MIT
|
||||
min_ansible_version: "2.10"
|
||||
galaxy_tags:
|
||||
- network
|
||||
- configuration
|
||||
- linux
|
||||
- debian
|
||||
- archlinux
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- all
|
||||
- name: ArchLinux
|
||||
versions:
|
||||
- all
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
- name: Check if the interface ipv4 address is defined
|
||||
ansible.builtin.debug:
|
||||
msg: "Warning: iface {{ interface.name }} has no defined ipv4 address, skipping configuration"
|
||||
when: interface.ipv4.address is not defined
|
||||
|
||||
- name: Process interface configuration
|
||||
when: interface.ipv4.address is defined
|
||||
block:
|
||||
- name: Create systemd-netdev file for virtual interface
|
||||
when:
|
||||
- interface.type is defined
|
||||
- interface.type != 'ethernet'
|
||||
ansible.builtin.template:
|
||||
src: systemd.netdev.j2
|
||||
dest: /etc/systemd/network/10-{{ interface.name }}.netdev
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
register: netdev_result
|
||||
|
||||
- name: Create systemd-network configuration file
|
||||
ansible.builtin.template:
|
||||
src: systemd.network.j2
|
||||
dest: /etc/systemd/network/20-{{ interface.name }}.network
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
register: network_result
|
||||
|
||||
- name: Notify a reload is required
|
||||
ansible.builtin.set_fact:
|
||||
network_reload_required: true
|
||||
when: netdev_result is changed or network_result is changed
|
||||
@@ -0,0 +1,6 @@
|
||||
# {{ ansible_managed }}
|
||||
# systemd.netdev(5)
|
||||
|
||||
[NetDev]
|
||||
Name={{ interface.name }}
|
||||
Kind={{ interface.type }}
|
||||
@@ -0,0 +1,29 @@
|
||||
# {{ ansible_managed }}
|
||||
# systemd.network(5)
|
||||
|
||||
[Match]
|
||||
Name={{ interface.name }}
|
||||
|
||||
[Address]
|
||||
Address={{ interface.ipv4.address }}
|
||||
{% if interface.ipv4.metric is defined %}
|
||||
RouteMetric={{ interface.ipv4.metric }}
|
||||
{% endif %}
|
||||
|
||||
[Network]
|
||||
{% if interface.type is defined and interface.type == 'bridge' %}
|
||||
ConfigureWithoutCarrier=yes
|
||||
{% endif %}
|
||||
{% if interface.ipv4.nameservers is defined %}
|
||||
{% for dns in interface.ipv4.nameservers %}
|
||||
DNS={{ dns }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if interface.ipv4.gateway is defined %}
|
||||
[Route]
|
||||
Gateway={{ interface.ipv4.gateway }}
|
||||
{% if interface.ipv4.metric is defined %}
|
||||
Metric={{ interface.ipv4.metric }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
Reference in New Issue
Block a user