Skip to content
Snippets Groups Projects
Verified Commit 0c0c1c3c authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

feat: first play finished, gotta start the wireguard thing

parent b84bd83c
No related branches found
No related tags found
No related merge requests found
---
- name: Configure network interfaces
hosts: all
become: true
vars:
gns3_hosts:
H1:
interfaces:
- name: "eth0"
address: "1.0.0.3"
netmask: "255.255.255.0"
gateway: "1.0.0.1"
R1:
interfaces:
- name: eth1
address: "1.0.0.1"
netmask: "255.255.255.0"
- name: eth0
address: "2.0.0.1"
netmask: "255.255.255.0"
routes:
- network: "3.0.0.0/24"
via: "2.0.0.2"
R2:
interfaces:
- name: eth0
address: "2.0.0.2"
netmask: "255.255.255.0"
- name: eth1
address: "3.0.0.2"
netmask: "255.255.255.0"
routes:
- network: "1.0.0.0/24"
via: "2.0.0.1"
H2:
interfaces:
- name: eth0
address: "3.0.0.3"
netmask: "255.255.255.0"
gateway: "3.0.0.2"
tasks:
# - name: "Debug interfaces"
# ansible.builtin.debug:
# msg: "{{ item.name }}"
# loop: "{{ gns3_hosts[inventory_hostname].interfaces }}"
# - name: "Debug routes"
# ansible.builtin.debug:
# msg: "{{ item.network }}"
# loop: "{{ gns3_hosts[inventory_hostname].routes }}"
# - name: "Debug YAML"
# ansible.builtin.debug:
# msg: "{{ item.interfaces }}"
# loop: "{{ gns3_hosts[inventory_hostname] | dict2items }}"
# tags: debug_yaml
- name: "Ensure /etc/network/interfaces.d exists"
ansible.builtin.file:
path: /etc/network/interfaces.d
state: directory
mode: '0755'
- name: "Configure network interfaces"
ansible.builtin.template:
src: "./templates/interfaces.j2"
dest: "/etc/network/interfaces.d/{{ item.name }}"
owner: "root"
group: "root"
mode: "0644"
loop: "{{ gns3_hosts[inventory_hostname].interfaces }}"
notify: Restart networking
- name: "Configure routes"
ansible.builtin.template:
src: "./templates/routes.j2"
dest: "/etc/network/interfaces.d/{{ inventory_hostname }}_routes"
owner: "root"
group: "root"
mode: "0644"
loop: "{{ gns3_hosts[inventory_hostname].routes }}"
when: inventory_hostname != "H1" and inventory_hostname != "H2"
notify: Restart networking
# - name: Verify H1 can ping H2
# command: ping -c 3 3.0.0.3
# register: ping_result
# changed_when: false
# failed_when: ping_result.rc != 0
# when: inventory_hostname == "H1"
handlers:
- name: "Restart networking"
ansible.builtin.systemd:
name: networking
state: restarted
enabled: true
[hosts]
H1
H2
[routers]
R1
R2
auto {{ item.name }}
iface {{ item.name }} inet static
address {{ item.address }}
netmask {{ item.netmask }}
{% if item.gateway is defined %}
gateway {{ item.gateway }}
{% endif %}
{% if item.network is defined %}
up ip route add {{ item.network }} via {{ item.via }}
down ip route del {{ item.network }} via {{ item.via }}
{% endif %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment