diff --git a/ansible/roles/base/files/cleanup_temporary_files b/ansible/roles/base/files/cleanup_temporary_files new file mode 100644 index 0000000..dd30936 --- /dev/null +++ b/ansible/roles/base/files/cleanup_temporary_files @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# +# Delete temporary files on entire disk +find / -type f -name '*.orig' -delete -or -name '*~' -delete diff --git a/ansible/roles/base/files/git_find_merged_branches b/ansible/roles/base/files/git_find_merged_branches new file mode 100644 index 0000000..4b9248f --- /dev/null +++ b/ansible/roles/base/files/git_find_merged_branches @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# +# + +git checkout -q master && git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch; do mergeBase=$(git merge-base master $branch) && [[ $(git cherry master $(git commit-tree $(git rev-parse "$branch^{tree}") -p $mergeBase -m _)) == "-"* ]] && echo "$branch"; done diff --git a/ansible/roles/base/files/mount_disk_image b/ansible/roles/base/files/mount_disk_image new file mode 100644 index 0000000..cd1a756 --- /dev/null +++ b/ansible/roles/base/files/mount_disk_image @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# +# Mount a full-disk image as a loopback device so you can mount individual partitions from inside of it. +set -euo pipefail +IFS=$'\n\t' +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +udisksctl loop-setup -r -f "$1" diff --git a/ansible/roles/base/files/rsyncclone b/ansible/roles/base/files/rsyncclone new file mode 100644 index 0000000..c8daa3a --- /dev/null +++ b/ansible/roles/base/files/rsyncclone @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# +# Wrapper to set rsync flags for cloning a folder preserving attributes +set -euo pipefail +IFS=$'\n\t' +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +exec rsync -aHAXS "$@" diff --git a/ansible/roles/base/tasks/common.yaml b/ansible/roles/base/tasks/common.yaml index f00fdd2..52346a2 100644 --- a/ansible/roles/base/tasks/common.yaml +++ b/ansible/roles/base/tasks/common.yaml @@ -12,6 +12,13 @@ - ncdu - ripgrep - git-crypt + - wget + - htop + - colordiff + - ipcalc + - kdiff3 + - tcpdump + - moreutils # for ts [%Y-%m-%d %H:%M:%.S] state: present - name: Set timezone @@ -32,6 +39,12 @@ loop: - src: git_branches_by_owner_time dest: /usr/local/bin/git_branches_by_owner_time + - src: rsyncclone + dest: /usr/local/bin/rsyncclone + - src: git_find_merged_branches + dest: /usr/local/bin/git_find_merged_branches + - src: cleanup_temporary_files + dest: /usr/local/bin/cleanup_temporary_files - import_tasks: tasks/freebsd.yaml when: 'os_flavor == "freebsd"' diff --git a/ansible/roles/base/tasks/linux.yaml b/ansible/roles/base/tasks/linux.yaml index 87a5ea1..d710f1e 100644 --- a/ansible/roles/base/tasks/linux.yaml +++ b/ansible/roles/base/tasks/linux.yaml @@ -2,4 +2,36 @@ package: name: - psmisc + - pkgfile + - linux-firmware + - bind # dig state: present + +- name: Start pkgfile update service + systemd: + state: started + name: pkgfile-update.timer + daemon_reload: yes + enabled: yes + +# Of questionable value since I don't use swap on my machines +- name: Configure sysctls for swap + sysctl: + name: "{{ item.name }}" + value: "{{ item.value }}" + state: present + sysctl_file: /etc/sysctl.d/swap.conf + with_items: + - name: vm.swappiness + value: 10 + +- name: Install scripts + copy: + src: "files/{{ item.src }}" + dest: "{{ item.dest }}" + mode: 0755 + owner: root + group: wheel + loop: + - src: mount_disk_image + dest: /usr/local/bin/mount_disk_image