## This playbook deploys a client for LinuxMuster. # # Use the following in the installer's preseed file: # # d-i preseed/late_command string \ # mkdir -p /target/home/ansible/.ssh && \ # echo "ssh-ed25519 A...YOUR.KEY...Z" >> /target/home/ansible/.ssh/authorized_keys ; \ # in-target chown -R ansible:ansible /home/ansible/.ssh/ ; \ # in-target chmod -R og= /home/ansible/.ssh/ ; \ # if [ -n "$playbook" ] ; then \ # mkdir -v /target/dev/shm ; \ # in-target mount -v -t tmpfs tmpfs /dev/shm ; \ # echo "$vaultpw" > /target/dev/shm/vaultpw ; \ # in-target ansible-pull --verbose --purge --extra-vars="run_in_installer=true" \ # --vault-password-file /dev/shm/vaultpw \ # -i localhost, --url=git://ansible.example.org/.git -C YOUR_BRANCH $playbook ; \ # fi # --- - name: Apply common configuration to the machines hosts: all # desktop:laptop remote_user: ansible become: true pre_tasks: # - name: Ask for global-admin AD password # ansible.builtin.pause: # prompt: "Enter global-admin AD password. Leave empty to skip domain join" # echo: false # register: adpw # no_log: true # when: "ansible_cmdline.adpw is not defined" # - name: Preseed apparmor # ansible.builtin.debconf: # name: apparmor # question: apparmor/homedirs # value: >- # /srv/samba/schools/default-school/teachers/ # /srv/samba/schools/default-school/students/*/ # /srv/samba/schools/default-school/examusers/ # vtype: string - name: Preseed unattended-upgrades ansible.builtin.debconf: name: unattended-upgrades question: unattended-upgrades/enable_auto_updates value: true vtype: boolean roles: - lmn_network - role: up2date_debian tags: upgrade # - lmn_sssd # - lmn_mount # - lmn_kde # - role: lmn_vm # when: vm_support # - role: lmn_printer # when: printservers is defined # - kerberize # - lmn_misc # - role: lmn_localproxy # when: localproxy # - role: lmn_localhome # when: localhome # - role: lmn_localuser # when: localuser # - role: lmn_exam # when: exam_mode # - role: lmn_wlan # when: # - ansible_interfaces | select('search', 'wl.+') | first is defined # - wlan != 'none' tasks: - name: Include custom roles ansible.builtin.include_role: name: "custom/{{ rolename }}" loop: "{{ custom_roles }}" loop_control: loop_var: rolename when: custom_roles is defined - name: Final tasks ansible.builtin.include_role: name: "{{ role }}" loop_control: loop_var: role loop: - lmn_security # - lmn_finish # - lmn_tmpfixes - name: Apply roles that must run serial hosts: all remote_user: ansible become: true serial: 1 ignore_unreachable: true roles: - role: lmn_vpn when: vpn != "none"