53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| # This playbook deploys the installbox on a minimal installation.
 | |
| 
 | |
| - name: apply configuration to the installbox
 | |
|   hosts: all
 | |
|   remote_user: ansible
 | |
|   become: yes
 | |
|   vars:
 | |
|     if_lan: ""           #  ← interface name here, like:  ens3 or enp2s0"
 | |
|     if_wan: "{{ ansible_default_ipv4.interface }}"
 | |
|     hostname: "{{ ansible_hostname }}" # change this to not use the DNS-provided name
 | |
|     ipaddr_lan: 192.168.0.10
 | |
|     dhcp_range: 192.168.0.50,192.168.0.150,2h
 | |
|     dhcp_list: "{{ lookup('sequence', 'start=50 end=150 format=192.168.0.%d', wantlist=True) }}"
 | |
|     tftp_root: "/var/lib/tftpboot"
 | |
|     deb_mirror: "cdn-fastly.deb.debian.org" # SRV records ("deb.debian.org") do not work with squid
 | |
|     di_dist: "buster"
 | |
|     di_version: "10"
 | |
|     di_pkg: "debian-installer-{{ di_version }}-netboot-amd64"
 | |
|     ansible_user: ansible
 | |
|     repo_dir: "/home/{{ ansible_user }}/kiosk"
 | |
| 
 | |
|   pre_tasks:
 | |
|     - name: validate if interface is available
 | |
|       fail:
 | |
|         msg: "Interface {{ if_lan }} does not exist or is already used."
 | |
|       when: if_lan not in ansible_interfaces or if_lan == if_wan
 | |
| 
 | |
|   roles:
 | |
|     - up2date-debian
 | |
|     - two-interface-shorewall
 | |
|     - dhcp-dns-dnsmasq
 | |
|     - transparent-squid
 | |
|     - tftp-netboot-installer
 | |
|     - preseed-installer
 | |
|     - installbox2kiosk
 | |
| 
 | |
|   post_tasks:
 | |
|     - name: make sure hostname is set correctly in /etc/hosts
 | |
|       replace:
 | |
|         path: /etc/hosts
 | |
|         regexp: '(127.0.1.1\s+){{ ansible_hostname }}(\s+.*)?$'
 | |
|         replace: '\1{{ hostname }}\2'
 | |
| 
 | |
|     - name: make sure hostname is set correctly in /etc/hostname
 | |
|       replace:
 | |
|         path: /etc/hostname
 | |
|         regexp: '{{ ansible_hostname }}'
 | |
|         replace: '{{ hostname }}'
 | |
| 
 | |
|     - name: set hostname
 | |
|       hostname:
 | |
|         name: "{{ hostname }}"
 | 
