Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
f122b06697 | |||
588bc932de | |||
25b59beb72 | |||
b07a77fa8f | |||
b599fcc34f | |||
d73c2e0273 | |||
f018fd5bfc | |||
ab2dc0a6d0 | |||
039b55363f | |||
34354d4ea6 |
@@ -3,6 +3,7 @@ packages_linux_common_all_families:
|
||||
- 'bc'
|
||||
- 'btop'
|
||||
- 'dosfstools'
|
||||
- 'dhcping'
|
||||
- 'fping'
|
||||
- 'git'
|
||||
- 'iperf3'
|
||||
@@ -19,9 +20,11 @@ packages_linux_common_all_families:
|
||||
- 'pigz'
|
||||
- 'pv'
|
||||
- 'rsync'
|
||||
- 'stress-ng'
|
||||
- 'swaks'
|
||||
- 'tcpdump'
|
||||
- 'tmux'
|
||||
- 'traceroute'
|
||||
- 'tree'
|
||||
- 'unzip'
|
||||
- 'wget'
|
||||
@@ -45,6 +48,7 @@ packages_linux_paru_archlinux:
|
||||
packages_linux_common_debian:
|
||||
- 'apt-file'
|
||||
- 'bind9-dnsutils'
|
||||
- 'debconf-utils'
|
||||
- 'exa'
|
||||
- 'flent'
|
||||
- 'gdisk'
|
||||
@@ -52,3 +56,46 @@ packages_linux_common_debian:
|
||||
- 'netcat-openbsd'
|
||||
- 'unattended-upgrades'
|
||||
- 'xxd'
|
||||
|
||||
package_config:
|
||||
- name: 'tmux'
|
||||
global_config_file: '/etc/tmux.conf'
|
||||
marker: 'sane defaults'
|
||||
global_config: |
|
||||
# Renumber windows when one is deleted
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Enable mouse control (clickable windows, panes, resizable panes)
|
||||
set -g mouse on
|
||||
- name: 'git'
|
||||
global_config_file: '/etc/gitconfig'
|
||||
marker: 'sane defaults'
|
||||
global_config: |
|
||||
[alias]
|
||||
# https://stackoverflow.com/a/30998048
|
||||
# Find merge that contains a given commit
|
||||
find-merge = "!sh -c 'commit=$0 && branch=${1:-HEAD} && (git rev-list $commit..$branch --ancestry-path | cat -n; git rev-list $commit..$branch --first-parent | cat -n) | sort -k2 -s | uniq -f1 -d | sort -n | tail -1 | cut -f2'"
|
||||
|
||||
# https://stackoverflow.com/a/30998048
|
||||
# Show merge commit msg and other details of merge commit
|
||||
# that contains a given commit
|
||||
show-merge = "!sh -c 'merge=$(git find-merge $0 $1) && [ -n \"$merge\" ] && git show $merge'"
|
||||
|
||||
# https://stackoverflow.com/a/23508223
|
||||
# Show all commits that are part of a merge commit
|
||||
log-merge = "!f() { git log --stat \"$1^..$1\"; }; f"
|
||||
|
||||
tmux_global_config_file: '/etc/tmux.conf'
|
||||
tmux_global_config_resurrect: |
|
||||
# Auto-load tmux-resurrect
|
||||
# prefix + Ctrl-s - save
|
||||
# prefix + Ctrl-r - restore
|
||||
run-shell /usr/share/tmux-resurrect/resurrect.tmux
|
||||
|
||||
# Restore pane content (not just running commands)
|
||||
# This will e.g. show the last 'ls' output you did in a pane
|
||||
set -g @resurrect-capture-pane-contents 'on'
|
||||
|
||||
# Restore a few additional processes beyond the conservative default of
|
||||
# vi vim nvim emacs man less more tail top htop irssi weechat mutt
|
||||
set -g @resurrect-processes 'btop journalctl ncdu watch'
|
||||
|
11
files/etc/pacman.d/repo-local-aur.conf
Normal file
11
files/etc/pacman.d/repo-local-aur.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
[options]
|
||||
# This 'CacheDir' is the second one in our 'pacman.conf' file once we 'Include =' this file into it. The default dir at
|
||||
# '/var/cache/pacman/pkg/' is not writable for unprivileged users. Pacman checks for the first writable cache when
|
||||
# deciding where to store newly built packages. Thus all official packages keep ending up in '/var/cache/pacman/pkg/'
|
||||
# while all AUR packages automatically end up at '/var/cache/aur/pkg/'.
|
||||
CacheDir = /var/cache/aur/pkg/
|
||||
|
||||
[local-aur]
|
||||
SigLevel = PackageOptional DatabaseOptional
|
||||
Server = file:///var/cache/aur/pkg
|
174
tasks/arch-linux-local-aur-repo-chroot.yml
Normal file
174
tasks/arch-linux-local-aur-repo-chroot.yml
Normal file
@@ -0,0 +1,174 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
- name: 'If Arch Linux make sure devtools dependency is installed'
|
||||
ansible.builtin.package:
|
||||
name: 'devtools'
|
||||
state: 'present'
|
||||
|
||||
- name: 'If Arch Linux check if ZFS functional'
|
||||
register: 'role_common_packages__archlinux_zfs_paru_chroot_os_has_functional_zfs'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.shell: |
|
||||
zpool list
|
||||
|
||||
- name: 'If Arch Linux and if ZFS functional check if paru chroot dataset exists'
|
||||
when: 'role_common_packages__archlinux_zfs_paru_chroot_os_has_functional_zfs.rc == 0'
|
||||
register: 'role_common_packages__archlinux_zfs_paru_chroot_dataset_present'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.shell: |
|
||||
zfs list zpool/root/archlinux/var/cache/paru/chroot
|
||||
|
||||
- name: 'If Arch Linux and if no paru chroot /dataset/ present check if a chroot /dir/ exists'
|
||||
when: 'role_common_packages__archlinux_zfs_paru_chroot_dataset_present.rc > 0'
|
||||
register: 'role_common_packages__archlinux_zfs_paru_chroot_dir_stat'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.stat:
|
||||
path: '/var/cache/paru/chroot'
|
||||
|
||||
- name: 'If Arch Linux and if a paru chroot dir exists move it out of the way'
|
||||
when: '(role_common_packages__archlinux_zfs_paru_chroot_dataset_present.rc > 0) and (role_common_packages__archlinux_zfs_paru_chroot_dir_stat.stat.isdir is defined and role_common_packages__archlinux_zfs_paru_chroot_dir_stat.stat.isdir)'
|
||||
register: 'role_common_packages__archlinux_zfs_paru_chroot_dir_was_moved'
|
||||
changed_when: 'role_common_packages__archlinux_zfs_paru_chroot_dir_was_moved.rc == 0'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
mv ''/var/cache/paru/chroot''{,''.bak''}
|
||||
removes: '/var/cache/paru/chroot'
|
||||
creates: '/var/cache/paru/chroot.bak'
|
||||
|
||||
- name: 'If Arch Linux and if no paru chroot dataset exists create dataset'
|
||||
when: 'role_common_packages__archlinux_zfs_paru_chroot_dataset_present.rc > 0'
|
||||
register: 'role_common_packages__archlinux_zfs_paru_chroot_dataset_was_created'
|
||||
changed_when: 'role_common_packages__archlinux_zfs_paru_chroot_dataset_was_created.rc == 0'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
if ! zfs list zpool/root/archlinux/var &>/dev/null; then zfs create -o canmount=off -o space.quico:auto-snapshot=- zpool/root/archlinux/var; fi && \
|
||||
if ! zfs list zpool/root/archlinux/var/cache &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache; fi && \
|
||||
if ! zfs list zpool/root/archlinux/var/cache/paru &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache/paru; fi && \
|
||||
zfs create zpool/root/archlinux/var/cache/paru/chroot
|
||||
|
||||
- name: 'If Arch Linux and if a paru chroot dataset now exists and if paru chroot dir was moved out of the way move it back in place'
|
||||
when: '(role_common_packages__archlinux_zfs_paru_chroot_dir_was_moved.rc is defined and role_common_packages__archlinux_zfs_paru_chroot_dir_was_moved.rc == 0) and (role_common_packages__archlinux_zfs_paru_chroot_dataset_was_created.rc == 0)'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
rsync -a --remove-source-files ''/var/cache/paru/chroot''{''.bak'',}''/'' && \
|
||||
find ''/var/cache/paru/chroot.bak'' -type d -empty -delete
|
||||
removes: '/var/cache/paru/chroot.bak'
|
||||
|
||||
- name: 'If Arch Linux and if ZFS functional check if AUR package cache dataset exists'
|
||||
when: 'role_common_packages__archlinux_zfs_paru_chroot_os_has_functional_zfs.rc == 0'
|
||||
register: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_present'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.shell: |
|
||||
zfs list zpool/root/archlinux/var/cache/aur/pkg
|
||||
|
||||
- name: 'If Arch Linux and if no AUR package cache /dataset/ present check if a chroot /dir/ exists'
|
||||
when: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_present.rc > 0'
|
||||
register: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dir_stat'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.stat:
|
||||
path: '/var/cache/aur/pkg'
|
||||
|
||||
- name: 'If Arch Linux and if an AUR package cache dir exists move it out of the way'
|
||||
when: '(role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_present.rc > 0) and (role_common_packages__archlinux_zfs_aur_pkg_cache_dir_stat.stat.isdir is defined and role_common_packages__archlinux_zfs_aur_pkg_cache_dir_stat.stat.isdir)'
|
||||
register: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dir_was_moved'
|
||||
changed_when: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dir_was_moved.rc == 0'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
mv ''/var/cache/aur/pkg''{,''.bak''}
|
||||
removes: '/var/cache/aur/pkg'
|
||||
creates: '/var/cache/aur/pkg.bak'
|
||||
|
||||
- name: 'If Arch Linux and if no AUR package cache dataset exists create dataset'
|
||||
when: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_present.rc > 0'
|
||||
register: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_was_created'
|
||||
changed_when: 'role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_was_created.rc == 0'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
if ! zfs list zpool/root/archlinux/var &>/dev/null; then zfs create -o canmount=off -o space.quico:auto-snapshot=- zpool/root/archlinux/var; fi && \
|
||||
if ! zfs list zpool/root/archlinux/var/cache &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache; fi && \
|
||||
if ! zfs list zpool/root/archlinux/var/cache/aur &>/dev/null; then zfs create -o canmount=off zpool/root/archlinux/var/cache/aur; fi && \
|
||||
zfs create zpool/root/archlinux/var/cache/aur/pkg
|
||||
|
||||
- name: 'If Arch Linux and if a AUR package cache dataset now exists and if AUR package cache dir was moved out of the way move it back in place'
|
||||
when: '(role_common_packages__archlinux_zfs_aur_pkg_cache_dir_was_moved.rc is defined and role_common_packages__archlinux_zfs_aur_pkg_cache_dir_was_moved.rc == 0) and (role_common_packages__archlinux_zfs_aur_pkg_cache_dataset_was_created.rc == 0)'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
rsync -a --remove-source-files ''/var/cache/aur/pkg''{''.bak'',}''/'' && \
|
||||
find ''/var/cache/aur/pkg.bak'' -type d -empty -delete
|
||||
removes: '/var/cache/aur/pkg.bak'
|
||||
|
||||
- name: 'If Arch Linux set global write perms (0777) on AUR package cache dir ''/var/cache/aur/pkg'''
|
||||
ansible.builtin.file:
|
||||
path: '/var/cache/aur/pkg'
|
||||
mode: '0777'
|
||||
|
||||
- name: 'If Arch Linux copy local AUR repo config file'
|
||||
ansible.builtin.copy:
|
||||
src: 'etc/pacman.d/repo-local-aur.conf'
|
||||
dest: '/etc/pacman.d/repo-local-aur.conf'
|
||||
|
||||
- name: 'If Arch Linux include local AUR repo config in main pacman config'
|
||||
loop_control:
|
||||
loop_var: 'pacman_opt'
|
||||
index_var: 'i'
|
||||
label: 'Set ''{{ pacman_opt.name }}'' to ''{{ pacman_opt.value }}'', this {{ pacman_opt.purpose_human_readable }}'
|
||||
loop:
|
||||
- { name: 'CacheDir', value: '/var/cache/pacman/pkg/', exclusive: false, purpose_human_readable: 'adds an AUR-specific cache dir (since we make this one user-writable)' }
|
||||
- { name: 'Include', value: '/etc/pacman.d/repo-local-aur.conf', exclusive: false, purpose_human_readable: 'adds our local AUR repo' }
|
||||
community.general.ini_file:
|
||||
path: '/etc/pacman.conf'
|
||||
section: 'options'
|
||||
option: '{{ pacman_opt.name }}'
|
||||
value: '{{ pacman_opt.value }}'
|
||||
exclusive: '{{ pacman_opt.exclusive }}'
|
||||
|
||||
- name: 'If Arch Linux set ''/etc/paru.conf'' settings for local repo chroot AUR builds'
|
||||
loop_control:
|
||||
loop_var: 'paru_option'
|
||||
index_var: 'i'
|
||||
label: 'Set ''{{ paru_option.name }}'' {% if paru_option.value %}to ''{{ paru_option.value }}''{% else %}without a value{% endif %}, {{ paru_option.purpose_human_readable }}'
|
||||
loop:
|
||||
- { name: 'LocalRepo', value: '', allow_no_value: true, purpose_human_readable: 'this builds AUR packages into the local repo(s) specified in ''/etc/pacman.conf''' }
|
||||
- { name: 'Chroot', value: '/var/cache/paru/chroot', allow_no_value: false, purpose_human_readable: 'this builds AUR packages in a clean chroot' }
|
||||
community.general.ini_file:
|
||||
path: '/etc/paru.conf'
|
||||
section: 'options'
|
||||
option: '{{ paru_option.name }}'
|
||||
value: '{{ paru_option.value }}'
|
||||
allow_no_value: '{{ paru_option.allow_no_value }}'
|
||||
|
||||
- name: 'If Arch Linux initialize local AUR repo'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
paru -Ly
|
||||
|
||||
- name: 'If Arch Linux remove package ''paru-bin-debug'''
|
||||
ansible.builtin.package:
|
||||
name: 'paru-bin-debug'
|
||||
state: 'absent'
|
||||
|
||||
- name: 'If Arch Linux check if any non-local AUR packages remain to be moved into our local AUR repo'
|
||||
register: 'role_common_packages__archlinux_zfs_aur_pkg_cache_non_local_pkgs'
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
comm -23 <(paru -Qem | awk '{print $1}' | sort) <(paru -Ll | awk '{ print $2 }' | sort)
|
||||
|
||||
- name: 'If Arch Linux and if any non-local AUR packages exist move non-local AUR packages into local AUR repo'
|
||||
become: 'yes'
|
||||
become_user: 'build'
|
||||
loop_control:
|
||||
loop_var: 'pkg'
|
||||
index_var: 'i'
|
||||
label: 'Move pkg into local AUR repo: ''{{ pkg }}'''
|
||||
loop: '{{ role_common_packages__archlinux_zfs_aur_pkg_cache_non_local_pkgs.stdout_lines }}'
|
||||
ansible.builtin.shell:
|
||||
cmd: |
|
||||
paru -S --noconfirm '{{ pkg }}';
|
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# This file adds config blocks to files that are dependent on a single package
|
||||
# being present. If for example the 'git' package is present we want content in
|
||||
# Git's global '/etc/gitconfig' file. If the package is absent that file content
|
||||
# is removed. If after that the file is empty (i.e. has a size of 0 bytes) the
|
||||
# file is deleted.
|
||||
|
||||
- name: 'Add per-package config'
|
||||
when: 'pkg.name in ansible_facts.packages'
|
||||
loop_control:
|
||||
loop_var: 'pkg'
|
||||
label: 'If ''{{ pkg.name }}'' package is present set system-wide config in ''{{ pkg.global_config_file }}'''
|
||||
loop: '{{ package_config }}'
|
||||
ansible.builtin.blockinfile:
|
||||
marker: '# {mark} ANSIBLE MANAGED BLOCK - {{ pkg.name }} {{ pkg.marker }}'
|
||||
path: '{{ pkg.global_config_file }}'
|
||||
append_newline: true
|
||||
prepend_newline: true
|
||||
state: 'present'
|
||||
create: true
|
||||
block: '{{ pkg.global_config }}'
|
||||
|
||||
- name: 'Get stats of global config files'
|
||||
register: 'role_common_packages__global_config_file_stats'
|
||||
loop_control:
|
||||
loop_var: 'pkg'
|
||||
label: 'Get stats of ''{{ pkg.name }}'' system-wide config file ''{{ pkg.global_config_file }}'''
|
||||
loop: '{{ package_config }}'
|
||||
ansible.builtin.stat:
|
||||
path: '{{ pkg.global_config_file }}'
|
||||
|
||||
- name: 'Remove per-package config'
|
||||
when: 'stat_result.pkg.name not in ansible_facts.packages'
|
||||
loop_control:
|
||||
loop_var: 'stat_result'
|
||||
label: 'If ''{{ stat_result.pkg.name }}'' package is absent and system-wide config file ''{{ stat_result.pkg.global_config_file }}'' is present remove config file'
|
||||
loop: '{{ role_common_packages__global_config_file_stats.results }}'
|
||||
ansible.builtin.file:
|
||||
path: '{{ stat_result.pkg.global_config_file }}'
|
||||
state: 'absent'
|
31
tasks/base-package-auxiliary-settings-tmux.yml
Normal file
31
tasks/base-package-auxiliary-settings-tmux.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
- name: 'If Arch Linux and if ''tmux-resurrect'' and ''tmux'' packages are present auto-load tmux-resurrect on tmux start system-wide'
|
||||
when: '(ansible_facts[''os_family''] | lower == ''archlinux'') and (''tmux-resurrect'' in ansible_facts.packages) and (''tmux'' in ansible_facts.packages)'
|
||||
ansible.builtin.blockinfile:
|
||||
marker: '# {mark} ANSIBLE MANAGED BLOCK - tmux-resurrect'
|
||||
path: '{{ tmux_global_config_file }}'
|
||||
append_newline: true
|
||||
prepend_newline: true
|
||||
state: 'present'
|
||||
create: true
|
||||
block: '{{ tmux_global_config_resurrect }}'
|
||||
|
||||
- name: 'If Arch Linux and ''tmux-resurrect'' package is absent never auto-load tmux-resurrect on tmux start system-wide'
|
||||
when: '(ansible_facts[''os_family''] | lower == ''archlinux'') and (''tmux-resurrect'' not in ansible_facts.packages)'
|
||||
ansible.builtin.blockinfile:
|
||||
marker: '# {mark} ANSIBLE MANAGED BLOCK - tmux-resurrect'
|
||||
path: '{{ tmux_global_config_file }}'
|
||||
state: 'absent'
|
||||
block: '{{ tmux_global_config_resurrect }}'
|
||||
|
||||
- name: 'Get stats of ''{{ tmux_global_config_file }}'''
|
||||
ansible.builtin.stat:
|
||||
path: '{{ tmux_global_config_file }}'
|
||||
register: 'role_common_packages__tmux_global_config_file_stats'
|
||||
|
||||
- name: 'If ''{{ tmux_global_config_file }}'' is 0 bytes delete it'
|
||||
when: 'role_common_packages__tmux_global_config_file_stats.stat.size == 0'
|
||||
ansible.builtin.file:
|
||||
path: '{{ tmux_global_config_file }}'
|
||||
state: 'absent'
|
||||
|
3
tasks/base-package-auxiliary-settings.yml
Normal file
3
tasks/base-package-auxiliary-settings.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
- import_tasks: 'base-package-auxiliary-settings-tmux.yml'
|
||||
- import_tasks: 'base-package-auxiliary-settings-single-package-single-config.yml'
|
23
tasks/base-packages.yml
Normal file
23
tasks/base-packages.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
- name: 'Gather package facts'
|
||||
ansible.builtin.package_facts:
|
||||
manager: 'auto'
|
||||
|
||||
- name: 'If OS is a Linux flavor install Linux-specific packages'
|
||||
when: 'ansible_facts[''system''] | lower == ''linux'''
|
||||
ansible.builtin.package:
|
||||
name: '{{ packages_linux_common_all_families }}'
|
||||
state: 'present'
|
||||
|
||||
- name: 'If ''os_family'' is ''{{ ansible_facts[''os_family''] | lower }}'' install {{ ansible_facts[''os_family''] | lower }}-specific packages'
|
||||
ansible.builtin.package:
|
||||
name: '{{ vars[''packages_linux_common_'' + ansible_facts[''os_family''] | lower] }}'
|
||||
state: 'present'
|
||||
|
||||
- name: 'If Arch Linux install Arch User Repository (AUR) packages'
|
||||
when: 'ansible_facts[''os_family''] | lower == ''archlinux'''
|
||||
kewlfft.aur.aur:
|
||||
name: '{{ packages_linux_paru_archlinux }}'
|
||||
state: 'present'
|
||||
become: 'yes'
|
||||
become_user: 'build'
|
@@ -1,22 +1,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
- name: 'If OS is a Linux flavor install Linux-specific packages'
|
||||
when: 'ansible_facts[''system''] | lower == ''linux'''
|
||||
ansible.builtin.package:
|
||||
name: '{{ packages_linux_common_all_families }}'
|
||||
state: 'present'
|
||||
|
||||
- name: 'If ''os_family'' is ''{{ ansible_facts[''os_family''] | lower }}'' install {{ ansible_facts[''os_family''] | lower }}-specific packages'
|
||||
ansible.builtin.package:
|
||||
name: '{{ vars[''packages_linux_common_'' + ansible_facts[''os_family''] | lower] }}'
|
||||
state: 'present'
|
||||
|
||||
- name: 'If Arch Linux install Arch User Repository (AUR) packages'
|
||||
- import_tasks: 'base-packages.yml'
|
||||
- import_tasks: 'base-package-auxiliary-settings.yml'
|
||||
- import_tasks: 'arch-linux-local-aur-repo-chroot.yml'
|
||||
when: 'ansible_facts[''os_family''] | lower == ''archlinux'''
|
||||
kewlfft.aur.aur:
|
||||
name: '{{ packages_linux_paru_archlinux }}'
|
||||
state: 'present'
|
||||
become: 'yes'
|
||||
become_user: 'build'
|
||||
|
||||
- import_tasks: 'maintenance-unattended-upgrades.yml'
|
||||
when: 'ansible_facts[''os_family''] | lower == ''debian'''
|
||||
|
@@ -27,6 +27,6 @@
|
||||
path: '/etc/aliases'
|
||||
insertafter: 'EOF'
|
||||
regexp: '^root:.*'
|
||||
line: 'root: {{ e_mail_notifications_addressee }}'
|
||||
line: 'root: {{ landscape_quico__e_mail_default_recipient_addr_spec }}'
|
||||
notify:
|
||||
- 'Ensure that a Mail Transfer Agent is running with newest config'
|
||||
|
Reference in New Issue
Block a user