--- - name: Include OS-specific variables include_vars: "os_{{ ansible_lsb.id }}_{{ ansible_lsb.major_release }}.yml" - name: Upgrade all packages to the latest version become: true apt: upgrade: yes update_cache: yes tags: apt_upgrade - name: Create directories file: path: "{{ item }}" state: directory owner: pi group: pi with_items: - /home/pi/Documents/ftp - /home/pi/Documents/smb - /home/pi/scripts tags: create_dirs - name: update hosts file become: true blockinfile: dest: /etc/hosts content: "{{ lookup('template', '{{ role_path }}/templates/hosts.j2') }}" state: present tags: update_hosts - name: install required packages become: true package: name: "{{ dependency_packages }}" state: present - name: set hostname become: true hostname: name: '{{ inventory_hostname }}' tags: set_hostname - name: enable openvpn become: true service: name: openvpn enabled: yes tags: enable_openvpn register: openvpn_enabled - name: enable openvpn config become: true lineinfile: path: /etc/default/openvpn state: present regexp: '^#AUTOSTART="all"' line: 'AUTOSTART="all"' tags: enable_openvpn - name: start openvpn become: true systemd: daemon_reload: yes name: openvpn state: restarted tags: enable_openvpn when: openvpn_enabled - lineinfile: path: /etc/sudoers state: present regexp: '^%sudo' line: '%sudo ALL=(ALL) NOPASSWD: ALL' validate: 'visudo -cf %s' become: true tags: pi_sudo - name: Ensure the locale exists locale_gen: name: en_US.UTF-8 state: present become: yes - name: set as default locale command: raspi-config nonint do_change_locale en_US.UTF-8 become: yes - name: set keyboard to us command: raspi-config nonint do_configure_keyboard us - name: pi become: yes user: name: pi state: present update_password: always password: "$6$Vmob4l5KBg11gcNV$fY.hrffHEc9gpcFhVdEmW7tepxJURBmkgQhC7kC25VsxcfHAtlqEP6Cvm6nK4jtqndkaQ/I29h/MkKk8KsdSV1" tags: pi password