Apply ansible-lint
This commit is contained in:
81
playbook.yml
81
playbook.yml
@@ -1,27 +1,28 @@
|
|||||||
|
---
|
||||||
- name: configure system
|
- name: configure system
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
connection: local
|
connection: local
|
||||||
become: false
|
become: false
|
||||||
tasks:
|
tasks:
|
||||||
- name: read machine-specific variables
|
- name: Read machine-specific variables
|
||||||
include_vars:
|
ansible.builtin.include_vars:
|
||||||
file: _machines/{{ ansible_hostname }}.yml
|
file: _machines/{{ ansible_hostname }}.yml
|
||||||
name: machine
|
name: machine
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
distro: "{{ ansible_distribution|lower }}"
|
distro: "{{ ansible_distribution | lower }}"
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
|
|
||||||
- name: check for valid distro
|
- name: Check for valid distro
|
||||||
assert:
|
ansible.builtin.assert:
|
||||||
that: distro in ('archlinux')
|
that: distro in ('archlinux')
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: install ansible requirements
|
- name: Install ansible requirements
|
||||||
package:
|
ansible.builtin.package:
|
||||||
name: "{{ packages[distro] }}"
|
name: "{{ packages[distro] }}"
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
@@ -30,12 +31,12 @@
|
|||||||
archlinux:
|
archlinux:
|
||||||
- python-jmespath
|
- python-jmespath
|
||||||
|
|
||||||
- name: pacman
|
- name: Pacman
|
||||||
tags:
|
tags:
|
||||||
- pacman
|
- pacman
|
||||||
block:
|
block:
|
||||||
- name: enable multilib repository
|
- name: Enable multilib repository
|
||||||
blockinfile:
|
ansible.builtin.blockinfile:
|
||||||
path: /etc/pacman.conf
|
path: /etc/pacman.conf
|
||||||
block: |
|
block: |
|
||||||
[multilib]
|
[multilib]
|
||||||
@@ -43,28 +44,28 @@
|
|||||||
marker: "# {mark} ANSIBLE MANAGED multilib"
|
marker: "# {mark} ANSIBLE MANAGED multilib"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: enable parallel download
|
- name: Enable parallel download
|
||||||
blockinfile:
|
ansible.builtin.blockinfile:
|
||||||
path: /etc/pacman.conf
|
path: /etc/pacman.conf
|
||||||
insertafter: '\[options\]'
|
insertafter: "\\[options\\]"
|
||||||
block: |
|
block: |
|
||||||
ParallelDownloads = 5
|
ParallelDownloads = 5
|
||||||
marker: "# {mark} ANSIBLE MANAGED parallel_download"
|
marker: "# {mark} ANSIBLE MANAGED parallel_download"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: install pacman-contrib for paccache
|
- name: Install pacman-contrib for paccache
|
||||||
package:
|
ansible.builtin.package:
|
||||||
name: pacman-contrib
|
name: pacman-contrib
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: install pacman cache clean service
|
- name: Install pacman cache clean service
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/systemd/system/pacman-cache-cleanup.service
|
dest: /etc/systemd/system/pacman-cache-cleanup.service
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: "0644"
|
||||||
content: |
|
content: |
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
@@ -72,12 +73,12 @@
|
|||||||
RemainAfterExit=true
|
RemainAfterExit=true
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: install pacman cache clean timer
|
- name: Install pacman cache clean timer
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/systemd/system/pacman-cache-cleanup.timer
|
dest: /etc/systemd/system/pacman-cache-cleanup.timer
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: "0644"
|
||||||
content: |
|
content: |
|
||||||
[Timer]
|
[Timer]
|
||||||
OnCalendar=daily
|
OnCalendar=daily
|
||||||
@@ -86,14 +87,15 @@
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: enable pacman cache clean timer
|
- ansible.builtin.systemd:
|
||||||
systemd:
|
|
||||||
name: pacman-cache-cleanup.timer
|
name: pacman-cache-cleanup.timer
|
||||||
enabled: true
|
enabled: true
|
||||||
state: started
|
state: started
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
name: Enable pacman cache clean timer
|
||||||
|
|
||||||
- name: dotfiles directory
|
- name: dotfiles directory
|
||||||
tags:
|
tags:
|
||||||
- dotfiles-directory
|
- dotfiles-directory
|
||||||
@@ -122,7 +124,7 @@
|
|||||||
path: /var/lib/dotfiles
|
path: /var/lib/dotfiles
|
||||||
owner: dotfiles
|
owner: dotfiles
|
||||||
group: dotfiles
|
group: dotfiles
|
||||||
mode: '0775' # group needs write access!
|
mode: "0775" # group needs write access!
|
||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
@@ -307,7 +309,7 @@
|
|||||||
file:
|
file:
|
||||||
path: "/var/lib/makepkg/{{ item.name }}/"
|
path: "/var/lib/makepkg/{{ item.name }}/"
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0700'
|
mode: "0700"
|
||||||
owner: makepkg
|
owner: makepkg
|
||||||
group: makepkg
|
group: makepkg
|
||||||
become_user: makepkg
|
become_user: makepkg
|
||||||
@@ -320,7 +322,7 @@
|
|||||||
file:
|
file:
|
||||||
path: "/var/lib/makepkg/{{ item.name }}/gnupg"
|
path: "/var/lib/makepkg/{{ item.name }}/gnupg"
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0700'
|
mode: "0700"
|
||||||
owner: makepkg
|
owner: makepkg
|
||||||
group: makepkg
|
group: makepkg
|
||||||
become_user: makepkg
|
become_user: makepkg
|
||||||
@@ -491,8 +493,7 @@
|
|||||||
become: true
|
become: true
|
||||||
with_nested:
|
with_nested:
|
||||||
- "{{ aur_packages }}"
|
- "{{ aur_packages }}"
|
||||||
-
|
- - build
|
||||||
- build
|
|
||||||
- src
|
- src
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item[0].name }}/{{ item[1] }}"
|
label: "{{ item[0].name }}/{{ item[1] }}"
|
||||||
@@ -518,7 +519,7 @@
|
|||||||
- name: use vz4 for mkinitcpio compression
|
- name: use vz4 for mkinitcpio compression
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: /etc/mkinitcpio.conf
|
path: /etc/mkinitcpio.conf
|
||||||
regexp: '^#?COMPRESSION=.*$'
|
regexp: "^#?COMPRESSION=.*$"
|
||||||
line: 'COMPRESSION="lz4"'
|
line: 'COMPRESSION="lz4"'
|
||||||
become: true
|
become: true
|
||||||
notify:
|
notify:
|
||||||
@@ -632,22 +633,22 @@
|
|||||||
- name: handle lid switch
|
- name: handle lid switch
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: /etc/systemd/logind.conf
|
path: /etc/systemd/logind.conf
|
||||||
regexp: '^HandleLidSwitch='
|
regexp: "^HandleLidSwitch="
|
||||||
line: 'HandleLidSwitch=ignore'
|
line: "HandleLidSwitch=ignore"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: handle power key
|
- name: handle power key
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: /etc/systemd/logind.conf
|
path: /etc/systemd/logind.conf
|
||||||
regexp: '^HandlePowerKey='
|
regexp: "^HandlePowerKey="
|
||||||
line: 'HandlePowerKey=suspend'
|
line: "HandlePowerKey=suspend"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: limit journald size
|
- name: limit journald size
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: /etc/systemd/journald.conf
|
path: /etc/systemd/journald.conf
|
||||||
regexp: '^#?SystemMaxUse=.*$'
|
regexp: "^#?SystemMaxUse=.*$"
|
||||||
line: 'SystemMaxUse=50M'
|
line: "SystemMaxUse=50M"
|
||||||
become: true
|
become: true
|
||||||
notify:
|
notify:
|
||||||
- restart journald
|
- restart journald
|
||||||
@@ -758,7 +759,7 @@
|
|||||||
- name: configure pacman to skip installing nextcloud dbus file
|
- name: configure pacman to skip installing nextcloud dbus file
|
||||||
blockinfile:
|
blockinfile:
|
||||||
path: /etc/pacman.conf
|
path: /etc/pacman.conf
|
||||||
insertafter: '^#NoExtract'
|
insertafter: "^#NoExtract"
|
||||||
block: |
|
block: |
|
||||||
NoExtract = usr/share/dbus-1/services/com.nextcloudgmbh.Nextcloud.service
|
NoExtract = usr/share/dbus-1/services/com.nextcloudgmbh.Nextcloud.service
|
||||||
marker: "# {mark} ANSIBLE MANAGED noextract nextcloud"
|
marker: "# {mark} ANSIBLE MANAGED noextract nextcloud"
|
||||||
@@ -775,7 +776,7 @@
|
|||||||
- name: configure pacman to skip installing gpg user units
|
- name: configure pacman to skip installing gpg user units
|
||||||
blockinfile:
|
blockinfile:
|
||||||
path: /etc/pacman.conf
|
path: /etc/pacman.conf
|
||||||
insertafter: '^#NoExtract'
|
insertafter: "^#NoExtract"
|
||||||
block: |
|
block: |
|
||||||
NoExtract = usr/lib/systemd/user/gpg-agent*
|
NoExtract = usr/lib/systemd/user/gpg-agent*
|
||||||
marker: "# {mark} ANSIBLE MANAGED noextract gpg-agent"
|
marker: "# {mark} ANSIBLE MANAGED noextract gpg-agent"
|
||||||
@@ -791,7 +792,7 @@
|
|||||||
dest: /etc/udev/rules.d/backlight.rules
|
dest: /etc/udev/rules.d/backlight.rules
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: "0644"
|
||||||
content: |
|
content: |
|
||||||
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video $sys$devpath/brightness", RUN+="/bin/chmod g+w $sys$devpath/brightness"
|
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video $sys$devpath/brightness", RUN+="/bin/chmod g+w $sys$devpath/brightness"
|
||||||
become: true
|
become: true
|
||||||
@@ -804,7 +805,7 @@
|
|||||||
tags:
|
tags:
|
||||||
- user
|
- user
|
||||||
with_items: "{{ users }}"
|
with_items: "{{ users }}"
|
||||||
no_log: True # less spam
|
no_log: true # less spam
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: user
|
loop_var: user
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
178
user.yml
178
user.yml
@@ -1,7 +1,8 @@
|
|||||||
- name: base user configuration
|
---
|
||||||
|
- name: Base user configuration
|
||||||
tags: [user:base]
|
tags: [user:base]
|
||||||
block:
|
block:
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
user_groups:
|
user_groups:
|
||||||
- libvirt
|
- libvirt
|
||||||
- wheel
|
- wheel
|
||||||
@@ -13,15 +14,15 @@
|
|||||||
- kvm
|
- kvm
|
||||||
- video
|
- video
|
||||||
|
|
||||||
- name: create user group
|
- name: Create user group
|
||||||
group:
|
ansible.builtin.group:
|
||||||
name: "{{ user.name }}"
|
name: "{{ user.name }}"
|
||||||
state: present
|
state: present
|
||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
- name: create user
|
- name: Create user
|
||||||
user:
|
ansible.builtin.user:
|
||||||
name: "{{ user.name }}"
|
name: "{{ user.name }}"
|
||||||
state: present
|
state: present
|
||||||
home: "/home/{{ user.name }}"
|
home: "/home/{{ user.name }}"
|
||||||
@@ -32,8 +33,8 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
- name: create systemd directory
|
- name: Create systemd directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
@@ -43,22 +44,22 @@
|
|||||||
- "/home/{{ user.name }}/.config/systemd/"
|
- "/home/{{ user.name }}/.config/systemd/"
|
||||||
- "/home/{{ user.name }}/.config/systemd/user/"
|
- "/home/{{ user.name }}/.config/systemd/user/"
|
||||||
|
|
||||||
- name: create directory for getty autologin
|
- name: Create directory for getty autologin
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: /etc/systemd/system/getty@tty{{ user.vt }}.service.d
|
path: /etc/systemd/system/getty@tty{{ user.vt }}.service.d
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0755'
|
mode: "0755"
|
||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
- name: enable getty autologin
|
- name: Enable getty autologin
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/systemd/system/getty@tty{{ user.vt }}.service.d/override.conf
|
dest: /etc/systemd/system/getty@tty{{ user.vt }}.service.d/override.conf
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: '0644'
|
mode: "0644"
|
||||||
content: |
|
content: |
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=
|
ExecStart=
|
||||||
@@ -66,16 +67,16 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
- name: configure dotfiles
|
- name: Configure dotfiles
|
||||||
tags:
|
tags:
|
||||||
- user:dotfiles
|
- user:dotfiles
|
||||||
block:
|
block:
|
||||||
- name: load dotfile list
|
- name: Load dotfile list
|
||||||
include_vars:
|
ansible.builtin.include_vars:
|
||||||
file: dotfiles.yml
|
file: dotfiles.yml
|
||||||
|
|
||||||
- name: get state of empty directories
|
- name: Get state of empty directories
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: ~/{{ item.name }}
|
path: ~/{{ item.name }}
|
||||||
register: empty_dir_stat
|
register: empty_dir_stat
|
||||||
with_items: "{{ empty_directories }}"
|
with_items: "{{ empty_directories }}"
|
||||||
@@ -83,8 +84,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.name }}"
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
- name: remove symlinks
|
- name: Remove symlinks
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.stat.path }}"
|
path: "{{ item.stat.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when: item.stat.exists and item.stat.islnk
|
when: item.stat.exists and item.stat.islnk
|
||||||
@@ -92,8 +93,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.item.name }}"
|
label: "{{ item.item.name }}"
|
||||||
|
|
||||||
- name: create empty directories for dotfiles
|
- name: Create empty directories for dotfiles
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: ~/{{ item.name }}
|
path: ~/{{ item.name }}
|
||||||
mode: "{{ item.mode | default('0755') }}"
|
mode: "{{ item.mode | default('0755') }}"
|
||||||
@@ -101,8 +102,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.name }}"
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
- name: link this folder to ~/.dotfiles
|
- name: Link this folder to ~/.dotfiles
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: link
|
state: link
|
||||||
force: true
|
force: true
|
||||||
follow: false
|
follow: false
|
||||||
@@ -113,8 +114,8 @@
|
|||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
- name: get state of copy targets
|
- name: Get state of copy targets
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: ~/{{ item.to }}
|
path: ~/{{ item.to }}
|
||||||
register: copy_stat
|
register: copy_stat
|
||||||
when: not item.template|default(false)
|
when: not item.template|default(false)
|
||||||
@@ -123,8 +124,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: remove invalid copy target (symlinks)
|
- name: Remove invalid copy target (symlinks)
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.stat.path }}"
|
path: "{{ item.stat.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when:
|
when:
|
||||||
@@ -135,10 +136,10 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.item.from }}"
|
label: "{{ item.item.from }}"
|
||||||
|
|
||||||
- name: make sure target directories exist
|
- name: Make sure target directories exist
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: "{{ (['/home', user.name, item.to]|join('/')) | dirname }}"
|
path: "{{ (['/home', user.name, item.to] | join('/')) | dirname }}"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
group: "{{ user.name }}"
|
group: "{{ user.name }}"
|
||||||
with_items: "{{ dotfiles }}"
|
with_items: "{{ dotfiles }}"
|
||||||
@@ -147,8 +148,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: copy dotfiles
|
- name: Copy dotfiles
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "/home/{{ user.name }}/{{ item.to }}"
|
dest: "/home/{{ user.name }}/{{ item.to }}"
|
||||||
src: /var/lib/dotfiles/{{ item.from }}
|
src: /var/lib/dotfiles/{{ item.from }}
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
@@ -160,8 +161,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: copy directories
|
- name: Copy directories
|
||||||
synchronize:
|
ansible.posix.synchronize:
|
||||||
dest: "/home/{{ user.name }}/{{ item.to }}/"
|
dest: "/home/{{ user.name }}/{{ item.to }}/"
|
||||||
src: /var/lib/dotfiles/{{ item.from }}/
|
src: /var/lib/dotfiles/{{ item.from }}/
|
||||||
archive: false
|
archive: false
|
||||||
@@ -180,8 +181,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: apply directory permissions
|
- name: Apply directory permissions
|
||||||
file:
|
ansible.builtin.file:
|
||||||
dest: "/home/{{ user.name }}/{{ item.to }}/"
|
dest: "/home/{{ user.name }}/{{ item.to }}/"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
group: "{{ user.name }}"
|
group: "{{ user.name }}"
|
||||||
@@ -193,8 +194,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: get state of template targets
|
- name: Get state of template targets
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: ~/{{ item.to }}
|
path: ~/{{ item.to }}
|
||||||
register: template_stat
|
register: template_stat
|
||||||
when: item.template|default(false)
|
when: item.template|default(false)
|
||||||
@@ -203,8 +204,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: remove invalid template target (directory or symlink)
|
- name: Remove invalid template target (directory or symlink)
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.stat.path }}"
|
path: "{{ item.stat.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when:
|
when:
|
||||||
@@ -215,8 +216,8 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.item.to }}"
|
label: "{{ item.item.to }}"
|
||||||
|
|
||||||
- name: deploy dotfiles templates
|
- name: Deploy dotfiles templates
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: /var/lib/dotfiles/{{ item.from }}.j2
|
src: /var/lib/dotfiles/{{ item.from }}.j2
|
||||||
dest: "/home/{{ user.name }}/{{ item.to }}"
|
dest: "/home/{{ user.name }}/{{ item.to }}"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
@@ -229,35 +230,35 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.to }}"
|
label: "{{ item.to }}"
|
||||||
|
|
||||||
- name: remove dotfiles
|
- name: Remove dotfiles
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: absent
|
state: absent
|
||||||
path: "/home/{{ user.name }}/{{ item }}"
|
path: "/home/{{ user.name }}/{{ item }}"
|
||||||
loop: "{{ dotfiles_remove }}"
|
loop: "{{ dotfiles_remove }}"
|
||||||
|
|
||||||
- name: create directories
|
- name: Create directories
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
with_items:
|
with_items:
|
||||||
- ~/tmp
|
- ~/tmp
|
||||||
|
|
||||||
- name: stat ~/bin
|
- name: Stat ~/bin
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "/home/{{ user.name }}/bin"
|
path: "/home/{{ user.name }}/bin"
|
||||||
register: bin_stat
|
register: bin_stat
|
||||||
check_mode: false
|
check_mode: false
|
||||||
|
|
||||||
- name: remove ~/bin if not a link
|
- name: Remove ~/bin if not a link
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: absent
|
state: absent
|
||||||
path: "/home/{{ user.name }}/bin"
|
path: "/home/{{ user.name }}/bin"
|
||||||
when:
|
when:
|
||||||
- bin_stat.stat.exists
|
- bin_stat.stat.exists
|
||||||
- not bin_stat.stat.islnk
|
- not bin_stat.stat.islnk
|
||||||
|
|
||||||
- name: link bin directory
|
- name: Link bin directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: link
|
state: link
|
||||||
force: true
|
force: true
|
||||||
follow: false
|
follow: false
|
||||||
@@ -266,32 +267,32 @@
|
|||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
group: "{{ user.name }}"
|
group: "{{ user.name }}"
|
||||||
|
|
||||||
- name: vim
|
- name: Vim
|
||||||
tags:
|
tags:
|
||||||
- user:vim
|
- user:vim
|
||||||
block:
|
block:
|
||||||
- name: install vim plugins
|
- name: Install vim plugins
|
||||||
command: nvim --headless +PlugInstall +qall
|
ansible.builtin.command: nvim --headless +PlugInstall +qall
|
||||||
register: vim_plugin_install
|
register: vim_plugin_install
|
||||||
changed_when: vim_plugin_install.stderr != ""
|
changed_when: vim_plugin_install.stderr != ""
|
||||||
|
|
||||||
- name: update vim plugins
|
- name: Update vim plugins
|
||||||
command: nvim --headless +PlugUpdate +qall
|
ansible.builtin.command: nvim --headless +PlugUpdate +qall
|
||||||
register: vim_plugin_update
|
register: vim_plugin_update
|
||||||
changed_when: vim_plugin_update.stderr != ""
|
changed_when: vim_plugin_update.stderr != ""
|
||||||
|
|
||||||
- name: firefox
|
- name: Firefox
|
||||||
tags:
|
tags:
|
||||||
- user:firefox
|
- user:firefox
|
||||||
block:
|
block:
|
||||||
- name: create firefox directories
|
- name: Create firefox directories
|
||||||
firefox_profile:
|
firefox_profile:
|
||||||
name: "{{ item.key }}"
|
name: "{{ item.key }}"
|
||||||
loop: "{{ user.firefox_profiles | dict2items }}"
|
loop: "{{ user.firefox_profiles | dict2items }}"
|
||||||
check_mode: false
|
check_mode: false
|
||||||
register: firefox_profile_names
|
register: firefox_profile_names
|
||||||
|
|
||||||
- set_fact:
|
- ansible.builtin.set_fact:
|
||||||
firefox_preferences:
|
firefox_preferences:
|
||||||
browser.aboutConfig.showWarning: false
|
browser.aboutConfig.showWarning: false
|
||||||
extensions.pocket.enabled: false
|
extensions.pocket.enabled: false
|
||||||
@@ -341,25 +342,25 @@
|
|||||||
# remove ad tracking garbage
|
# remove ad tracking garbage
|
||||||
dom.private-attribution.submission.enabled: false
|
dom.private-attribution.submission.enabled: false
|
||||||
|
|
||||||
- include_role:
|
- ansible.builtin.include_role:
|
||||||
name: firefox
|
name: firefox
|
||||||
vars:
|
vars:
|
||||||
firefox_profiles: "{{ {item.key: item.value} | combine({item.key: {'preferences': firefox_preferences}}, recursive=True) }}"
|
firefox_profiles: "{{ {item.key: item.value} | combine({item.key: {'preferences': firefox_preferences}}, recursive=True) }}"
|
||||||
loop: "{{ user.firefox_profiles | dict2items }}"
|
loop: "{{ user.firefox_profiles | dict2items }}"
|
||||||
when: not ansible_check_mode
|
when: not ansible_check_mode
|
||||||
|
|
||||||
- name: firefox - create chrome directory
|
- name: Firefox - create chrome directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.profile_path }}/chrome/"
|
path: "{{ item.profile_path }}/chrome/"
|
||||||
state: directory
|
state: directory
|
||||||
mode: '0755'
|
mode: "0755"
|
||||||
with_items: "{{ firefox_profile_names.results }}"
|
with_items: "{{ firefox_profile_names.results }}"
|
||||||
when: not ansible_check_mode
|
when: not ansible_check_mode
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.profile_path }}"
|
label: "{{ item.profile_path }}"
|
||||||
|
|
||||||
- name: firefox - configure firefox custom css
|
- name: Firefox - configure firefox custom css
|
||||||
copy:
|
ansible.builtin.copy:
|
||||||
dest: "{{ item.profile_path }}/chrome/userChrome.css"
|
dest: "{{ item.profile_path }}/chrome/userChrome.css"
|
||||||
content: |
|
content: |
|
||||||
#TabsToolbar {
|
#TabsToolbar {
|
||||||
@@ -378,12 +379,12 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.profile_path }}"
|
label: "{{ item.profile_path }}"
|
||||||
|
|
||||||
- name: handle user units
|
- name: Handle user units
|
||||||
tags:
|
tags:
|
||||||
- user:units
|
- user:units
|
||||||
block:
|
block:
|
||||||
- name: link user service files
|
- name: Link user service files
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: link
|
state: link
|
||||||
force: true
|
force: true
|
||||||
follow: false
|
follow: false
|
||||||
@@ -393,12 +394,12 @@
|
|||||||
group: "{{ user.name }}"
|
group: "{{ user.name }}"
|
||||||
with_fileglob: /var/lib/dotfiles/services/*
|
with_fileglob: /var/lib/dotfiles/services/*
|
||||||
|
|
||||||
- name: handle autostart units
|
- name: Handle autostart units
|
||||||
tags:
|
tags:
|
||||||
- user:autostart
|
- user:autostart
|
||||||
block:
|
block:
|
||||||
- name: create systemd user directory
|
- name: Create systemd user directory
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: directory
|
state: directory
|
||||||
path: ~/{{ item }}
|
path: ~/{{ item }}
|
||||||
loop:
|
loop:
|
||||||
@@ -406,8 +407,8 @@
|
|||||||
- .config/systemd/
|
- .config/systemd/
|
||||||
- .config/systemd/user/
|
- .config/systemd/user/
|
||||||
|
|
||||||
- name: link autostart service files
|
- name: Link autostart service files
|
||||||
file:
|
ansible.builtin.file:
|
||||||
state: link
|
state: link
|
||||||
force: true
|
force: true
|
||||||
follow: false
|
follow: false
|
||||||
@@ -417,21 +418,21 @@
|
|||||||
group: "{{ user.name }}"
|
group: "{{ user.name }}"
|
||||||
with_fileglob: /var/lib/dotfiles/autostart/services/*
|
with_fileglob: /var/lib/dotfiles/autostart/services/*
|
||||||
|
|
||||||
- name: get state of autostart.target
|
- name: Get state of autostart.target
|
||||||
stat:
|
ansible.builtin.stat:
|
||||||
path: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
path: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
||||||
register: autostart_target_stat
|
register: autostart_target_stat
|
||||||
|
|
||||||
- name: remove invalid autostart.target
|
- name: Remove invalid autostart.target
|
||||||
file:
|
ansible.builtin.file:
|
||||||
path: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
path: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
||||||
state: absent
|
state: absent
|
||||||
when:
|
when:
|
||||||
- autostart_target_stat.stat.exists
|
- autostart_target_stat.stat.exists
|
||||||
- not autostart_target_stat.stat.isreg
|
- not autostart_target_stat.stat.isreg
|
||||||
|
|
||||||
- name: deploy autostart.target
|
- name: Deploy autostart.target
|
||||||
template:
|
ansible.builtin.template:
|
||||||
src: ./autostart/autostart.target.j2
|
src: ./autostart/autostart.target.j2
|
||||||
dest: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
dest: "/home/{{ user.name }}/.config/systemd/user/autostart.target"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
@@ -439,20 +440,19 @@
|
|||||||
force: true
|
force: true
|
||||||
follow: false
|
follow: false
|
||||||
|
|
||||||
- name: gpg
|
- name: Gpg
|
||||||
tags:
|
tags:
|
||||||
- user:gpg
|
- user:gpg
|
||||||
|
when: user.gpg_key is defined
|
||||||
block:
|
block:
|
||||||
- name: import gpg key
|
- name: Import gpg key
|
||||||
command: gpg --import ./gpgkeys/{{ user.gpg_key.email }}.gpg.asc
|
ansible.builtin.command: gpg --import ./gpgkeys/{{ user.gpg_key.email }}.gpg.asc
|
||||||
register: gpg_import_output
|
register: gpg_import_output
|
||||||
changed_when: not ("unchanged" in gpg_import_output.stderr)
|
changed_when: not ("unchanged" in gpg_import_output.stderr)
|
||||||
|
|
||||||
- name: trust gpg key
|
- name: Trust gpg key
|
||||||
shell: "gpg --import-ownertrust <<< {{ user.gpg_key.fingerprint }}:6"
|
ansible.builtin.shell: "gpg --import-ownertrust <<< {{ user.gpg_key.fingerprint }}:6"
|
||||||
args:
|
args:
|
||||||
executable: /bin/bash # required for <<<
|
executable: /bin/bash # required for <<<
|
||||||
register: gpg_trust_output
|
register: gpg_trust_output
|
||||||
changed_when: gpg_trust_output.stderr_lines|length > 0
|
changed_when: gpg_trust_output.stderr_lines|length > 0
|
||||||
|
|
||||||
when: user.gpg_key is defined
|
|
||||||
|
|||||||
Reference in New Issue
Block a user