15 Commits

Author SHA1 Message Date
me 8e46cb16a5 arch, change checks for Archlinux to looking for pacman in case forks decide to use their own name in the future. 2026-08-05 16:21:41 -07:00
me 785db7e893 setup, if BRANCH is already set, don't use main. 2026-08-05 15:40:35 -07:00
me 94431dff43 setup, refactor and reword a few sections, especially related to the getopts and hosts file. 2026-08-05 14:12:29 -07:00
me dcf4b3d451 setup, handle the lowercase branch variable more properly. 2026-08-05 13:40:21 -07:00
me 58f5f13b28 bash env, change how Firefox is found. 2026-08-05 13:29:31 -07:00
me fe022d7a9c setup, lowercase branch was not being set properly due to scope. 2026-08-05 12:38:28 -07:00
me 0ef5e0cc6a bash env, only run the keymap command if the X session is set. 2026-08-05 12:30:53 -07:00
me ccabad9c30 packages, move base-devel to general in the task section. 2026-08-05 12:25:02 -07:00
me f83fe61296 packages, move base-devel to general in the task section, indent all the lists. 2026-08-05 12:22:01 -07:00
me da9c34a9da base-devel, move back to General, it's for AUR which is done for all pacman-using devices. 2026-08-04 18:06:13 -07:00
me 8c3c3fb381 msmtp, mta version does not exist on Fedora. 2026-08-04 18:02:53 -07:00
me d617334a54 locate, put value back for apt. 2026-08-04 18:00:28 -07:00
me 52c6dba409 dig, add package name for OpenSUSE and Fedora. 2026-08-04 17:32:42 -07:00
me 21d69f230b README, update the supported distro list. 2026-08-04 17:23:25 -07:00
me 3a815d319c fedora, change all package managers to use fastfetch. 2026-08-04 17:23:02 -07:00
8 changed files with 114 additions and 83 deletions
+11 -7
View File
@@ -19,28 +19,32 @@ This information is as of 2025-11-21.
These are the operating systems used as my daily driver. These are the operating systems used as my daily driver.
#### Artix (`runit`)
2026-08-04: Completed adapting playbooks and now using this as a daily driver.
2026-07-31: Began experimenting and adapting playbooks using VMs.
#### Debian Trixie #### Debian Trixie
This has been used as my primary server and workstation OS since at least 2024. This has been used as my primary server and workstation OS since at least 2024.
The `apt` version of `ansible` in both Bookworm and Trixie are sufficient, The `apt` version of `ansible` in both Bookworm and Trixie are sufficient,
no longer need to use `ansible` out of `pip`. no longer need to use `ansible` out of `pip`.
Stopped using as a workstation on all devices in August 2026. Stopped using as a workstation on all devices in August 2026.
#### Devuan (with `runit`) #### Devuan (`runit`)
2026-07-30: Distribution has beed added with a few caveats. 2026-07-30: Distribution has beed added with a few caveats.
- `runit` is the currently the expected init system (not OpenRC or SysVInit) - `runit` is the currently the expected init system (not OpenRC or SysVInit)
- Mullvad needs installed via .dev file [here](). - Mullvad needs installed via .dev file [TBD: link here]().
#### Artix Linux (OpenRC or runit)
2026-07-31: Began experimenting and adapting playbooks using VMs.
### Secondary ### Secondary
These are tested via my Docker project's `ProvisionsTests` container but not currently used as daily drivers. These are tested via my Docker project's `ProvisionsTests` containers
but not currently used as daily drivers. [TBD: Link]()
#### Arch #### Arch
+8 -3
View File
@@ -10,13 +10,15 @@
nethogs: nethogs nethogs: nethogs
ntp_server: chrony ntp_server: chrony
dig: dig dig: dig
neofetch: neofetch neofetch: fastfetch
lightdm: lightdm lightdm: lightdm
sddm: sddm sddm: sddm
tmux: tmux tmux: tmux
base_devel: htop # Placeholder for Arch package.
sendmail: msmtp sendmail: msmtp
sendmail_mta: msmtp-mta sendmail_mta: msmtp-mta
ca_certificates: ca-certificates ca_certificates: ca-certificates
locate: mlocate
- name: General | Facts | Package | Parrot OS Fixes - name: General | Facts | Package | Parrot OS Fixes
set_fact: set_fact:
@@ -33,7 +35,6 @@
cron: cron cron: cron
encfs: encfs encfs: encfs
dig: dnsutils dig: dnsutils
neofetch: fastfetch
when: ansible_pkg_mgr == "apt" when: ansible_pkg_mgr == "apt"
- name: General | Facts | Package | pacman - name: General | Facts | Package | pacman
@@ -45,6 +46,7 @@
cron: cronie cron: cronie
encfs: encfs encfs: encfs
dig: bind dig: bind
base_devel: base-devel
when: ansible_pkg_mgr == "pacman" when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Package | FreeBSD - name: General | Facts | Package | FreeBSD
@@ -59,7 +61,7 @@
encfs: fusefs-encfs encfs: fusefs-encfs
when: ansible_system == "FreeBSD" when: ansible_system == "FreeBSD"
- name: General | Facts | Package | dnf (Fixes) # TBD: Fix + test package names: mlocate, dig, neofetch - name: General | Facts | Package | dnf (Fixes)
set_fact: set_fact:
ansible_pkg_mgr: dnf ansible_pkg_mgr: dnf
when: ansible_pkg_mgr in ("dnf5") when: ansible_pkg_mgr in ("dnf5")
@@ -73,6 +75,8 @@
microcode_intel: microcode_ctl microcode_intel: microcode_ctl
cron: cronie cron: cronie
encfs: fuse-encfs encfs: fuse-encfs
dig: bind-utils
sendmail_mta: msmtp
when: ansible_pkg_mgr == "dnf" when: ansible_pkg_mgr == "dnf"
- name: General | Facts | Package | zypper - name: General | Facts | Package | zypper
@@ -83,6 +87,7 @@
microcode_intel: ucode-intel microcode_intel: ucode-intel
cron: cronie cron: cronie
encfs: encfs encfs: encfs
dig: bind-utils
when: ansible_pkg_mgr == "zypper" when: ansible_pkg_mgr == "zypper"
+1 -1
View File
@@ -21,7 +21,7 @@
set_fact: set_fact:
crond: cronie crond: cronie
crond_pattern: cronie crond_pattern: cronie
when: ansible_distribution in ("Archlinux") when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Service | Fedora - name: General | Facts | Service | Fedora
set_fact: set_fact:
-2
View File
@@ -27,7 +27,6 @@
sassc: sassc sassc: sassc
ffmpeg: ffmpeg ffmpeg: ffmpeg
wireless_tools: wireless-tools wireless_tools: wireless-tools
base_devel: htop # Placeholder for Arch package.
macbook_wifi_driver: broadcom-sta-dkms macbook_wifi_driver: broadcom-sta-dkms
xz: xz xz: xz
mesa: mesa mesa: mesa
@@ -105,7 +104,6 @@
- name: Workstation | Facts | Package | pacman (All Distros) - name: Workstation | Facts | Package | pacman (All Distros)
set_fact: set_fact:
base_devel: base-devel
macbook_wifi_driver: broadcom-wl-dkms macbook_wifi_driver: broadcom-wl-dkms
android_jdk: jdk-openjdk android_jdk: jdk-openjdk
android_fastboot: android-tools android_fastboot: android-tools
+37 -22
View File
@@ -7,12 +7,23 @@ DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")" PROG="$(basename -- "${BASH_SOURCE[0]}")"
LOCAL=$DIR/local.yml LOCAL=$DIR/local.yml
URL="https://git.hyperling.com/me/env-ansible" URL="https://git.hyperling.com/me/env-ansible"
BRANCH="main" if [[ -z $BRANCH ]]; then
export BRANCH="main"
fi
LINUX_HOSTS_DIR=/etc/ansible
LINUX_HOSTS_FILE="$LINUX_HOSTS_DIR/hosts"
FREEBSD_HOSTS_DIR="/usr/local/etc/ansible"
FREEBSD_HOSTS_FILE="$FREEBSD_HOSTS_DIR/hosts"
HOSTS_DIR="$LINUX_HOSTS_DIR"
HOSTS_FILE="$LINUX_HOSTS_FILE"
config_dir="/usr/local/etc/hyperling-scm" config_dir="/usr/local/etc/hyperling-scm"
general_config="$config_dir/general.ini" general_config="$config_dir/general.ini"
workstation_config="$config_dir/workstation.ini" workstation_config="$config_dir/workstation.ini"
server_config="$config_dir/server.ini" server_config="$config_dir/server.ini"
branch=""
## Functions ## ## Functions ##
@@ -45,10 +56,10 @@ while getopts ":lb:gwsfh" arg; do
case $arg in case $arg in
l) local="Y" && echo "Running $LOCAL as the playbook." ;; l) local="Y" && echo "Running $LOCAL as the playbook." ;;
b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;; b) branch="$OPTARG" && echo "Using branch $branch instead of $BRANCH." ;;
g) create_general="Y" && echo "Requested '$general_config'." ;; g) create_general="Y" && echo "Generating test '$general_config'." ;;
w) create_workstation="Y" && echo "Requested '$workstation_config'." ;; w) create_workstation="Y" && echo "Generating test '$workstation_config'." ;;
s) create_server="Y" && echo "Requested '$server_config'." ;; s) create_server="Y" && echo "Generating test '$server_config'." ;;
f) show_facts="Y" ;; f) show_facts="Y" && echo "Displaying ansible facts then exiting." ;;
h) usage ;; h) usage ;;
*) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;; *) echo "ERROR: Parameter $OPTARG was not recognized." && usage 1 ;;
esac esac
@@ -60,9 +71,13 @@ if [[ ! -z $1 && $1 != "-"* ]]; then
usage 1 usage 1
fi fi
if [[ -z "$local" && "$branch" == "" ]]; then if [[ "$branch" == "" ]]; then
echo "Using default branch $BRANCH."
branch="$BRANCH" branch="$BRANCH"
if [[ -z "$local" ]]; then
echo "Running against default branch '$branch'."
else
echo "Set branch to '$branch'."
fi
fi fi
if [[ -n "$create_general" && -f "$general_config" ]]; then if [[ -n "$create_general" && -f "$general_config" ]]; then
@@ -92,41 +107,41 @@ if [[ `which ansible > /dev/null; echo $?` != 0 ]]; then
if [[ $os == *Debian* || $os == *Ubuntu* || $os == *"Pop!_OS"* || $os == *Mint* || $os == *Parrot* ]]; then if [[ $os == *Debian* || $os == *Ubuntu* || $os == *"Pop!_OS"* || $os == *Mint* || $os == *Parrot* ]]; then
sudo apt update sudo apt update
sudo apt install -y ansible git <<< N sudo apt install -y ansible git <<< N
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *FreeBSD* ]]; then elif [[ $os == *FreeBSD* ]]; then
sudo pkg install -y -g py*-ansible git sudo pkg install -y -g py*-ansible git
sudo mkdir -p /usr/local/etc/ansible HOSTS_DIR="$FREEBSD_HOSTS_DIR"
sudo sh -c 'echo "localhost ansible_connection=local" > /usr/local/etc/ansible/hosts' HOSTS_FILE="$FREEBSD_HOSTS_FILE"
elif [[ $os == *Arch* || $os == *Manjaro* || $os == *Artix* ]]; then elif [[ $os == *Arch* || $os == *Manjaro* || $os == *Artix* ]]; then
sudo pacman -Sy --noconfirm ansible git sudo pacman -Sy --noconfirm ansible git
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *Darwin* ]]; then elif [[ $os == *Darwin* ]]; then
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "TESTING - EXIT!"
exit 0
brew install ansible git brew install ansible git
HOSTS_DIR=""
HOSTS_FILE=""
elif [[ $os == *Fedora* ]]; then elif [[ $os == *Fedora* ]]; then
sudo dnf install -y ansible git python3-libselinux sudo dnf install -y ansible git python3-libselinux
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *openSUSE* ]]; then elif [[ $os == *openSUSE* ]]; then
sudo zypper install -y ansible git sudo zypper install -y ansible git
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
elif [[ $os == *NixOS* ]]; then elif [[ $os == *NixOS* ]]; then
$DIR/files/scripts/nixos.sh -b $branch $DIR/files/scripts/nixos.sh -b $branch
sudo mkdir -p /etc/ansible
sudo sh -c 'echo "localhost ansible_connection=local" > /etc/ansible/hosts'
else else
echo -e "ERROR: OS not detected." echo -e "ERROR: OS not recognized."
echo -e "$os" echo -e "$os"
exit 1 exit 1
fi fi
fi fi
echo "Installed!" echo "Installed!"
if [[ -n $HOSTS_DIR && -n $HOSTS_FILE ]]; then
echo "Ensuring hosts file exists..."
if [[ ! -e $HOSTS_FILE ]]; then
sudo mkdir -pv $HOSTS_DIR
sudo sh -c "echo 'localhost ansible_connection=local' > $HOSTS_FILE"
fi
echo "$HOSTS_FILE: '`cat $HOSTS_FILE`'"
echo "Hosts file created successfully!"
fi
if [[ "$show_facts" == "Y" ]]; then if [[ "$show_facts" == "Y" ]]; then
echo "Showing Ansible Facts" echo "Showing Ansible Facts"
ansible localhost -m setup --connection=local ansible localhost -m setup --connection=local
+14 -5
View File
@@ -16,12 +16,12 @@
backup: yes backup: yes
create: no create: no
state: present state: present
when: ansible_distribution == "Archlinux" when: ansible_pkg_mgr == "pacman"
#- name: General | Account Management | Users | Use ZSH (Arch+Manjaro) #- name: General | Account Management | Users | Use ZSH (Arch+Manjaro)
# set_fact: # set_fact:
# user_shell: "{{ zsh_exec.stdout }}" # user_shell: "{{ zsh_exec.stdout }}"
# when: ansible_distribution == "Archlinux" # when: ansible_pkg_mgr == "pacman"
# #
#- name: General | Account Management | Users | Allow ZSH (Arch) #- name: General | Account Management | Users | Allow ZSH (Arch)
# lineinfile: # lineinfile:
@@ -32,7 +32,7 @@
# backup: yes # backup: yes
# create: no # create: no
# state: present # state: present
# when: ansible_distribution == "Archlinux" # when: ansible_pkg_mgr == "pacman"
## Root ## ## Root ##
@@ -128,8 +128,17 @@
export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin" export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
#export_terminal: export TERMINAL="alacritty" # colors look weird. #export_terminal: export TERMINAL="alacritty" # colors look weird.
export_terminal: export TERMINAL="kitty" export_terminal: export TERMINAL="kitty"
export_browser: export BROWSER="`which firefox || which firefox-esr || which firefox-flatpak`" export_browser: |
keyboard_settings: setxkbmap -layout us -variant altgr-intl function find-firefox {
which firefox 2>/dev/null ||
which firefox-esr 2>/dev/null ||
which firefox-flatpak 2>/dev/null
}
export BROWSER="`find-firefox`"
keyboard_settings: |
if [[ -n "$XDG_SESSION_ID" ]]; then
setxkbmap -layout us -variant altgr-intl
fi
- name: General | Account Management | Users | Files | RC Variables - name: General | Account Management | Users | Files | RC Variables
set_fact: set_fact:
+2 -1
View File
@@ -61,6 +61,7 @@
- "{{ ntp_server }}" - "{{ ntp_server }}"
- "{{ dig }}" - "{{ dig }}"
- "{{ tmux }}" - "{{ tmux }}"
- "{{ base_devel }}"
- "{{ sendmail }}" - "{{ sendmail }}"
- "{{ sendmail_mta }}" - "{{ sendmail_mta }}"
- "{{ ca_certificates }}" - "{{ ca_certificates }}"
@@ -107,7 +108,7 @@
- which - which
- "{{ cron }}" - "{{ cron }}"
state: present state: present
when: ansible_distribution == "Archlinux" when: ansible_pkg_mgr == "pacman"
- name: General | Software | Packages | Install Fix (Looking at you, openSUSE) - name: General | Software | Packages | Install Fix (Looking at you, openSUSE)
package: package:
@@ -38,7 +38,6 @@
- "{{ appimagelauncher }}" - "{{ appimagelauncher }}"
- gparted - gparted
- hugo - hugo
- "{{ base_devel }}"
- "{{ firefox }}" - "{{ firefox }}"
- "{{ firefox_esr }}" - "{{ firefox_esr }}"
- "{{ wireless_tools }}" - "{{ wireless_tools }}"