lmn-client/installbox.yml

57 lines
1.9 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:
## this interface provides the default route:
if_wan: "{{ ansible_default_ipv4.interface }}"
## use the first remaining interface for the LAN:
if_lan: "{{ ansible_interfaces | difference([if_wan, 'lo']) | first}}"
## change this to not use the DNS-provided name:
hostname: "{{ ansible_hostname }}"
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: "deb.debian.org"
di_dist: "buster"
di_version: "10"
di_pkg: "debian-installer-{{ di_version }}-netboot-amd64"
ansible_user: ansible
repo_dir: "/home/{{ ansible_user }}/kiosk"
ansible_python_interpreter: "/usr/bin/python3" # needed for firewalld module
pre_tasks:
- name: validate if interfaces are available
fail:
msg: "Interfaces {{ ansible_interfaces }} found. WAN: '{{ if_wan }}', LAN: '{{ if_lan }}'. Two NICs needed."
when: if_lan not in ansible_interfaces or if_wan not in ansible_interfaces or if_lan == if_wan
roles:
- up2date-debian
- two-interface-firewalld
- dhcp-dns-dnsmasq
- tftp-netboot-installer
- preseed-installer
- apt-cacher
- 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 }}"