136 lines
3.6 KiB
YAML
Executable File
136 lines
3.6 KiB
YAML
Executable File
#!/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 |