From 6b955a3da49aa9e90eac9254cb6c64effda1a079 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 7 Apr 2026 11:09:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20ansible.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible.yml | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 ansible.yml diff --git a/ansible.yml b/ansible.yml new file mode 100644 index 0000000..cb37f6f --- /dev/null +++ b/ansible.yml @@ -0,0 +1,307 @@ +######################### +# +# inetRouter +# +######################### +- hosts: inetRouter + become: true + tasks: + + - name: enable forwarding + sysctl: + name: net.ipv4.ip_forward + value: '1' + sysctl_set: yes + state: present + reload: yes + + - name: get int name to link 1 centralRouter + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_centralRouter_1 + + - name: get int name to link 2 centralRouter + shell: "ip a | grep '^4: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_centralRouter_2 + + + - name: add bond0 netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_centralRouter_1.stdout }}: + dhcp4: no + dhcp6: no + {{ int_name_link_centralRouter_2.stdout }}: + dhcp4: no + dhcp6: no + bonds: + bond0: + interfaces: + - {{ int_name_link_centralRouter_1.stdout }} + - {{ int_name_link_centralRouter_2.stdout }} + addresses: + - 192.168.255.1/30 + parameters: + mode: 802.3ad + mii-monitor-interval: 100 + lacp-rate: fast + transmit-hash-policy: layer2+3 + + state: present + marker: "# {mark} ROUTE ALL OFFICE BLOCK" + notify: apply netplan + + + - name: enable promiscuous mode + shell: | + ip link set {{ int_name_link_centralRouter_1.stdout }} promisc on + ip link set {{ int_name_link_centralRouter_2.stdout }} promisc on + + handlers: + - name: apply netplan + command: + cmd: netplan apply + + + + +######################### +# +# centralRouter +# +######################### + +- hosts: centralRouter + become: true + tasks: + + - name: enable forwarding + sysctl: + name: net.ipv4.ip_forward + value: '1' + sysctl_set: yes + state: present + reload: yes + + - name: get int name to link 1 inetRouter + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_inetRouter_1 + + - name: get int name to link 2 inetRouter + shell: "ip a | grep '^4: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_inetRouter_2 + + - name: get int name to link vlan10 + shell: "ip a | grep '^5: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan10 + + - name: get int name to link vlan20 + shell: "ip a | grep '^6: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan20 + + - name: add bond0 and vlan netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_inetRouter_1.stdout }}: + dhcp4: no + dhcp6: no + {{ int_name_link_inetRouter_2.stdout }}: + dhcp4: no + dhcp6: no + {{ int_name_link_vlan10.stdout }}: + dhcp4: no + dhcp6: no + {{ int_name_link_vlan20.stdout }}: + dhcp4: no + dhcp6: no + bonds: + bond0: + interfaces: + - {{ int_name_link_inetRouter_1.stdout }} + - {{ int_name_link_inetRouter_2.stdout }} + addresses: + - 192.168.255.2/30 + parameters: + mode: 802.3ad + mii-monitor-interval: 100 + lacp-rate: fast + transmit-hash-policy: layer2+3 + vlans: + vlan10: + id: 10 + link: {{ int_name_link_vlan10.stdout }} + + vlan20: + id: 20 + link: {{ int_name_link_vlan20.stdout }} + + + state: present + notify: apply netplan + + - name: enable promiscuous mode + shell: | + ip link set {{ int_name_link_inetRouter_1.stdout }} promisc on + ip link set {{ int_name_link_inetRouter_2.stdout }} promisc on + + handlers: + - name: apply netplan + command: + cmd: netplan apply + + + + +######################### +# +# testServer1 +# +######################### + +- hosts: testServer1 + become: true + tasks: + + - name: get int name to link vlan10 + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan10 + + - name: add vlan netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_vlan10.stdout }}: + dhcp4: no + dhcp6: no + vlans: + vlan10: + id: 10 + link: {{ int_name_link_vlan10.stdout }} + addresses: + - 10.10.10.1/24 + state: present + notify: apply netplan + + + handlers: + - name: apply netplan + command: + cmd: netplan apply + + +######################### +# +# testClient1 +# +######################### + +- hosts: testClient1 + become: true + tasks: + + - name: get int name to link vlan10 + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan10 + + - name: add vlan netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_vlan10.stdout }}: + dhcp4: no + dhcp6: no + vlans: + vlan10: + id: 10 + link: {{ int_name_link_vlan10.stdout }} + addresses: + - 10.10.10.254/24 + state: present + notify: apply netplan + + + handlers: + - name: apply netplan + command: + cmd: netplan apply + + +######################### +# +# testServer2 +# +######################### + +- hosts: testServer2 + become: true + tasks: + + - name: get int name to link vlan20 + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan20 + + - name: add vlan netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_vlan20.stdout }}: + dhcp4: no + dhcp6: no + vlans: + vlan20: + id: 20 + link: {{ int_name_link_vlan20.stdout }} + addresses: + - 10.10.10.1/24 + state: present + notify: apply netplan + + + handlers: + - name: apply netplan + command: + cmd: netplan apply + + +######################### +# +# testClient2 +# +######################### + +- hosts: testClient2 + become: true + tasks: + + - name: get int name to link vlan20 + shell: "ip a | grep '^3: ' | awk '{print $2}' | tr -d ':'" + register: int_name_link_vlan20 + + - name: add vlan netplan + blockinfile: + path: /etc/netplan/50-cloud-init.yaml + insertafter: ' set-name: enp0s3' + block: |2 + {{ int_name_link_vlan20.stdout }}: + dhcp4: no + dhcp6: no + vlans: + vlan20: + id: 20 + link: {{ int_name_link_vlan20.stdout }} + addresses: + - 10.10.10.254/24 + state: present + notify: apply netplan + + + handlers: + - name: apply netplan + command: + cmd: netplan apply \ No newline at end of file