#!/usr/bin/ansible-playbook --inventory=localhost, --- - hosts: localhost connection: local force_handlers: true vars: ansible_python_interpreter: auto_silent #===== config stage start ================================================================ package_installs: - vim nondefault_package_installs: - name: anydesk gpg: https://keys.anydesk.com/repos/DEB-GPG-KEY source: deb http://deb.anydesk.com/ all main deb_installs: - name: discord url: https://discordapp.com/api/download/canary?platform=linux&format=deb appimages: - name: bitwarden url: https://vault.bitwarden.com/download/?app=desktop&platform=linux executables: - name: bw url: https://vault.bitwarden.com/download/?app=cli&platform=linux directorys: appimage_dir: /opt/appimages #===== config stage end ================================================================== # check if user == root pre_tasks: - set_fact: eff_uid_number: "{{ lookup('pipe', 'id -u') }}" - block: - debug: msg: "Run as root!" - meta: end_play when: eff_uid_number|int != 0 # run playbook tasks: - name: install default packages with package manager ansible.builtin.package: name: - "{{ item }}" state: present loop: "{{ package_installs }}" when: package_installs is defined # debian tasks - block: - name: add gpg keys ansible.builtin.apt_key: url: "{{ item.gpg }}" state: present loop: "{{ nondefault_package_installs }}" when: nondefault_package_installs is defined - name: update apt source.list.d ansible.builtin.apt_repository: repo: "{{ item.source }}" state: present filename: programms loop: "{{ nondefault_package_installs }}" when: nondefault_package_installs is defined - name: install non-default packages with package manager ansible.builtin.package: name: - "{{ item.name }}" state: present loop: "{{ nondefault_package_installs }}" when: nondefault_package_installs is defined - name: download deb files ansible.builtin.get_url: url: "{{ item.url }}" dest: "/tmp/{{ item.name }}.deb" mode: "0440" loop: "{{ deb_installs }}" when: deb_installs is defined - name: install deb files ansible.builtin.apt: deb: "/tmp/{{ item.name }}.deb" loop: "{{ deb_installs }}" when: deb_installs is defined - name: update all packages apt: name: '*' state: latest - name: clean apt cache apt: clean: yes when: ansible_os_family == "Debian" # debian tasks end - name: ensure dirs exist ansible.builtin.file: path: "{{ item.value }}" state: directory mode: '0777' loop: "{{ directorys | dict2items}}" when: directorys is defined - name: get appimage programms ansible.builtin.get_url: url: "{{ item.url }}" dest: "{{ directorys.appimage_dir }}/{{ item.name }}.appimage" mode: '0775' loop: "{{ appimages }}" when: appimages is defined - name: test ansible.builtin.debug: msg: "{{ executables }}" when: executables is defined - name: get executable programms ansible.builtin.get_url: url: "{{ item.url }}" dest: "/usr/bin/{{ item.name }}" mode: '0775' loop: "{{ executables }}" when: executables is defined