mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	split out netplan2
This commit is contained in:
		
							parent
							
								
									93694e853b
								
							
						
					
					
						commit
						343d00848f
					
				
					 3 changed files with 107 additions and 23 deletions
				
			
		
							
								
								
									
										66
									
								
								roles/network/tasks/netplan.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								roles/network/tasks/netplan.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,66 @@
 | 
				
			||||||
 | 
					# netplan.yml
 | 
				
			||||||
 | 
					- name: Figure out netplan file name on Ubuntu 18
 | 
				
			||||||
 | 
					  shell: ls /etc/netplan
 | 
				
			||||||
 | 
					  register: netplan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Remove stock netplan template
 | 
				
			||||||
 | 
					  file:
 | 
				
			||||||
 | 
					    state: absent
 | 
				
			||||||
 | 
					    dest: /etc/netplan/{{ netplan }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Was needed at one point retesting current needs
 | 
				
			||||||
 | 
					#- name: Disable and mask systemd-networkd-wait-online
 | 
				
			||||||
 | 
					#  systemd:
 | 
				
			||||||
 | 
					#    name: systemd-networkd-wait-online
 | 
				
			||||||
 | 
					#    enabled: no
 | 
				
			||||||
 | 
					#    masked: yes
 | 
				
			||||||
 | 
					#    state: stopped
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Disable and mask cloud-init
 | 
				
			||||||
 | 
					  systemd:
 | 
				
			||||||
 | 
					    name: "{{ item }}"
 | 
				
			||||||
 | 
					    enabled: no
 | 
				
			||||||
 | 
					    masked: yes
 | 
				
			||||||
 | 
					    state: stopped
 | 
				
			||||||
 | 
					  with_items:
 | 
				
			||||||
 | 
					   - cloud-init-local
 | 
				
			||||||
 | 
					   - cloud-init
 | 
				
			||||||
 | 
					  when: "{{ netplan }}" == "50-cloud-init.yaml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ICO will always set gui_static_wan_ip away from the default of 'unset' while
 | 
				
			||||||
 | 
					# gui_static_wan turns dhcp on/off through wan_ip in computed_network and
 | 
				
			||||||
 | 
					# overrides gui_static_wan_ip that is present. Changing wan_ip in local_vars
 | 
				
			||||||
 | 
					# is a oneway street to static.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Static IP computing CIDR
 | 
				
			||||||
 | 
					  shell: netmask {{ wan_ip }}/{{ wan_netmask }} | awk -F "/" '{print $2}'
 | 
				
			||||||
 | 
					  register: CIDR
 | 
				
			||||||
 | 
					  when: wan_ip != "dhcp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Static IP setting CIDR
 | 
				
			||||||
 | 
					  set_fact:
 | 
				
			||||||
 | 
					    wan_cidr: "{{ CIDR.stdout }}"
 | 
				
			||||||
 | 
					  when: wan_ip != "dhcp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Supply netplan template
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    dest:  /etc/netplan/01-iiab-config
 | 
				
			||||||
 | 
					    src: network/netplan.j2
 | 
				
			||||||
 | 
					    backup: no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Stopping services
 | 
				
			||||||
 | 
					  include_tasks: down-debian.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: generate netplan config
 | 
				
			||||||
 | 
					  shell: netplan generate --debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# wants a controlling terminal so it fails
 | 
				
			||||||
 | 
					- name: test netplan config
 | 
				
			||||||
 | 
					  shell: netplan try --debug --timeout=2
 | 
				
			||||||
 | 
					  register: test-netplan
 | 
				
			||||||
 | 
					  ignore_errors: True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# and does not apply this config until rebooted or ignore the above test
 | 
				
			||||||
 | 
					- name: Reload netplan
 | 
				
			||||||
 | 
					  shell: netplan apply
 | 
				
			||||||
 | 
					  when: not no_net_restart and test-netplan == "Configuration accepted"
 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
{% if wan_ip != "dhcp" %}
 | 
					 | 
				
			||||||
network:
 | 
					 | 
				
			||||||
    ethernets:
 | 
					 | 
				
			||||||
        {{ iiab_wan_iface }}:
 | 
					 | 
				
			||||||
            addresses:
 | 
					 | 
				
			||||||
            - {{ wan_ip }}/{{ wan_cidr }}
 | 
					 | 
				
			||||||
            gateway4: {{ wan_gateway }}
 | 
					 | 
				
			||||||
            nameservers:
 | 
					 | 
				
			||||||
               addresses:
 | 
					 | 
				
			||||||
               - {{ wan_nameserver }}
 | 
					 | 
				
			||||||
               search:
 | 
					 | 
				
			||||||
               - {{ iiab_domain }}
 | 
					 | 
				
			||||||
            optional: true
 | 
					 | 
				
			||||||
    version: 2
 | 
					 | 
				
			||||||
{% else %}
 | 
					 | 
				
			||||||
network:
 | 
					 | 
				
			||||||
    ethernets:
 | 
					 | 
				
			||||||
        {{ iiab_wan_iface }}:
 | 
					 | 
				
			||||||
            addresses: []
 | 
					 | 
				
			||||||
            dhcp4: true
 | 
					 | 
				
			||||||
            optional: true
 | 
					 | 
				
			||||||
    version: 2
 | 
					 | 
				
			||||||
{% endif %}
 | 
					 | 
				
			||||||
							
								
								
									
										41
									
								
								roles/network/templates/network/netplan.j2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								roles/network/templates/network/netplan.j2
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					network:
 | 
				
			||||||
 | 
					    version: 2
 | 
				
			||||||
 | 
					{% if network_manager_active %}
 | 
				
			||||||
 | 
					    renderer: NetworkManager
 | 
				
			||||||
 | 
					{% else  %}
 | 
				
			||||||
 | 
					    renderer: networkd
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					    ethernets:
 | 
				
			||||||
 | 
					{% if wan_ip != "dhcp" %}
 | 
				
			||||||
 | 
					        {{ iiab_wan_iface }}:
 | 
				
			||||||
 | 
					            addresses:
 | 
				
			||||||
 | 
					            - {{ wan_ip }}/{{ wan_cidr }}
 | 
				
			||||||
 | 
					            gateway4: {{ wan_gateway }}
 | 
				
			||||||
 | 
					            nameservers:
 | 
				
			||||||
 | 
					               addresses:
 | 
				
			||||||
 | 
					               - {{ wan_nameserver }}
 | 
				
			||||||
 | 
					               search:
 | 
				
			||||||
 | 
					               - {{ iiab_domain }}
 | 
				
			||||||
 | 
					            optional: true
 | 
				
			||||||
 | 
					{% else %}
 | 
				
			||||||
 | 
					        {{ iiab_wan_iface }}:
 | 
				
			||||||
 | 
					            addresses: []
 | 
				
			||||||
 | 
					            dhcp4: true
 | 
				
			||||||
 | 
					            optional: true
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					{% if iiab_lan_iface == "br0" %}
 | 
				
			||||||
 | 
					    bridges:
 | 
				
			||||||
 | 
					      # the key name is the name for virtual (created) interfaces
 | 
				
			||||||
 | 
					        br0:
 | 
				
			||||||
 | 
					        # IDs of the components; switchports expands into multiple interfaces
 | 
				
			||||||
 | 
					        # interfaces: [switchports]
 | 
				
			||||||
 | 
					            # should really compute the netmask like the wan side
 | 
				
			||||||
 | 
					            addresses: [ {{ lan_ip }}/19]
 | 
				
			||||||
 | 
					            # there should really not be a gateway present testing to prove
 | 
				
			||||||
 | 
					            gateway4: {{ lan_ip }}
 | 
				
			||||||
 | 
					            nameservers:
 | 
				
			||||||
 | 
					                addresses: [{{ lan_ip }}]
 | 
				
			||||||
 | 
					            parameters:
 | 
				
			||||||
 | 
					                forward-delay: 0
 | 
				
			||||||
 | 
					                stp: false
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue