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

feat: first playbook "really" finished, todo ping task between H1 and H2

parent 0c0c1c3c
No related branches found
No related tags found
No related merge requests found
......@@ -3,98 +3,76 @@
hosts: all
become: true
vars:
gns3_hosts:
interfaces:
H1:
interfaces:
- name: "eth0"
address: "1.0.0.3"
netmask: "255.255.255.0"
gateway: "1.0.0.1"
- name: "eth0"
address: "1.0.0.3"
netmask: "255.255.255.0"
gateway: "1.0.0.1"
H2:
- name: "eth0"
address: "3.0.0.3"
netmask: "255.255.255.0"
gateway: "3.0.0.2"
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"
- name: eth1
address: "1.0.0.1"
netmask: "255.255.255.0"
- name: eth0
address: "2.0.0.1"
netmask: "255.255.255.0"
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"
- name: eth0
address: "2.0.0.2"
netmask: "255.255.255.0"
- name: eth1
address: "3.0.0.2"
netmask: "255.255.255.0"
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 }}"
routes:
R1:
- network: "3.0.0.0/24"
via: "2.0.0.2"
# - name: "Debug YAML"
# ansible.builtin.debug:
# msg: "{{ item.interfaces }}"
# loop: "{{ gns3_hosts[inventory_hostname] | dict2items }}"
# tags: debug_yaml
R2:
- network: "1.0.0.0/24"
via: "2.0.0.1"
- name: "Ensure /etc/network/interfaces.d exists"
tasks:
- name: Ensure /etc/network/interfaces.d exists
ansible.builtin.file:
path: /etc/network/interfaces.d
state: directory
mode: '0755'
- name: "Configure network interfaces"
- name: Configure network interfaces
ansible.builtin.template:
src: "./templates/interfaces.j2"
dest: "/etc/network/interfaces.d/{{ item.name }}"
src: "templates/netconfig.j2"
dest: "/etc/network/interfaces.d/{{ inventory_hostname }}"
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
# - name: H1 pings H2
# ansible.builtin.command: ping -c 3 3.0.0.3
# register: ping_result
# changed_when: false
# failed_when: ping_result.rc != 0
# when: inventory_hostname == "H1"
#
# - name: H2 pings H2
# ansible.builtin.command: ping -c 3 1.0.0.3
# register: ping_result
# changed_when: false
# failed_when: ping_result.rc != 0
# when: inventory_hostname == "H2"
handlers:
- name: "Restart networking"
- name: Restart networking
ansible.builtin.systemd:
name: networking
state: restarted
......
{% for intf in interfaces[inventory_hostname] %}
auto {{ intf.name }}
iface {{ intf.name }} inet static
address {{ intf.address }}
netmask {{ intf.netmask }}
{% if intf.gateway is defined %}
gateway {{ intf.gateway }}
{% endif %}
{% endfor %}
{% if inventory_hostname in routes %}
{% for route in routes[inventory_hostname] %}
post-up ip route add {{ route.network }} via {{ route.via }}
pre-down ip route del {{ route.network }} via {{ route.via }}
{% endfor %}
{% endif %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment