ansible-lint

This commit is contained in:
Pig Monkey 2026-04-10 15:49:13 -07:00
parent 56584e528b
commit f422450da6
177 changed files with 1840 additions and 1176 deletions

View file

@ -1,10 +1,12 @@
---
- hosts: localhost
- name: Gather and display Ansible facts
hosts: localhost
tasks:
- name: Print ansible_facts
debug:
var: ansible_facts
- name: Save ansible_facts to /tmp/ansible_facts.json
copy:
content: "{{ ansible_facts|to_nice_json }}"
dest: /tmp/ansible_facts.json
- name: Print ansible_facts
ansible.builtin.debug:
var: ansible_facts
- name: Save ansible_facts to /tmp/ansible_facts.json
ansible.builtin.copy:
content: "{{ ansible_facts | to_nice_json }}"
dest: /tmp/ansible_facts.json
mode: "0644"

View file

@ -1,104 +1,105 @@
---
- hosts: localhost
become: yes
- name: Configure Arch Linux desktop
hosts: localhost
become: true
roles:
- { role: base, tags: ['base'] }
- { role: grub, tags: ['grub'], when: "bootloader == 'grub'"}
- { role: gnupg, tags: ['gnupg'] }
- { role: sysmon, tags: ['sysmon'] }
- { role: cron, tags: ['cron'] }
- { role: microcode, tags: ['microcode'] }
- { role: hardened, tags: ['hardened'] }
- { role: ssh, tags: ['ssh'] }
- { role: dotfiles, tags: ['dotfiles'] }
- { role: ssd, tags: ['ssd'] }
- { role: interception, tags: ['interception'], when: "interception is defined" }
- { role: fonts, tags: ['fonts'] }
- { role: x, tags: ['x'] }
- { role: terminal, tags: ['terminal'], when: "terminal is defined" }
- { role: lightdm, tags: ['lightdm'], when: "display_manager == 'lightdm'" }
- { role: gdm, tags: ['gdm'], when: "display_manager == 'gdm'" }
- { role: i3, tags: ['i3'], when: "desktop_environment == 'i3'" }
- { role: gnome, tags: ['gnome'], when: "desktop_environment == 'gnome'" }
- { role: pass, tags: ['pass'] }
- { role: iptables, tags: ['iptables'] }
- { role: nettools, tags: ['nettools'] }
- { role: regdomain, tags: ['regdomain'], when: "regdomain is defined" }
- { role: openvpn, tags: ['openvpn'] }
- { role: nmtrust, tags: ['nmtrust'] }
- { role: unbound, tags: ['unbound'] }
- { role: openresolv, tags: ['openresolv'] }
- { role: networkmanager, tags: ['networkmanager'] }
- { role: ntp, tags: ['ntp'] }
- { role: firejail, tags: ['firejail'] }
- { role: tor, tags: ['tor'], when: "tor is defined" }
- { role: editors, tags: ['editors'] }
- { role: filesystems, tags: ['filesystems'] }
- { role: archive, tags: ['archive'] }
- { role: optical, tags: ['optical'] }
- { role: udisks, tags: ['udisks'] }
- { role: spell, tags: ['spell'] }
- { role: browsers, tags: ['browsers'] }
- { role: yubikey, tags: ['yubikey'] }
- { role: media, tags: ['media'] }
- { role: mpd, tags: ['mpd'] }
- { role: mpv, tags: ['mpv'] }
- { role: pianobar, tags: ['pianobar'] }
- { role: laptop, tags: ['laptop'] }
- { role: thinkpad, tags: ['thinkpad'], when: "'ThinkPad' in ansible_product_version" }
- { role: macbook, tags: ['macbook'], when: "'MacBook' in ansible_product_name" }
- { role: backlight, tags: ['backlight'] }
- { role: screensaver, tags: ['screensaver'] }
- { role: weechat, tags: ['weechat'] }
- { role: git-annex, tags: ['git-annex'], when: "gitannex is defined" }
- { role: taskwarrior, tags: ['taskwarrior'] }
- { role: ledger, tags: ['ledger'] }
- { role: mail, tags: ['mail'] }
- { role: goimapnotify, tags: ['goimapnotify'] }
- { role: cups, tags: ['cups'] }
- { role: office, tags: ['office'] }
- { role: visidata, tags: ['visidata'] }
- { role: pdf, tags: ['pdf'] }
- { role: dictd, tags: ['dictd'] }
- { role: redshift, tags: ['redshift'] }
- { role: transmission, tags: ['transmission'] }
- { role: libvirt, tags: ['libvirt'] }
- { role: virtualbox, tags: ['virtualbox'] }
- { role: virtualenv, tags: ['virtualenv'] }
- { role: backitup, tags: ['backitup'] }
- { role: cryptshot, tags: ['cryptshot'], when: "cryptshot is defined" }
- { role: borg, tags: ['borg'] }
- { role: tarsnap, tags: ['tarsnap'] }
- { role: mapping, tags: ['mapping'] }
- { role: sound, tags: ['sound'] }
- { role: pim, tags: ['pim'] }
- { role: postgresql, tags: ['postgresql'] }
- { role: calibre, tags: ['calibre'] }
- { role: aws, tags: ['aws'] }
- { role: parcimonie, tags: ['parcimonie'], when: "tor is defined" }
- { role: localtime, tags: ['localtime'], when: "localtime is defined" }
- { role: wormhole, tags: ['wormhole'] }
- { role: bluetooth, tags: ['bluetooth'], when: "bluetooth is defined" }
- { role: wttr, tags: ['wttr'] }
- { role: hostsctl, tags: ['hostsctl'], when: "hostsctl is defined" }
- { role: himawaripy, tags: ['himawaripy'], when: "himawaripy is defined" }
- { role: goesimage, tags: ['goesimage'], when: "goesimage is defined" }
- { role: syncthing, tags: ['syncthing'], when: "syncthing is defined" }
- { role: mirrorlist, tags: ['mirrorlist'], when: "mirrorlist is defined" }
- { role: pkgfile, tags: ['pkgfile'], when: "pkgfile is defined" }
- { role: units, tags: ['units'], when: "units is defined" }
- { role: logitech, tags: ['logitech'] }
- { role: pydev, tags: ['pydev'] }
- { role: aria2, tags: ['aria2'] }
- { role: signal, tags: ['signal'] }
- { role: android, tags: ['android'] }
- { role: ripgrep, tags: ['ripgrep'] }
- { role: bat, tags: ['bat'] }
- { role: zeal, tags: ['zeal'] }
- { role: kdeconnect, tags: ['kdeconnect'] }
- { role: oomd, tags: ['oomd'] }
- { role: f3, tags: ['f3'] }
- { role: vopono, tags: ['vopono'] }
- { role: base, tags: ["base"] }
- { role: grub, tags: ["grub"], when: "bootloader == 'grub'" }
- { role: gnupg, tags: ["gnupg"] }
- { role: sysmon, tags: ["sysmon"] }
- { role: cron, tags: ["cron"] }
- { role: microcode, tags: ["microcode"] }
- { role: hardened, tags: ["hardened"] }
- { role: ssh, tags: ["ssh"] }
- { role: dotfiles, tags: ["dotfiles"] }
- { role: ssd, tags: ["ssd"] }
- { role: interception, tags: ["interception"], when: "interception is defined" }
- { role: fonts, tags: ["fonts"] }
- { role: x, tags: ["x"] }
- { role: terminal, tags: ["terminal"], when: "terminal is defined" }
- { role: lightdm, tags: ["lightdm"], when: "display_manager == 'lightdm'" }
- { role: gdm, tags: ["gdm"], when: "display_manager == 'gdm'" }
- { role: i3, tags: ["i3"], when: "desktop_environment == 'i3'" }
- { role: gnome, tags: ["gnome"], when: "desktop_environment == 'gnome'" }
- { role: pass, tags: ["pass"] }
- { role: iptables, tags: ["iptables"] }
- { role: nettools, tags: ["nettools"] }
- { role: regdomain, tags: ["regdomain"], when: "regdomain is defined" }
- { role: openvpn, tags: ["openvpn"] }
- { role: nmtrust, tags: ["nmtrust"] }
- { role: unbound, tags: ["unbound"] }
- { role: openresolv, tags: ["openresolv"] }
- { role: networkmanager, tags: ["networkmanager"] }
- { role: ntp, tags: ["ntp"] }
- { role: firejail, tags: ["firejail"] }
- { role: tor, tags: ["tor"], when: "tor is defined" }
- { role: editors, tags: ["editors"] }
- { role: filesystems, tags: ["filesystems"] }
- { role: archive, tags: ["archive"] }
- { role: optical, tags: ["optical"] }
- { role: udisks, tags: ["udisks"] }
- { role: spell, tags: ["spell"] }
- { role: browsers, tags: ["browsers"] }
- { role: yubikey, tags: ["yubikey"] }
- { role: media, tags: ["media"] }
- { role: mpd, tags: ["mpd"] }
- { role: mpv, tags: ["mpv"] }
- { role: pianobar, tags: ["pianobar"] }
- { role: laptop, tags: ["laptop"] }
- { role: thinkpad, tags: ["thinkpad"], when: "'ThinkPad' in ansible_product_version" }
- { role: macbook, tags: ["macbook"], when: "'MacBook' in ansible_product_name" }
- { role: backlight, tags: ["backlight"] }
- { role: screensaver, tags: ["screensaver"] }
- { role: weechat, tags: ["weechat"] }
- { role: gitannex, tags: ["gitannex"], when: "gitannex is defined" }
- { role: taskwarrior, tags: ["taskwarrior"] }
- { role: ledger, tags: ["ledger"] }
- { role: mail, tags: ["mail"] }
- { role: goimapnotify, tags: ["goimapnotify"] }
- { role: cups, tags: ["cups"] }
- { role: office, tags: ["office"] }
- { role: visidata, tags: ["visidata"] }
- { role: pdf, tags: ["pdf"] }
- { role: dictd, tags: ["dictd"] }
- { role: redshift, tags: ["redshift"] }
- { role: transmission, tags: ["transmission"] }
- { role: libvirt, tags: ["libvirt"] }
- { role: virtualbox, tags: ["virtualbox"] }
- { role: virtualenv, tags: ["virtualenv"] }
- { role: backitup, tags: ["backitup"] }
- { role: cryptshot, tags: ["cryptshot"], when: "cryptshot is defined" }
- { role: borg, tags: ["borg"] }
- { role: tarsnap, tags: ["tarsnap"] }
- { role: mapping, tags: ["mapping"] }
- { role: sound, tags: ["sound"] }
- { role: pim, tags: ["pim"] }
- { role: postgresql, tags: ["postgresql"] }
- { role: calibre, tags: ["calibre"] }
- { role: aws, tags: ["aws"] }
- { role: parcimonie, tags: ["parcimonie"], when: "tor is defined" }
- { role: localtime, tags: ["localtime"], when: "localtime is defined" }
- { role: wormhole, tags: ["wormhole"] }
- { role: bluetooth, tags: ["bluetooth"], when: "bluetooth is defined" }
- { role: wttr, tags: ["wttr"] }
- { role: hostsctl, tags: ["hostsctl"], when: "hostsctl is defined" }
- { role: himawaripy, tags: ["himawaripy"], when: "himawaripy is defined" }
- { role: goesimage, tags: ["goesimage"], when: "goesimage is defined" }
- { role: syncthing, tags: ["syncthing"], when: "syncthing is defined" }
- { role: mirrorlist, tags: ["mirrorlist"], when: "mirrorlist is defined" }
- { role: pkgfile, tags: ["pkgfile"], when: "pkgfile is defined" }
- { role: units, tags: ["units"], when: "units is defined" }
- { role: logitech, tags: ["logitech"] }
- { role: pydev, tags: ["pydev"] }
- { role: aria2, tags: ["aria2"] }
- { role: signal, tags: ["signal"] }
- { role: android, tags: ["android"] }
- { role: ripgrep, tags: ["ripgrep"] }
- { role: bat, tags: ["bat"] }
- { role: zeal, tags: ["zeal"] }
- { role: kdeconnect, tags: ["kdeconnect"] }
- { role: oomd, tags: ["oomd"] }
- { role: f3, tags: ["f3"] }
- { role: vopono, tags: ["vopono"] }
vars_prompt:
- name: user_password
prompt: "Enter desired user password"

View file

@ -1,2 +1,3 @@
---
collections:
- name: kewlfft.aur

View file

@ -1,18 +1,18 @@
---
- name: Install android-tools
pacman:
community.general.pacman:
name: android-tools
state: present
- name: Install android-udev
pacman:
community.general.pacman:
name: android-udev
state: present
- name: Add {{ user.name }} to adbusers group
user:
name: "{{ user.name }}"
groups: adbusers
append: yes
- name: "Add user to adbusers group: {{ user.name }}"
ansible.builtin.user:
name: "{{ user.name }}"
groups: adbusers
append: true
tags:
- user

View file

@ -1,6 +1,6 @@
---
- name: Install zip archive utilities
pacman:
community.general.pacman:
name:
- zip
- unzip
@ -10,49 +10,49 @@
- zip
- name: Install unrar
pacman:
community.general.pacman:
name: unrar
state: present
tags:
- unrar
- name: Install atool
pacman:
community.general.pacman:
name: atool
state: present
tags:
- atool
- name: Install par2cmdline
pacman:
community.general.pacman:
name: par2cmdline
state: present
tags:
- par2
- name: Install ddrescue
pacman:
community.general.pacman:
name: ddrescue
state: present
tags:
- ddrescue
- name: Install lesspipe
pacman:
community.general.pacman:
name: lesspipe
state: present
tags:
- lesspipe
- name: Install libisoburn
pacman:
community.general.pacman:
name: libisoburn
state: present
tags:
- libisoburn
- name: Install pigz
pacman:
community.general.pacman:
name: pigz
state: present
tags:
@ -61,7 +61,7 @@
- name: Install ventoy
kewlfft.aur.aur:
name: ventoy-bin
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,11 +1,11 @@
---
- name: Install aria2
pacman:
community.general.pacman:
name: aria2
state: present
- name: Jail aria2
file:
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/aria2c
state: link

View file

@ -1,5 +1,7 @@
---
- name: Install aws-cli
pacman: name=aws-cli state=present
community.general.pacman:
name: aws-cli
state: present
tags:
- aws-cli

View file

@ -1,3 +1,6 @@
---
- name: Install backitup
copy: src=backitup/backitup.sh dest=/usr/local/bin/backitup mode=0755
ansible.builtin.copy:
src: backitup/backitup.sh
dest: /usr/local/bin/backitup
mode: "0755"

View file

@ -1,5 +1,5 @@
---
- name: restart illuminanced
service:
- name: Restart illuminanced
ansible.builtin.service:
name: illuminanced.service
state: restarted

View file

@ -1,57 +1,57 @@
---
- name: Install brightnessctl
pacman:
community.general.pacman:
name: brightnessctl
state: present
- name: Install illuminanced
pacman:
community.general.pacman:
name: illuminanced
when: illuminanced is defined
- name: Set max backlight file
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/illuminanced.toml
regexp: ^max_backlight_file
state: present
line: 'max_backlight_file = "{{ illuminanced.max_backlight_file }}"'
when: illuminanced.max_backlight_file is defined
notify:
- restart illuminanced
- Restart illuminanced
- name: Set backlight file
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/illuminanced.toml
regexp: ^backlight_file
state: present
line: 'backlight_file = "{{ illuminanced.backlight_file }}"'
when: illuminanced.backlight_file is defined
notify:
- restart illuminanced
- Restart illuminanced
- name: Set illuminance file
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/illuminanced.toml
regexp: ^illuminance_file
state: present
line: 'illuminance_file = "{{ illuminanced.illuminance_file }}"'
when: illuminanced.illuminance_file is defined
notify:
- restart illuminanced
- Restart illuminanced
- name: Set min backlight value
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/illuminanced.toml
regexp: ^min_backlight
state: present
line: 'min_backlight = {{ illuminanced.min_backlight }}'
line: "min_backlight = {{ illuminanced.min_backlight }}"
when: illuminanced.min_backlight is defined
notify:
- restart illuminanced
- Restart illuminanced
- name: Enable and start illuminanced
service:
ansible.builtin.service:
name: illuminanced.service
enabled: yes
enabled: true
state: started
when: illuminanced is defined

View file

@ -1,10 +1,10 @@
---
- name: restart paccache
service:
- name: Restart paccache
ansible.builtin.service:
name: paccache.timer
state: restarted
- name: stop systemd per-user instance
service:
- name: Stop systemd per-user instance
ansible.builtin.service:
name: "user@{{ user.uid }}"
state: stopped

View file

@ -1,18 +1,18 @@
---
- name: Create AUR user
user:
ansible.builtin.user:
name: "{{ aur.user }}"
create_home: yes
create_home: true
group: wheel
tags:
- aur
- name: Allow passwordless Pacman for AUR user
template:
ansible.builtin.template:
src: sudo_aur.j2
dest: /etc/sudoers.d/11-aur
mode: 0644
validate: 'visudo -cf %s'
mode: "0644"
validate: "visudo -cf %s"
tags:
- aur
- sudo

View file

@ -1,11 +1,17 @@
---
- name: Create journal config directory
file: path=/etc/systemd/journald.conf.d state=directory
ansible.builtin.file:
path: /etc/systemd/journald.conf.d
state: directory
mode: "0755"
tags:
- journal
- name: Push journal max size config
template: src=00-journal-size.conf.j2 dest=/etc/systemd/journald.conf.d/00-journal-size.conf
ansible.builtin.template:
src: 00-journal-size.conf.j2
dest: /etc/systemd/journald.conf.d/00-journal-size.conf
mode: "0644"
when: journal is defined and journal.max_size is defined
tags:
- journal

View file

@ -1,26 +1,33 @@
---
- name: Copy pacman configuration file
copy:
ansible.builtin.copy:
src: pacman.conf
dest: /etc/pacman.conf
mode: "0644"
- name: Refresh pacman mirrors
pacman:
update_cache: yes
community.general.pacman:
update_cache: true
- name: Install inetutils for hostname
pacman:
name: inetutils
state: present
community.general.pacman:
name: inetutils
state: present
- name: Set the hostname
hostname:
ansible.builtin.hostname:
name: "{{ hostname }}"
when: hostname is defined
- include_tasks: user.yml
- include_tasks: sudo.yml
- include_tasks: aur_user.yml
- include_tasks: shell.yml
- include_tasks: packages.yml
- include_tasks: journal.yml
- name: Include user tasks
ansible.builtin.include_tasks: user.yml
- name: Include sudo tasks
ansible.builtin.include_tasks: sudo.yml
- name: Include AUR user tasks
ansible.builtin.include_tasks: aur_user.yml
- name: Include shell tasks
ansible.builtin.include_tasks: shell.yml
- name: Include packages tasks
ansible.builtin.include_tasks: packages.yml
- name: Include journal tasks
ansible.builtin.include_tasks: journal.yml

View file

@ -1,19 +1,21 @@
---
- name: Install universal base packages
pacman:
name: "{{ base_packages }}"
state: present
community.general.pacman:
name: "{{ base_packages }}"
state: present
tags:
- packages
- name: Create pacman hook directory
file: path=/etc/pacman.d/hooks
state=directory
ansible.builtin.file:
path: /etc/pacman.d/hooks
state: directory
mode: "0755"
tags:
- packages
- name: Use all cores when compressing packages
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/makepkg.conf
regexp: "^COMPRESSXZ"
line: "COMPRESSXZ=(xz -c -z - --threads=0)"
@ -21,28 +23,37 @@
- name: Install AUR base packages
kewlfft.aur.aur:
name: "{{ aur.packages }}"
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- packages
- name: Push pacman cache cleanup service
copy: src=paccache.service dest=/etc/systemd/system/paccache.service
ansible.builtin.copy:
src: paccache.service
dest: /etc/systemd/system/paccache.service
mode: "0644"
notify:
- reload systemd config
- Reload systemd config
tags:
- packages
- name: Push pacman cache cleanup timer
copy: src=paccache.timer dest=/etc/systemd/system/paccache.timer
ansible.builtin.copy:
src: paccache.timer
dest: /etc/systemd/system/paccache.timer
mode: "0644"
notify:
- reload systemd config
- restart paccache
- Reload systemd config
- Restart paccache
tags:
- packages
- name: Enable and start pacman cache cleanup timer
service: name=paccache.timer enabled=yes state=started
ansible.builtin.service:
name: paccache.timer
enabled: true
state: started
tags:
- packages

View file

@ -1,6 +1,6 @@
---
- name: Install Bash
pacman:
community.general.pacman:
name:
- bash
- bash-completion
@ -9,7 +9,7 @@
- shell
- name: Install ZSH
pacman:
community.general.pacman:
name:
- zsh
- zsh-completions
@ -18,7 +18,7 @@
- shell
- name: Install Starship
pacman:
community.general.pacman:
name:
- ttf-nerd-fonts-symbols-mono
- starship
@ -29,7 +29,7 @@
- name: Install zsh-antidote
kewlfft.aur.aur:
name: zsh-antidote
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,25 +1,25 @@
---
- name: Install sudo
pacman:
community.general.pacman:
name: sudo
state: present
tags:
- sudo
- name: Add user to wheel group
user:
ansible.builtin.user:
name: "{{ user.name }}"
groups: wheel
append: yes
append: true
tags:
- sudo
- user
- name: Copy sudo wheel group configuration
template:
ansible.builtin.template:
src: sudo_wheel.j2
dest: /etc/sudoers.d/01_wheel
mode: 440
validate: 'visudo -cf %s'
mode: "0440"
validate: "visudo -cf %s"
tags:
- sudo

View file

@ -1,6 +1,6 @@
---
- name: Create user group
group:
ansible.builtin.group:
name: "{{ user.group }}"
gid: "{{ user.gid }}"
state: present
@ -8,55 +8,57 @@
- user
- name: Create user and assign to group
user:
ansible.builtin.user:
name: "{{ user.name }}"
group: "{{ user.group }}"
password: "{{ user_password|password_hash('sha512') }}"
password: "{{ user_password | password_hash('sha512') }}"
shell: "{{ user.shell }}"
update_password: on_create
uid: "{{ user.uid }}"
groups: uucp
append: yes
append: true
tags:
- user
- name: Create user log dir
file:
ansible.builtin.file:
path: /home/{{ user.name }}/{{ user.log.dir }}
state: directory
owner: "{{ user.name }}"
group: "{{ user.group }}"
mode: "0755"
when: user.log.dir is defined
tags:
- user
- name: Install logrotate
pacman:
name: logrotate
state: present
community.general.pacman:
name: logrotate
state: present
- name: Push logrotate config for user logs
template:
ansible.builtin.template:
src: logrotate.j2
dest: /etc/logrotate.d/user
mode: "0644"
when: user.log.dir is defined
tags:
- user
- name: Create user socket directory
file:
ansible.builtin.file:
path: /run/user/{{ user.uid }}
state: directory
owner: "{{ user.name }}"
group: "{{ user.group }}"
mode: 0700
mode: "0700"
tags:
- user
- name: Start user systemd instance
service:
ansible.builtin.service:
name: "user@{{ user.uid }}"
state: started
notify: stop systemd per-user instance
notify: Stop systemd per-user instance
tags:
- user

View file

@ -1,10 +1,10 @@
---
- name: Install bat
pacman:
community.general.pacman:
name: bat
state: present
- name: Install bat-extras
pacman:
community.general.pacman:
name: bat-extras
state: present

View file

@ -1,3 +1,5 @@
---
- name: restart bitlbee
service: name=bitlbee state=restarted
- name: Restart bitlbee
ansible.builtin.service:
name: bitlbee
state: restarted

View file

@ -1,46 +1,50 @@
---
- name: Install libOTR
pacman:
community.general.pacman:
name: libotr
state: present
- name: Install Bitlbee
kewlfft.aur.aur:
name: bitlbee
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Push Bitlbee configuration file
template:
ansible.builtin.template:
src: bitlbee.conf.j2
dest: /etc/bitlbee/bitlbee.conf
mode: "0644"
- name: Ensure proper ownership of configuration directory
file:
ansible.builtin.file:
path: /var/lib/bitlbee
group: bitlbee
owner: bitlbee
- name: Create Bitlbee systemd unit file directory
file:
ansible.builtin.file:
path: /etc/systemd/system/bitlbee.service.d
state: directory
mode: "0755"
tags:
- firejail
- name: Push Bitlbee socket unit file
copy:
ansible.builtin.copy:
src: bitlbee-service-override.conf
dest: /etc/systemd/system/bitlbee.service.d/override.conf
mode: "0644"
notify:
- reload systemd config
- restart bitlbee
- Reload systemd config
- Restart bitlbee
tags:
- firejail
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: bitlbee.service
run_on: "{{ bitlbee.run_on }}"
unit: bitlbee.service
run_on: "{{ bitlbee.run_on }}"

View file

@ -1,6 +1,6 @@
---
- name: Install bluetooth libraries and tools
pacman:
community.general.pacman:
name:
- bluez
- bluez-libs
@ -8,38 +8,38 @@
- blueman
state: present
notify:
- restart pulse as user
- Restart pulse as user
- name: Do not auto power on the bluetooth device
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/bluetooth/main.conf
state: present
line: "AutoEnable=false"
- name: Unblock the bluetooth service
service:
ansible.builtin.service:
name: rfkill-block@bluetooth.service
enabled: no
enabled: false
state: stopped
when: bluetooth.disable == False
when: not bluetooth.disable
- name: Enable and start the bluetooth service
service:
ansible.builtin.service:
name: bluetooth.service
enabled: yes
enabled: true
state: started
when: bluetooth.disable == False
when: not bluetooth.disable
- name: Disable and stop the bluetooth service
service:
ansible.builtin.service:
name: bluetooth.service
enabled: no
enabled: false
state: stopped
when: bluetooth.disable == True
when: bluetooth.disable
- name: Block the bluetooth service
service:
ansible.builtin.service:
name: rfkill-block@bluetooth.service
enabled: yes
enabled: true
state: started
when: bluetooth.disable == True
when: bluetooth.disable

View file

@ -1,6 +1,6 @@
---
- name: Install borg
pacman:
community.general.pacman:
name:
- python-llfuse
- borg

View file

@ -1,23 +1,23 @@
---
- name: Install w3m
pacman:
community.general.pacman:
name: w3m
state: present
- name: Install lynx
pacman:
community.general.pacman:
name: lynx
state: present
- name: Install Firefox
pacman:
community.general.pacman:
name: firefox
state: present
tags:
- firefox
- name: Jail Firefox
file:
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/firefox
state: link
@ -26,16 +26,17 @@
- firejail
- name: Verify Firefox firejail local profile exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/firejail/firefox.local
force: false
mode: "0644"
tags:
- firefox
- firejail
- name: Restrict Firefox access to /etc
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/firejail/firefox.local
regexp: "^private-etc"
line: "private-etc firejail,passwd,group,hostname,hosts,nsswitch.conf,resolv.conf,gtk-2.0,gtk-3.0,fonts,mime.types,asound.conf,pulse,localtime"
@ -44,14 +45,14 @@
- firejail
- name: Install Chromium
pacman:
community.general.pacman:
name: chromium
state: present
tags:
- chromium
- name: Jail Chromium
file:
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/chromium
state: link
@ -60,16 +61,17 @@
- firejail
- name: Verify Chromium firejail local profile exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/firejail/chromium.local
force: false
mode: "0644"
tags:
- chromium
- firejail
- name: Restrict Chromium access to /etc
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/firejail/chromium.local
regexp: "^private-etc"
line: "private-etc firejail,passwd,group,hostname,hosts,nsswitch.conf,resolv.conf,gtk-2.0,gtk-3.0,fonts,mime.types,asound.conf,pulse,localtime"
@ -78,14 +80,14 @@
- firejail
- name: Install Tor browser
pacman:
community.general.pacman:
name: torbrowser-launcher
state: present
tags:
- tor-browser
- name: Jail Tor browser
file:
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/torbrowser-launcher
state: link
@ -94,7 +96,7 @@
- firejail
- name: Install qutebrowser and dependencies
pacman:
community.general.pacman:
name:
- qutebrowser
- python-adblock
@ -104,7 +106,7 @@
- qutebrowser
- name: Jail qutebrowser
file:
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/qutebrowser
state: link
@ -113,52 +115,55 @@
- firejail
- name: Push rofi browser chooser
template:
ansible.builtin.template:
src: browser.sh.j2
dest: /usr/local/bin/browser
mode: 0755
mode: "0755"
tags:
- rofi
- chooser
- name: Create local desktop application dir
file:
ansible.builtin.file:
path: /usr/local/share/applications
state: directory
mode: "0755"
tags:
- rofi
- chooser
- name: Push rofi browser chooser desktop file
copy:
ansible.builtin.copy:
src: browser.desktop
dest: /usr/local/share/applications/browser.desktop
mode: "0644"
tags:
- rofi
- chooser
- name: Verify mimeapps.list exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/xdg/mimeapps.list
force: false
mode: "0644"
tags:
- rofi
- chooser
- name: Set rofi browser chooser as default application for relevant mimetypes
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/xdg/mimeapps.list
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
with_items:
- { regexp: '^text/html=', line: 'text/html=browser.desktop' }
- { regexp: '^text/xml=', line: 'text/xml=browser.desktop' }
- { regexp: '^text/mml=', line: 'text/mml=browser.desktop' }
- { regexp: '^application/xhtml\+xml=', line: 'application/xhtml+xml=browser.desktop' }
- { regexp: '^application/xml=', line: 'application/xml=browser.desktop' }
- { regexp: '^x-scheme-handler/http=', line: 'x-scheme-handler/http=browser.desktop' }
- { regexp: '^x-scheme-handler/https=', line: 'x-scheme-handler/https=browser.desktop' }
- { regexp: "^text/html=", line: "text/html=browser.desktop" }
- { regexp: "^text/xml=", line: "text/xml=browser.desktop" }
- { regexp: "^text/mml=", line: "text/mml=browser.desktop" }
- { regexp: "^application/xhtml\\+xml=", line: "application/xhtml+xml=browser.desktop" }
- { regexp: "^application/xml=", line: "application/xml=browser.desktop" }
- { regexp: "^x-scheme-handler/http=", line: "x-scheme-handler/http=browser.desktop" }
- { regexp: "^x-scheme-handler/https=", line: "x-scheme-handler/https=browser.desktop" }
tags:
- rofi
- chooser

View file

@ -1,25 +1,29 @@
---
- name: Install calibre
pacman: name=calibre state=present
community.general.pacman:
name: calibre
state: present
- name: Jail calibre
file: src=/usr/bin/firejail
dest=/usr/local/bin/calibre
state=link
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/calibre
state: link
tags:
- firejail
- name: Jail ebook-viewer
file: src=/usr/bin/firejail
dest=/usr/local/bin/ebook-viewer
state=link
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/ebook-viewer
state: link
tags:
- firejail
- name: Install libgourou
kewlfft.aur.aur:
name: gourou
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,24 +1,25 @@
---
- name: install greenclip from AUR
- name: Install greenclip from AUR
kewlfft.aur.aur:
name: rofi-greenclip
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: copy greenclip.service
copy:
- name: Copy greenclip.service
ansible.builtin.copy:
src: greenclip.service
dest: /etc/systemd/user/greenclip.service
mode: "0644"
- name: Enable greenclip.service
systemd:
ansible.builtin.systemd:
name: greenclip.service
scope: user
enabled: yes
enabled: true
state: started
become: yes
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"

View file

@ -1,3 +1,5 @@
---
- name: restart cron
service: name=cronie.service state=restarted
- name: Restart cron
ansible.builtin.service:
name: cronie.service
state: restarted

View file

@ -1,6 +1,11 @@
---
- name: Install cronie
pacman: name=cronie state=present
community.general.pacman:
name: cronie
state: present
- name: Enable cronie
service: name=cronie.service enabled=yes state=started
ansible.builtin.service:
name: cronie.service
enabled: true
state: started

View file

@ -1,3 +1,5 @@
---
- name: restart cryptshot
service: name=cryptshot.timer state=restarted
- name: Restart cryptshot
ansible.builtin.service:
name: cryptshot.timer
state: restarted

View file

@ -1,6 +1,12 @@
---
- name: Push {{ target.name }} rsnapshot config
template: src=rsnapshot.conf.j2 dest=/usr/local/etc/rsnapshot/{{ target.name }}.conf
- name: "Push rsnapshot config: {{ target.name }}"
ansible.builtin.template:
src: rsnapshot.conf.j2
dest: /usr/local/etc/rsnapshot/{{ target.name }}.conf
mode: "0644"
- name: Push {{ target.name }} cryptshot config
template: src=cryptshot.conf.j2 dest=/usr/local/etc/cryptshot/{{ target.name }}.conf
- name: "Push cryptshot config: {{ target.name }}"
ansible.builtin.template:
src: cryptshot.conf.j2
dest: /usr/local/etc/cryptshot/{{ target.name }}.conf
mode: "0644"

View file

@ -1,37 +1,64 @@
---
- name: Install rsnapshot
pacman: name=rsnapshot state=present
community.general.pacman:
name: rsnapshot
state: present
- name: Install cryptshot.sh script
copy: src=cryptshot/cryptshot.sh dest=/usr/local/bin/cryptshot mode=0755
ansible.builtin.copy:
src: cryptshot/cryptshot.sh
dest: /usr/local/bin/cryptshot
mode: "0755"
- name: Create rsnapshot config directory
file: path=/usr/local/etc/rsnapshot state=directory
ansible.builtin.file:
path: /usr/local/etc/rsnapshot
state: directory
mode: "0755"
- name: Create cryptshot config directory
file: path=/usr/local/etc/cryptshot state=directory
ansible.builtin.file:
path: /usr/local/etc/cryptshot
state: directory
mode: "0755"
- name: Create cryptshot last run directory
file: path=/usr/local/etc/cryptshot/lastrun state=directory
ansible.builtin.file:
path: /usr/local/etc/cryptshot/lastrun
state: directory
mode: "0755"
- include_tasks: config.yml
- name: Include cryptshot config tasks
ansible.builtin.include_tasks: config.yml
with_items: "{{ cryptshot }}"
loop_control:
loop_var: target
- name: Push cryptshot execution script
template: src=cryptshot.sh.j2 dest=/usr/local/bin/cryptshot-execute mode=0755
ansible.builtin.template:
src: cryptshot.sh.j2
dest: /usr/local/bin/cryptshot-execute
mode: "0755"
- name: Push cryptshot service file
template: src=cryptshot.service.j2 dest=/etc/systemd/system/cryptshot.service
ansible.builtin.template:
src: cryptshot.service.j2
dest: /etc/systemd/system/cryptshot.service
mode: "0644"
notify:
- reload systemd config
- Reload systemd config
- name: Push cryptshot timer file
template: src=cryptshot.timer.j2 dest=/etc/systemd/system/cryptshot.timer
ansible.builtin.template:
src: cryptshot.timer.j2
dest: /etc/systemd/system/cryptshot.timer
mode: "0644"
notify:
- reload systemd config
- restart cryptshot
- Reload systemd config
- Restart cryptshot
- name: Enable and start cryptshot timer
service: name=cryptshot.timer enabled=yes state=started
ansible.builtin.service:
name: cryptshot.timer
enabled: true
state: started

View file

@ -1,3 +1,5 @@
---
- name: restart cups
service: name=cups.service state=restarted
- name: Restart cups
ansible.builtin.service:
name: cups.service
state: restarted

View file

@ -1,6 +1,6 @@
---
- name: Install CUPS and drivers
pacman:
community.general.pacman:
name:
- ghostscript
- gsfonts
@ -11,29 +11,29 @@
state: present
- name: Add a print admin group
group:
ansible.builtin.group:
name: printadmin
state: present
- name: Allow the print admin group to administer CUPS
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/cups/cups-files.conf
regexp: SystemGroup
state: present
line: "SystemGroup sys root printadmin"
notify:
- restart cups
- Restart cups
- name: Add the user to the print and print admin groups
user:
ansible.builtin.user:
name: "{{ user.name }}"
groups: printadmin,lp
append: yes
append: true
tags:
- user
- name: Enable and start CUPS
service:
ansible.builtin.service:
name: cups.service
enabled: yes
enabled: true
state: started

View file

@ -1,3 +1,4 @@
---
- name: update DConf database
command: dconf update
- name: Update DConf database
ansible.builtin.command: dconf update
changed_when: false

View file

@ -1,6 +1,14 @@
---
- name: Creating DConf database directory
file: path=/etc/dconf/db state=directory mode=0755 recurse=yes
ansible.builtin.file:
path: /etc/dconf/db
state: directory
mode: "0755"
recurse: true
- name: Creating DConf profile directory
file: path=/etc/dconf/profile state=directory mode=0755 recurse=yes
ansible.builtin.file:
path: /etc/dconf/profile
state: directory
mode: "0755"
recurse: true

View file

@ -1,11 +1,11 @@
---
- name: Install dictd
pacman:
community.general.pacman:
name: dictd
state: present
- name: Install flex
pacman:
community.general.pacman:
name: flex
state: present
@ -13,8 +13,8 @@
kewlfft.aur.aur:
name: dict-gcide
use: makepkg
skip_pgp_check: yes
become: yes
skip_pgp_check: true
become: true
become_user: "{{ aur.user }}"
tags:
- aur
@ -22,7 +22,7 @@
- name: Install WordNet database
kewlfft.aur.aur:
name: wordnet-dictd
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
@ -30,13 +30,13 @@
- name: Install Moby thesaurus
kewlfft.aur.aur:
name: dict-moby-thesaurus
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Enable and start dictd
service:
ansible.builtin.service:
name: dictd.service
enabled: yes
enabled: true
state: started

View file

@ -2,24 +2,25 @@
- name: Install rcm
kewlfft.aur.aur:
name: rcm
become: yes
become: true
become_user: "{{ aur.user }}"
when: dotfiles is defined
tags:
- aur
- name: Clone user dotfiles
git:
- name: Clone user dotfiles # noqa: latest[git]
ansible.builtin.git:
repo: "{{ dotfiles.url }}"
dest: /home/{{ user.name }}/{{ dotfiles.destination }}
accept_hostkey: yes
update: no
accept_hostkey: true
update: false
when: dotfiles is defined
become: yes
become: true
become_user: "{{ user.name }}"
- name: Install user dotfiles
command: rcup -d /home/{{ user.name}}/{{ dotfiles.destination}} {{ dotfiles.rcup_flags }}
ansible.builtin.command: rcup -d /home/{{ user.name }}/{{ dotfiles.destination }} {{ dotfiles.rcup_flags }}
when: dotfiles is defined
become: yes
become: true
become_user: "{{ user.name }}"
changed_when: true

View file

@ -1,14 +1,19 @@
---
- name: Enable dvorak for XOrg libinput
template:
ansible.builtin.template:
src: 40-libinput-dvorak.conf.j2
dest: /etc/X11/xorg.conf.d/40-libinput-dvorak.conf
mode: "0644"
- name: Add control-caps dvorak keymap
copy: src=dvorak-cc.map.gz dest=/usr/share/kbd/keymaps/i386/dvorak/dvorak-cc.map.gz
ansible.builtin.copy:
src: dvorak-cc.map.gz
dest: /usr/share/kbd/keymaps/i386/dvorak/dvorak-cc.map.gz
mode: "0644"
- name: Enable dvorak-cc for vconsole
lineinfile: "dest=/etc/vconsole.conf
regexp=^KEYMAP=
state=present
line='KEYMAP=dvorak-cc'"
ansible.builtin.lineinfile:
dest: /etc/vconsole.conf
regexp: ^KEYMAP=
state: present
line: "KEYMAP=dvorak-cc"

View file

@ -1,5 +1,5 @@
---
- name: Install editors
pacman:
community.general.pacman:
name: "{{ editors }}"
state: present

View file

@ -3,8 +3,8 @@
kewlfft.aur.aur:
name: f3
use: makepkg
skip_pgp_check: yes
become: yes
skip_pgp_check: true
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,5 +1,5 @@
---
- name: Install filesystem packages
pacman:
community.general.pacman:
name: "{{ filesystem_packages }}"
state: present

View file

@ -2,6 +2,7 @@
PROFILEDIR=~/.config/firejail
SYSDIR=/usr/local/etc/firejail
COUNT=0
# If the profile directory does not exist, create it.
if [ ! -d "$PROFILEDIR" ]; then
@ -14,7 +15,9 @@ for path in "$SYSDIR"/*.profile; do
file=`basename $path`
destination=$PROFILEDIR/$file
if [ ! -e $destination ]; then
echo "creating $destination"
echo "include $SYSDIR/$file" > $destination
COUNT=$((COUNT + 1))
fi
done
echo "$COUNT profiles activated"

View file

@ -1,5 +1,7 @@
---
- name: activate firejail profiles
command: /usr/local/bin/profile-activate
become: yes
- name: Activate firejail profiles
ansible.builtin.command: /usr/local/bin/profile-activate
become: true
become_user: "{{ user.name }}"
register: firejail_result
changed_when: not firejail_result.stdout.startswith('0 ')

View file

@ -1,49 +1,52 @@
---
- name: Install firejail
pacman:
community.general.pacman:
name: firejail
state: present
- name: Install firewarden
kewlfft.aur.aur:
name: firewarden
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Install firejail profile update script
copy:
ansible.builtin.copy:
src: profile-activate.sh
dest: /usr/local/bin/profile-activate
mode: 0755
mode: "0755"
- name: Create firejail profile directory
file:
ansible.builtin.file:
path: /usr/local/etc/firejail
state: directory
mode: "0755"
- name: Verify firejail globals file exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/firejail/globals.local
force: false
mode: "0644"
- name: Add blacklist to globals
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/firejail/globals.local
state: present
line: "blacklist {{ item }}"
with_items: "{{ firejail.blacklist }}"
- name: Verify firejail users file exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/firejail/firejail.users
force: false
mode: "0644"
- name: Add user to firejail users
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/firejail/firejail.users
state: present
line: "{{ user.name }}"

View file

@ -1,51 +1,52 @@
---
- name: Install freetype2
pacman:
community.general.pacman:
name: freetype2
state: present
- name: Install cairo
pacman:
community.general.pacman:
name: cairo
state: present
- name: Install fontconfig
pacman:
community.general.pacman:
name: fontconfig
state: present
- name: Enable LCD filter
file:
ansible.builtin.file:
src: /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
dest: /etc/fonts/conf.d/11-lcdfilter-default.conf
state: link
- name: Enable sub-pixel rendering
file:
ansible.builtin.file:
src: /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
dest: /etc/fonts/conf.d/10-sub-pixel-rgb.conf
state: link
- name: Enable hinting
file:
ansible.builtin.file:
src: /usr/share/fontconfig/conf.avail/10-hinting-slight.conf
dest: /etc/fonts/conf.d/10-hinting-slight.conf
state: link
- name: Push font substitutions
copy:
ansible.builtin.copy:
src: local.conf
dest: /etc/fonts/local.conf
mode: "0644"
- name: Install base fonts
pacman:
community.general.pacman:
name: "{{ base_fonts }}"
state: present
- name: Install AUR fonts
kewlfft.aur.aur:
name: "{{ aur_fonts }}"
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,16 +1,29 @@
---
- name: Install GNOME Display Manager (GDM)
pacman: name=gdm state=present
community.general.pacman:
name: gdm
state: present
- name: Enable GDM
service: name=gdm.service enabled=yes
ansible.builtin.service:
name: gdm.service
enabled: true
- name: Creating DConf configuration profile
copy: src=profile/gdm dest=/etc/dconf/profile/gdm
ansible.builtin.copy:
src: profile/gdm
dest: /etc/dconf/profile/gdm
mode: "0644"
- name: Creating gdm.d directory for DConf
file: path=/etc/dconf/db/gdm.d state=directory mode=0755
ansible.builtin.file:
path: /etc/dconf/db/gdm.d
state: directory
mode: "0755"
- name: Configuring GDM
template: src=gdm.d/00-spark.j2 dest=/etc/dconf/db/gdm.d/00-spark
notify: update DConf database
ansible.builtin.template:
src: gdm.d/00-spark.j2
dest: /etc/dconf/db/gdm.d/00-spark
mode: "0644"
notify: Update DConf database

View file

@ -0,0 +1 @@
fs.inotify.max_user_watches = 100000

View file

@ -0,0 +1,11 @@
[Unit]
Description=Git Annex Assistant Service
[Service]
Type=simple
ExecStart=/usr/bin/git-annex assistant --foreground --autostart
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,6 @@
---
- name: Restart git-annex
ansible.builtin.service:
name: "git-annex@{{ user.name }}.service"
state: restarted
when: gitannex is defined

View file

@ -0,0 +1,5 @@
---
dependencies:
- { role: nmtrust }
- { role: systemd }
- { role: sysctl }

View file

@ -0,0 +1,60 @@
---
- name: Install git-annex
community.general.pacman:
name: git-annex
state: present
- name: Install git-annex-remote-rclone
kewlfft.aur.aur:
name: git-annex-remote-rclone
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Push git-annex assistant service file
ansible.builtin.copy:
src: git-annex.service
dest: /etc/systemd/user/git-annex.service
mode: "0644"
notify:
- Reload systemd config
- name: Check if git-annex autostart file exists
ansible.builtin.stat:
path: /home/{{ user.name }}/.config/git-annex/autostart
register: gitannex_autostart
- name: Enable and start git-annex assistant service
ansible.builtin.systemd:
name: git-annex.service
scope: user
enabled: true
state: started
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"
when: gitannex_autostart.stat is defined and gitannex_autostart.stat.exists
- name: Add git-annex to trusted unit list
ansible.builtin.lineinfile:
dest: /etc/nmtrust/trusted_units
state: present
line: "git-annex.service,user:{{ user.name }},allow_offline"
when: gitannex.stop_on_untrusted is defined and gitannex.stop_on_untrusted
- name: Remove git-annex from trusted unit list
ansible.builtin.lineinfile:
dest: /etc/nmtrust/trusted_units
state: absent
line: "git-annex.service,user:{{ user.name }},allow_offline"
when: gitannex.stop_on_untrusted is not defined or not gitannex.stop_on_untrusted
- name: Increase the amount of inotify watchers
ansible.builtin.copy:
src: 99-max_watches.conf
dest: /etc/sysctl.d/99-max_watches.conf
mode: "0644"
notify:
- Reload sysctl

View file

@ -1,13 +1,23 @@
---
- name: Creating gnome.d directory for DConf
file: path=/etc/dconf/db/gnome.d state=directory mode=0755
ansible.builtin.file:
path: /etc/dconf/db/gnome.d
state: directory
mode: "0755"
- name: Configuring GNOME
template: src=gnome.d/00-spark.j2 dest=/etc/dconf/db/gnome.d/00-spark mode=0644
notify: update DConf database
ansible.builtin.template:
src: gnome.d/00-spark.j2
dest: /etc/dconf/db/gnome.d/00-spark
mode: "0644"
notify: Update DConf database
- name: Configuring DConf
lineinfile: path=/etc/dconf/profile/user line={{ item }} create=yes mode=0644
ansible.builtin.lineinfile:
path: /etc/dconf/profile/user
line: "{{ item }}"
create: "yes"
mode: "0644"
with_items:
- "user-db:user"
- "system-db:gnome"

View file

@ -2,18 +2,20 @@
- name: Disabling GNOME Shell top left hot corner
kewlfft.aur.aur:
name: gnome-shell-extension-no-topleft-hot-corner
become: yes
become: true
become_user: "{{ aur.user }}"
when: "gnome.gnome_shell.disable_top_left_hot_corner"
tags:
- aur
- name: Enabling GNOME Shell top left hot corner
pacman: name=gnome-shell-extension-no-topleft-hot-corner state=absent
community.general.pacman:
name: gnome-shell-extension-no-topleft-hot-corner
state: absent
when: "not gnome.gnome_shell.disable_top_left_hot_corner"
- name: Configuring GNOME Shell Extensions support
pacman:
community.general.pacman:
name:
- gnome-shell-extensions
- chrome-gnome-shell

View file

@ -1,6 +1,12 @@
---
- name: Creating GTK+ 3 system wide settings
file: path=/etc/gtk-3.0 state=directory mode=0755
ansible.builtin.file:
path: /etc/gtk-3.0
state: directory
mode: "0755"
- name: Configuring GTK+ 3 theme
template: src=gtk-3.0/settings.ini.j2 dest=/etc/gtk-3.0/settings.ini mode=0644
ansible.builtin.template:
src: gtk-3.0/settings.ini.j2
dest: /etc/gtk-3.0/settings.ini
mode: "0644"

View file

@ -1,6 +1,6 @@
---
- name: Install GNOME
pacman:
community.general.pacman:
name:
- gnome
- gnome-extra
@ -8,7 +8,11 @@
- xorg-server-xwayland
state: present
- include_tasks: dconf.yml
- include_tasks: gtk.yml
- include_tasks: gnome_shell.yml
- include_tasks: online_accounts.yml
- name: Include DConf tasks
ansible.builtin.include_tasks: dconf.yml
- name: Include GTK tasks
ansible.builtin.include_tasks: gtk.yml
- name: Include GNOME Shell tasks
ansible.builtin.include_tasks: gnome_shell.yml
- name: Include online accounts tasks
ansible.builtin.include_tasks: online_accounts.yml

View file

@ -1,3 +1,5 @@
---
- name: Configuring GNOME Online Accounts integration
pacman: name=gvfs-goa state={{ "present" if gnome.online_accounts_support else "absent" }}
community.general.pacman:
name: gvfs-goa
state: '{{ "present" if gnome.online_accounts_support else "absent" }}'

View file

@ -1,41 +1,41 @@
---
- name: Install gnupg
pacman:
community.general.pacman:
name: gnupg
state: present
- name: Enable gpg-agent.socket
systemd:
ansible.builtin.systemd:
name: gpg-agent.socket
scope: user
enabled: yes
enabled: true
state: started
become: yes
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"
when: gnupg.enable_agent == True
when: gnupg.enable_agent
- name: Enable dirmngr.socket
systemd:
ansible.builtin.systemd:
name: dirmngr.socket
scope: user
enabled: yes
enabled: true
state: started
become: yes
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"
when: gnupg.enable_agent == True
when: gnupg.enable_agent
- name: Enable gpg-agent-ssh.socket
systemd:
ansible.builtin.systemd:
name: gpg-agent-ssh.socket
scope: user
enabled: yes
enabled: true
state: started
become: yes
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"
when: gnupg.enable_agent == True and gnupg.emulate_ssh == True
when: gnupg.enable_agent and gnupg.emulate_ssh

View file

@ -1,4 +1,6 @@
---
- name: restart GOESImage
service: name="goesimage@{{ user.name }}.timer" state=restarted
- name: Restart GOESImage
ansible.builtin.service:
name: "goesimage@{{ user.name }}.timer"
state: restarted
when: goesimage.run_on == "all"

View file

@ -2,28 +2,31 @@
- name: Install GOESImage
kewlfft.aur.aur:
name: goesimage
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Push GOESImage service file
template:
ansible.builtin.template:
src: goesimage.service.j2
dest: /etc/systemd/user/goesimage.service
mode: "0644"
notify:
- reload systemd config
- Reload systemd config
- name: Push GOESImage timer file
template:
ansible.builtin.template:
src: goesimage.timer.j2
dest: /etc/systemd/user/goesimage.timer
mode: "0644"
notify:
- reload systemd config
- restart GOESImage
- Reload systemd config
- Restart GOESImage
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: goesimage.timer
run_on: "{{ goesimage.run_on }}"
user_unit: true
unit: goesimage.timer
run_on: "{{ goesimage.run_on }}"
user_unit: true

View file

@ -1,19 +1,21 @@
---
- name: Install goimapnotify
pacman:
community.general.pacman:
name: goimapnotify
state: present
- name: Create goimapnotify service override directory
file:
ansible.builtin.file:
path: /etc/systemd/user/goimapnotify@.service.d
state: directory
mode: "0755"
when: mail.goimapnotify_wait is defined
- name: Push goimapnotify service override file
template:
ansible.builtin.template:
src: goimapnotify-service-override.conf.j2
dest: /etc/systemd/user/goimapnotify@.service.d/override.conf
mode: "0644"
when: mail.goimapnotify_wait is defined
notify:
- reload user systemd config
- Reload user systemd config

View file

@ -1,14 +1,25 @@
---
- name: Install go
pacman: name=go state=present
community.general.pacman:
name: go
state: present
- name: Create system go group
group: name=golang state=present
ansible.builtin.group:
name: golang
state: present
- name: Add user to system golang group
user: name={{ user.name }} groups=golang append=yes
ansible.builtin.user:
name: "{{ user.name }}"
groups: golang
append: true
tags:
- user
- name: Create system go dir
file: path=/usr/local/go state=directory group=golang mode=0775
ansible.builtin.file:
path: /usr/local/go
state: directory
group: golang
mode: "0775"

View file

@ -1,4 +1,5 @@
---
- name: rebuild grub
command: grub-mkconfig -o /boot/grub/grub.cfg
- name: Rebuild grub
ansible.builtin.command: grub-mkconfig -o /boot/grub/grub.cfg
when: bootloader == "grub"
changed_when: true

View file

@ -1,27 +1,27 @@
---
- name: Set kernel parameters
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/default/grub
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT'
regexp: "^GRUB_CMDLINE_LINUX_DEFAULT"
state: present
line: 'GRUB_CMDLINE_LINUX_DEFAULT="{{ kernel_parameters }}"'
when: kernel_parameters is defined
notify:
- rebuild grub
- Rebuild grub
- name: Disable Grub submenus
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/default/grub
regexp: '^GRUB_DISABLE_SUBMENU'
regexp: "^GRUB_DISABLE_SUBMENU"
state: present
line: 'GRUB_DISABLE_SUBMENU=y'
line: "GRUB_DISABLE_SUBMENU=y"
notify:
- rebuild grub
- Rebuild grub
- name: Install Grub Pacman hook
kewlfft.aur.aur:
name: grub-hook
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,17 +1,18 @@
---
- name: Install linux-hardened
pacman:
community.general.pacman:
name:
- linux-hardened
- linux-hardened-headers
state: present
notify:
- rebuild grub
- Rebuild grub
- name: Enable unprivileged containers for non-root users
copy:
ansible.builtin.copy:
src: 99-userns.conf
dest: /etc/sysctl.d/99-userns.conf
mode: "0644"
notify:
- reload sysctl
- Reload sysctl
when: hardened is defined and hardened.enable_namespaces

View file

@ -1,28 +1,28 @@
---
- name: Install vagrant
pacman:
community.general.pacman:
name: vagrant
state: present
- name: Install consul
pacman:
community.general.pacman:
name: consul
state: present
- name: Install terraform
pacman:
community.general.pacman:
name: terraform
state: present
- name: Install vault
pacman:
community.general.pacman:
name: vault
state: present
- name: Install nomad
kewlfft.aur.aur:
name: nomad
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,4 +1,6 @@
---
- name: restart himawaripy
service: name="himawaripy@{{ user.name }}.timer" state=restarted
- name: Restart himawaripy
ansible.builtin.service:
name: "himawaripy@{{ user.name }}.timer"
state: restarted
when: himawaripy.run_on == "all"

View file

@ -1,33 +1,36 @@
---
- name: Install himawaripy into virtual environment
pip:
ansible.builtin.pip:
name: git+https://github.com/boramalper/himawaripy#egg=himawaripy
virtualenv: /usr/local/env/himawaripy
virtualenv_command: virtualenv3
- name: Link himawaripy to bin
file:
ansible.builtin.file:
src: /usr/local/env/himawaripy/bin/himawaripy
dest: /usr/local/bin/himawaripy
state: link
- name: Push himawaripy service file
template:
ansible.builtin.template:
src: himawaripy.service.j2
dest: /etc/systemd/user/himawaripy.service
mode: "0644"
notify:
- reload systemd config
- Reload systemd config
- name: Push himawaripy timer file
template:
ansible.builtin.template:
src: himawaripy.timer.j2
dest: /etc/systemd/user/himawaripy.timer
mode: "0644"
notify:
- reload systemd config
- restart himawaripy
- Reload systemd config
- Restart himawaripy
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: himawaripy.timer
run_on: "{{ himawaripy.run_on }}"
user_unit: true
unit: himawaripy.timer
run_on: "{{ himawaripy.run_on }}"
user_unit: true

View file

@ -2,13 +2,17 @@
- name: Install hostsctl
kewlfft.aur.aur:
name: hostsctl
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Push hostsctl config
template: src=hostsctl.conf.j2 dest=/etc/hostsctl.conf
ansible.builtin.template:
src: hostsctl.conf.j2
dest: /etc/hostsctl.conf
mode: "0644"
- name: Update hostsctl
command: hostsctl update
ansible.builtin.command: hostsctl update
changed_when: true

View file

@ -1,6 +1,6 @@
---
- name: Install i3
pacman:
community.general.pacman:
name:
- i3-wm
- i3blocks
@ -9,26 +9,28 @@
state: present
- name: Install py3status
pacman:
community.general.pacman:
name: py3status
state: present
- name: Install wmfocus
pacman:
community.general.pacman:
name: wmfocus
state: present
- name: Verify that default applications file exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/xdg/mimeapps.list
force: false
mode: "0644"
- name: Verify header in default applications file
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/xdg/mimeapps.list
state: present
line: '[Default Applications]'
line: "[Default Applications]"
insertbefore: BOF
- include_tasks: rofi.yml
- name: Include rofi tasks
ansible.builtin.include_tasks: rofi.yml

View file

@ -1,10 +1,14 @@
---
- name: Install rofi
pacman: name=rofi state=present
community.general.pacman:
name: rofi
state: present
tags:
- rofi
- name: Install i3-wm for rofi window switching
pacman: name=i3-wm state=present
community.general.pacman:
name: i3-wm
state: present
tags:
- rofi

View file

@ -1,5 +1,5 @@
---
- name: restart udevmon
service:
- name: Restart udevmon
ansible.builtin.service:
name: udevmon.service
state: restarted

View file

@ -1,20 +1,21 @@
---
- name: Install caps2esc
pacman:
community.general.pacman:
name: interception-caps2esc
state: present
- name: Push caps2esc udevmon config
template:
ansible.builtin.template:
src: caps2esc.yaml.j2
dest: /etc/interception/udevmon.d/caps2esc.yaml
mode: "0644"
notify:
- restart udevmon
when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled == True
- Restart udevmon
when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled
- name: Enable and start udevmon
service:
ansible.builtin.service:
name: udevmon.service
enabled: yes
enabled: true
state: started
when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled == True
when: interception.caps2esc.enabled is defined and interception.caps2esc.enabled

View file

@ -1,6 +1,10 @@
---
- name: restart iptables
service: name=iptables.service state=restarted
- name: Restart iptables
ansible.builtin.service:
name: iptables.service
state: restarted
- name: restart ip6tables
service: name=ip6tables.service state=restarted
- name: Restart ip6tables
ansible.builtin.service:
name: ip6tables.service
state: restarted

View file

@ -1,16 +1,32 @@
---
- name: Push ipv4 firewall config
template: src=iptables.rules.j2 dest=/etc/iptables/iptables.rules
ansible.builtin.template:
src: iptables.rules.j2
dest: /etc/iptables/iptables.rules
owner: root
group: root
mode: "0640"
notify:
- restart iptables
- Restart iptables
- name: Enable and start iptables
service: name=iptables.service enabled=yes state=started
ansible.builtin.service:
name: iptables.service
enabled: true
state: started
- name: Push ipv6 firewall config
template: src=ip6tables.rules.j2 dest=/etc/iptables/ip6tables.rules
ansible.builtin.template:
src: ip6tables.rules.j2
dest: /etc/iptables/ip6tables.rules
owner: root
group: root
mode: "0640"
notify:
- restart ip6tables
- Restart ip6tables
- name: Enable and start ip6tables
service: name=ip6tables.service enabled=yes state=started
ansible.builtin.service:
name: ip6tables.service
enabled: true
state: started

View file

@ -1,16 +1,20 @@
---
- name: Install KDE Connect
pacman: name=kdeconnect state=present
community.general.pacman:
name: kdeconnect
state: present
- name: Push KDE Connect service file
template:
ansible.builtin.template:
src: kdeconnect.service.j2
dest: /etc/systemd/user/kdeconnect.service
mode: "0644"
notify:
- reload systemd config
- Reload systemd config
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: kdeconnect.service
run_on: "{{ kdeconnect.run_on }}"
user_unit: true
unit: kdeconnect.service
run_on: "{{ kdeconnect.run_on }}"
user_unit: true

View file

@ -1,8 +1,10 @@
---
- name: restart tlp
service: name=tlp.service state=restarted
- name: Restart tlp
ansible.builtin.service:
name: tlp.service
state: restarted
- name: restart power monitor
service:
- name: Restart power monitor
ansible.builtin.service:
name: power_monitor.service
state: restarted

View file

@ -1,6 +1,6 @@
---
- name: Install framework-system
pacman:
community.general.pacman:
name: framework-system
tags:
- framework

View file

@ -1,45 +1,50 @@
---
- include_tasks: tlp.yml
- name: Include TLP tasks
ansible.builtin.include_tasks: tlp.yml
when: power_management is defined and power_management == "tlp"
- include_tasks: tuned.yml
- name: Include tuned tasks
ansible.builtin.include_tasks: tuned.yml
when: power_management is defined and power_management == "tuned"
- include_tasks: framework.yml
- name: Include Framework tasks
ansible.builtin.include_tasks: framework.yml
when: power_management is defined and power_management == "tuned" and ansible_system_vendor == "Framework"
- name: Install x86_energy_perf_policy
pacman:
community.general.pacman:
name: x86_energy_perf_policy
state: present
- name: Copy touchpad configuration file
copy:
ansible.builtin.copy:
src: 30-touchpad.conf
dest: /etc/X11/xorg.conf.d/30-touchpad.conf
mode: "0644"
tags:
- libinput
- name: Copy logind configuration file
copy:
ansible.builtin.copy:
src: logind.conf
dest: /etc/systemd/logind.conf
mode: "0644"
- name: Install poweralertd
kewlfft.aur.aur:
name: poweralertd
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Enable and start poweralertd
systemd:
ansible.builtin.systemd:
name: poweralertd.service
scope: user
enabled: yes
enabled: true
state: started
become: yes
become: true
become_user: "{{ user.name }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user.uid }}"
@ -47,27 +52,27 @@
- aur
- name: Install powertop
pacman:
community.general.pacman:
name: powertop
state: present
- name: Install powerstat
kewlfft.aur.aur:
name: powerstat
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Install cmake for battery-stats
pacman:
community.general.pacman:
name: cmake
state: present
- name: Install battery-stats
kewlfft.aur.aur:
name: battery-stats-git
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
@ -75,7 +80,7 @@
- name: Install battop
kewlfft.aur.aur:
name: battop
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,6 +1,6 @@
---
- name: Install TLP
pacman:
community.general.pacman:
name:
- ethtool
- tlp
@ -10,45 +10,52 @@
- tlp
- name: Push TLP battery threshold config
copy:
ansible.builtin.copy:
src: tlp/20-battery.conf
dest: /etc/tlp.d/
mode: "0644"
notify:
- restart tlp
- Restart tlp
tags:
- tlp
- name: Push TLP radio device config
copy:
ansible.builtin.copy:
src: tlp/20-rdw.conf
dest: /etc/tlp.d/
mode: "0644"
notify:
- restart tlp
- Restart tlp
tags:
- tlp
- name: Push TLP PCIe config
copy:
ansible.builtin.copy:
src: tlp/20-pcie.conf
dest: /etc/tlp.d/
mode: "0644"
notify:
- restart tlp
- Restart tlp
tags:
- tlp
- name: Mask systemd radio service
command: systemctl mask systemd-rfkill.service
ansible.builtin.systemd:
name: systemd-rfkill.service
masked: true
tags:
- tlp
- name: Mask systemd radio socket
command: systemctl mask systemd-rfkill.socket
ansible.builtin.systemd:
name: systemd-rfkill.socket
masked: true
tags:
- tlp
- name: Enable TLP
service:
ansible.builtin.service:
name: tlp.service
enabled: yes
enabled: true
tags:
- tlp

View file

@ -1,43 +1,44 @@
---
- name: Install TuneD
pacman:
community.general.pacman:
name: tuned-ppd
state: present
tags:
- tuned
- name: Enable and start TuneD
service:
ansible.builtin.service:
name: tuned.service
enabled: yes
enabled: true
state: started
tags:
- tuned
- name: Install power monitor script
copy:
ansible.builtin.copy:
src: power_monitor.sh
dest: /usr/local/bin/
mode: 0755
mode: "0755"
notify:
- restart power monitor
- Restart power monitor
tags:
- tuned
- name: Copy power monitor service
copy:
ansible.builtin.copy:
src: power_monitor.service
dest: /etc/systemd/system/
mode: "0644"
notify:
- reload systemd config
- restart power monitor
- Reload systemd config
- Restart power monitor
tags:
- tuned
- name: Enable and start power monitor service
service:
ansible.builtin.service:
name: power_monitor.service
enabled: yes
enabled: true
state: started
tags:
- tuned

View file

@ -1,3 +1,5 @@
---
- name: Install ledger
pacman: name=ledger state=present
community.general.pacman:
name: ledger
state: present

View file

@ -1,37 +1,37 @@
---
- name: Install libvirt
pacman:
community.general.pacman:
name:
- libvirt
- virt-install
state: present
- name: Install qemu-base
pacman:
community.general.pacman:
name: qemu-base
state: present
- name: Install dnsmasq
pacman:
community.general.pacman:
name: dnsmasq
state: present
- name: Enable libvirtd.socket
systemd:
ansible.builtin.systemd:
name: libvirtd.socket
enabled: yes
enabled: true
state: started
- name: Enable virtlogd.socket
systemd:
ansible.builtin.systemd:
name: virtlogd.socket
enabled: yes
enabled: true
state: started
- name: Add the user to libvirt group
user:
ansible.builtin.user:
name: "{{ user.name }}"
groups: libvirt
append: yes
append: true
tags:
- user

View file

@ -1,34 +1,45 @@
---
- name: Install LightDM
pacman:
community.general.pacman:
name:
- lightdm
- lightdm-gtk-greeter
state: present
- name: Enable LightDM
service: name=lightdm.service enabled=yes
ansible.builtin.service:
name: lightdm.service
enabled: true
- name: Create background dir
file: path=/usr/share/backgrounds state=directory
ansible.builtin.file:
path: /usr/share/backgrounds
state: directory
mode: "0755"
- name: Push LightDM greeter background
copy: src=onosendai.jpg dest=/usr/share/backgrounds/onosendai.jpg
ansible.builtin.copy:
src: onosendai.jpg
dest: /usr/share/backgrounds/onosendai.jpg
mode: "0644"
- name: Specify LightDM greeter background
lineinfile: dest=/etc/lightdm/lightdm-gtk-greeter.conf
regexp="^background="
state=present
line="background=/usr/share/backgrounds/onosendai.jpg"
ansible.builtin.lineinfile:
dest: /etc/lightdm/lightdm-gtk-greeter.conf
regexp: "^background="
state: present
line: "background=/usr/share/backgrounds/onosendai.jpg"
- name: Hide user images
lineinfile: dest=/etc/lightdm/lightdm-gtk-greeter.conf
regexp="^hide-user-image="
state=present
line="hide-user-image=true"
ansible.builtin.lineinfile:
dest: /etc/lightdm/lightdm-gtk-greeter.conf
regexp: "^hide-user-image="
state: present
line: "hide-user-image=true"
- name: Force LightDM greeter theme
lineinfile: dest=/usr/share/xgreeters/lightdm-gtk-greeter.desktop
regexp="^Exec="
state=present
line="Exec=env GTK_THEME=Adwaita:dark lightdm-gtk-greeter"
ansible.builtin.lineinfile:
dest: /usr/share/xgreeters/lightdm-gtk-greeter.desktop
regexp: "^Exec="
state: present
line: "Exec=env GTK_THEME=Adwaita:dark lightdm-gtk-greeter"

View file

@ -2,12 +2,13 @@
- name: Install localtime
kewlfft.aur.aur:
name: localtime-git
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: localtime.service
run_on: "{{ localtime.run_on }}"
unit: localtime.service
run_on: "{{ localtime.run_on }}"

View file

@ -1,18 +1,18 @@
---
- name: Add plugdev group
group:
name: plugdev
state: present
ansible.builtin.group:
name: plugdev
state: present
- name: Add {{ user.name }} to plugdev group
user:
name: "{{ user.name }}"
groups: plugdev
append: yes
- name: "Add user to plugdev group: {{ user.name }}"
ansible.builtin.user:
name: "{{ user.name }}"
groups: plugdev
append: true
tags:
- user
- name: Install Solaar
pacman:
name: solaar
state: present
community.general.pacman:
name: solaar
state: present

View file

@ -1,11 +1,14 @@
---
- name: Copy mtrack-git configuration file
copy: src=50-mtrack-git.conf dest=/etc/X11/xorg.conf.d/50-mtrack-git.conf
ansible.builtin.copy:
src: 50-mtrack-git.conf
dest: /etc/X11/xorg.conf.d/50-mtrack-git.conf
mode: "0644"
- name: Install xf86-input-mtrack-git
kewlfft.aur.aur:
name: xf86-input-mtrack-git
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,4 +1,6 @@
---
- name: restart mailsync
service: name="mailsync@{{ user.name }}.timer" state=restarted
- name: Restart mailsync
ansible.builtin.service:
name: "mailsync@{{ user.name }}.timer"
state: restarted
when: mail.sync_on == "all"

View file

@ -1,5 +1,7 @@
---
- name: Install isync
pacman: name=isync state=present
community.general.pacman:
name: isync
state: present
tags:
- isync

View file

@ -1,35 +1,38 @@
---
- name: Push mail sync script
template:
ansible.builtin.template:
src: mailsync.sh.j2
dest: /usr/local/bin/mailsync
mode: 0755
mode: "0755"
tags:
- mailsync
- name: Push mailsync service file
template:
ansible.builtin.template:
src: mailsync.service.j2
dest: /etc/systemd/user/mailsync.service
mode: "0644"
tags:
- mailsync
notify:
- reload systemd config
- Reload systemd config
- name: Push mailsync timer file
template:
ansible.builtin.template:
src: mailsync.timer.j2
dest: /etc/systemd/user/mailsync.timer
mode: "0644"
tags:
- mailsync
notify:
- reload systemd config
- restart mailsync
- Reload systemd config
- Restart mailsync
- include_tasks: roles/nmtrust/tasks/unit.yml
- name: Include nmtrust unit tasks
ansible.builtin.include_tasks: roles/nmtrust/tasks/unit.yml
vars:
unit: mailsync.timer
run_on: "{{ mail.sync_on }}"
user_unit: true
unit: mailsync.timer
run_on: "{{ mail.sync_on }}"
user_unit: true
tags:
- mailsync

View file

@ -1,85 +1,93 @@
---
- name: Install neomutt
pacman:
community.general.pacman:
name: neomutt
state: present
- name: Make neomutt available as mutt
file:
ansible.builtin.file:
src: /usr/bin/neomutt
dest: /usr/local/bin/mutt
state: link
- name: Verify mutt firejail local profile exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/firejail/mutt.local
force: false
mode: "0644"
tags:
- firejail
- name: Whitelist mutt related files
blockinfile:
ansible.builtin.blockinfile:
dest: /etc/firejail/mutt.local
block: |
noblacklist ~/.config/vdirsyncer
noblacklist ~/.config/pimsync
noblacklist ~/.vdirsyncer
noblacklist ~/.calendars
noblacklist ~/.contacts
noblacklist ~/.mbsyncrc
noblacklist ~/.offlineimap
noblacklist ~/.offlineimaprc
noblacklist ~/.config/vdirsyncer
noblacklist ~/.config/pimsync
noblacklist ~/.vdirsyncer
noblacklist ~/.calendars
noblacklist ~/.contacts
noblacklist ~/.mbsyncrc
noblacklist ~/.offlineimap
noblacklist ~/.offlineimaprc
tags:
- firejail
- name: Install urlscan
pacman:
community.general.pacman:
name: urlscan
- name: Install notmuch
pacman:
community.general.pacman:
name: notmuch
state: present
- name: Install mutt-ics
kewlfft.aur.aur:
name: mutt-ics
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: Push mutt-mailto script
copy:
ansible.builtin.copy:
src: mutt-mailto.sh
dest: /usr/local/bin/mutt-mailto
mode: 0755
mode: "0755"
- name: Create local desktop application dir
file:
ansible.builtin.file:
path: /usr/local/share/applications
state: directory
mode: "0755"
- name: Push mutt desktop file
copy:
ansible.builtin.copy:
src: mutt.desktop
dest: /usr/local/share/applications/mutt.desktop
mode: "0644"
- name: Verify mimeapps.list exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/xdg/mimeapps.list
force: false
mode: "0644"
- name: Set mutt as default application for mailto links
lineinfile:
ansible.builtin.lineinfile:
dest: /etc/xdg/mimeapps.list
regexp: "^x-scheme-handler/mailto="
line: "x-scheme-handler/mailto=mutt.desktop"
- include_tasks: msmtp.yml
- include_tasks: isync.yml
#- include_tasks: offlineimap.yml
- include_tasks: mailsync.yml
- include_tasks: oauth2.yml
- name: Include msmtp tasks
ansible.builtin.include_tasks: msmtp.yml
- name: Include isync tasks
ansible.builtin.include_tasks: isync.yml
# - ansible.builtin.include_tasks: offlineimap.yml
- name: Include mailsync tasks
ansible.builtin.include_tasks: mailsync.yml
- name: Include oauth2 tasks
ansible.builtin.include_tasks: oauth2.yml

View file

@ -1,83 +1,110 @@
---
- name: Install msmtp
pacman: name=msmtp-mta state=present
community.general.pacman:
name: msmtp-mta
state: present
tags:
- msmtp
- name: Push msmtp configuration file
copy: src=msmtprc dest=/etc/msmtprc
ansible.builtin.copy:
src: msmtprc
dest: /etc/msmtprc
mode: "0644"
tags:
- msmtp
- name: Verify alias file exists
copy:
ansible.builtin.copy:
content: ""
dest: /etc/aliases
force: false
mode: "0644"
tags:
- msmtp
- name: Set root email alias
lineinfile: "dest=/etc/aliases
regexp=^root
state=present
line='root: {{ user.email }}'"
ansible.builtin.lineinfile:
dest: /etc/aliases
regexp: ^root
state: present
line: "root: {{ user.email }}"
when: user.email is defined
tags:
- msmtp
- name: Set user email alias
lineinfile: "dest=/etc/aliases
regexp=^{{ user.name }}
state=present
line='{{ user.name }}: {{ user.email }}'"
ansible.builtin.lineinfile:
dest: /etc/aliases
regexp: ^{{ user.name }}
state: present
line: "{{ user.name }}: {{ user.email }}"
when: user.email is defined
tags:
- msmtp
- name: Create cronie systemd unit file directory
file: path=/etc/systemd/system/cronie.service.d state=directory
ansible.builtin.file:
path: /etc/systemd/system/cronie.service.d
state: directory
mode: "0755"
tags:
- msmtp
- cron
- name: Override cronie send mail via msmtp
copy: src=cronie-service-msmtp.conf dest=/etc/systemd/system/cronie.service.d/msmtp.conf
ansible.builtin.copy:
src: cronie-service-msmtp.conf
dest: /etc/systemd/system/cronie.service.d/msmtp.conf
mode: "0644"
notify:
- reload systemd config
- restart cron
- Reload systemd config
- Restart cron
tags:
- msmtp
- cron
- name: Copy msmtpq script
copy: src=/usr/share/doc/msmtp/msmtpq/msmtpq dest=/usr/local/bin/ mode=0755
ansible.builtin.copy:
src: /usr/share/doc/msmtp/msmtpq/msmtpq
dest: /usr/local/bin/
mode: "0755"
tags:
- msmtp
- name: Copy msmtp-queue script
copy: src=/usr/share/doc/msmtp/msmtpq/msmtp-queue dest=/usr/local/bin/ mode=0755
ansible.builtin.copy:
src: /usr/share/doc/msmtp/msmtpq/msmtp-queue
dest: /usr/local/bin/
mode: "0755"
tags:
- msmtp
- name: Create msmtp queue directory
file: path=/home/{{ user.name }}/.msmtp.queue state=directory mode=0700 owner={{ user.name }} group={{ user.group }}
ansible.builtin.file:
path: /home/{{ user.name }}/.msmtp.queue
state: directory
mode: "0700"
owner: "{{ user.name }}"
group: "{{ user.group }}"
tags:
- msmtp
- name: Disable msmtpq connectivity test
lineinfile: "dest=/usr/local/bin/msmtpq
regexp=^EMAIL_CONN_TEST=
state=present
line='EMAIL_CONN_TEST=x'"
ansible.builtin.lineinfile:
dest: /usr/local/bin/msmtpq
regexp: ^EMAIL_CONN_TEST=
state: present
line: "EMAIL_CONN_TEST=x"
tags:
- msmtp
- name: Set msmtpq log dir
lineinfile: "dest=/usr/local/bin/msmtpq
regexp=^LOG=
state=present
line='LOG=/home/{{ user.name }}/{{ user.log_dir }}/msmtp.queue.log'"
ansible.builtin.lineinfile:
dest: /usr/local/bin/msmtpq
regexp: ^LOG=
state: present
line: "LOG=/home/{{ user.name }}/{{ user.log_dir }}/msmtp.queue.log"
when: user.log_dir is defined
tags:
- msmtp

View file

@ -1,16 +1,16 @@
---
- name: Install cyrus-sasl-xoauth2-git
kewlfft.aur.aur:
name: cyrus-sasl-xoauth2-git
become: yes
name: cyrus-sasl-xoauth2-git
become: true
become_user: "{{ aur.user }}"
tags:
- aur
- name: oama-bin
- name: Oama-bin
kewlfft.aur.aur:
name: oama-bin
become: yes
name: oama-bin
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,5 +1,7 @@
---
- name: Install OfflineIMAP
pacman: name=offlineimap state=present
community.general.pacman:
name: offlineimap
state: present
tags:
- offlineimap

View file

@ -1,10 +1,10 @@
---
- name: Install GPXSee
pacman:
community.general.pacman:
name: gpxsee
state: present
- name: Install gpxpy
pacman:
community.general.pacman:
name: python-gpxpy
state: present

View file

@ -1,6 +1,6 @@
---
- name: Install beets and dependencies
pacman:
community.general.pacman:
name:
- gst-libav
- gst-plugins-bad
@ -21,7 +21,7 @@
- name: Install mp3val
kewlfft.aur.aur:
name: mp3val
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,5 +1,7 @@
---
- name: Install darktable
pacman: name=darktable state=present
community.general.pacman:
name: darktable
state: present
tags:
- darktable

View file

@ -1,13 +1,16 @@
---
- name: Install feh
pacman: name=feh state=present
community.general.pacman:
name: feh
state: present
tags:
- feh
- name: Jail feh
file: src=/usr/bin/firejail
dest=/usr/local/bin/feh
state=link
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/feh
state: link
tags:
- feh
- firejail

View file

@ -2,7 +2,7 @@
- name: Install flac2all
kewlfft.aur.aur:
name: flac2all
become: yes
become: true
become_user: "{{ aur.user }}"
tags:
- aur

View file

@ -1,11 +1,13 @@
---
- name: Install poppler-glib
pacman: name=poppler-glib state=present
community.general.pacman:
name: poppler-glib
state: present
tags:
- gimp
- name: Install GIMP
pacman:
community.general.pacman:
name:
- gimp
- gimp-plugin-gmic
@ -14,9 +16,10 @@
- gimp
- name: Jail GIMP
file: src=/usr/bin/firejail
dest=/usr/local/bin/gimp
state=link
ansible.builtin.file:
src: /usr/bin/firejail
dest: /usr/local/bin/gimp
state: link
tags:
- gimp
- firejail

View file

@ -1,5 +1,7 @@
---
- name: Install gThumb
pacman: name=gthumb state=present
community.general.pacman:
name: gthumb
state: present
tags:
- gthumb

Some files were not shown because too many files have changed in this diff Show more