Compare commits

...
5 Commits
Author SHA1 Message Date
me 2cf83a2fcf zeroclaw, add links to install guides and other details. 2026-10-05 15:27:05 -07:00
me d6dbe38e17 local, add zeroclaw to slow workstation list. 2026-10-05 15:13:12 -07:00
me 813a96c469 local, use FQCN. 2026-10-05 15:12:37 -07:00
me fbe5f54b7f zeroclaw, add initial playbook. 2026-10-05 14:53:03 -07:00
me b1d70789e7 flutter, fix lint issues. 2026-10-05 14:37:38 -07:00
3 changed files with 204 additions and 139 deletions

No files matched your search

+100 -99
View File
@@ -14,8 +14,8 @@
- name: Main | Lock
block:
- include_tasks: tasks/general/tests/lock_check.yml
- include_tasks: tasks/general/tests/lock_create.yml
- ansible.builtin.include_tasks: tasks/general/tests/lock_check.yml
- ansible.builtin.include_tasks: tasks/general/tests/lock_create.yml
####### Gather #######
@@ -23,22 +23,22 @@
- name: Main | Gather
block:
- include_tasks: facts/general/gather.yml
- include_tasks: tasks/general/acct_mgmt/provision_config.yml
- ansible.builtin.include_tasks: facts/general/gather.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/provision_config.yml
- include_tasks: facts/general/system.yml
- include_tasks: facts/general/package.yml
- include_tasks: facts/general/service.yml
- include_tasks: facts/general/user.yml
- ansible.builtin.include_tasks: facts/general/system.yml
- ansible.builtin.include_tasks: facts/general/package.yml
- ansible.builtin.include_tasks: facts/general/service.yml
- ansible.builtin.include_tasks: facts/general/user.yml
- include_tasks: tasks/general/tests/internet_check.yml
- ansible.builtin.include_tasks: tasks/general/tests/internet_check.yml
####### Start #######
- name: Main | Start
block:
- include_tasks: tasks/general/acct_mgmt/notify.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/notify.yml
vars:
notify_message: "Provisioning Started"
@@ -49,34 +49,34 @@
- name: Main | NixOS Setup
block:
- include_tasks: tasks/general/software/nixos.yml
- ansible.builtin.include_tasks: tasks/general/software/nixos.yml
# TBD if we are going to use this many, then just have IF statements
# and use blocks within the General area for NixOS vs not-NixOS.
- include_tasks: tasks/general/software/swap.yml
- ansible.builtin.include_tasks: tasks/general/software/swap.yml
- include_tasks: tasks/general/acct_mgmt/groups.yml
- include_tasks: tasks/general/acct_mgmt/users.yml
- include_tasks: tasks/general/acct_mgmt/sudo.yml
- include_tasks: tasks/general/acct_mgmt/doas.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/groups.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/users.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/sudo.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/doas.yml
- include_tasks: tasks/general/scripts/root.yml
- include_tasks: tasks/general/scripts/user.yml
- include_tasks: tasks/general/scripts/install.yml
- ansible.builtin.include_tasks: tasks/general/scripts/root.yml
- ansible.builtin.include_tasks: tasks/general/scripts/user.yml
- ansible.builtin.include_tasks: tasks/general/scripts/install.yml
- include_tasks: tasks/general/cron/ansible.yml
- ansible.builtin.include_tasks: tasks/general/cron/ansible.yml
# psutil does not work in NixOS. Cannot figure out how to fix it. Maybe
# time to start looking into home-manager but still not wanting to
# maintain two different GNOME setups. HMMMM!
- include_tasks: tasks/workstation/shared/settings/gnome.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/gnome.yml
when: workstation
# Try including these. Really need to get NixOS working with the rest!
#- include_tasks: tasks/general/software/telegraf.yml # "Could not find a module for unknown.""
- include_tasks: tasks/general/tests/services.yml
- include_tasks: tasks/general/tests/lynis.yml
- include_tasks: tasks/general/tests/nmap.yml
#- ansible.builtin.include_tasks: tasks/general/software/telegraf.yml # "Could not find a module for unknown.""
- ansible.builtin.include_tasks: tasks/general/tests/services.yml
- ansible.builtin.include_tasks: tasks/general/tests/lynis.yml
- ansible.builtin.include_tasks: tasks/general/tests/nmap.yml
- name: NixOS | Complete
ansible.builtin.meta: end_play
@@ -89,42 +89,42 @@
- name: Main | General Setup
block:
- include_tasks: tasks/general/software/swap.yml
- include_tasks: tasks/general/software/packages.yml
- ansible.builtin.include_tasks: tasks/general/software/swap.yml
- ansible.builtin.include_tasks: tasks/general/software/packages.yml
when: internet
- include_tasks: tasks/general/software/services.yml
- include_tasks: tasks/general/software/sendmail.yml
- ansible.builtin.include_tasks: tasks/general/software/services.yml
- ansible.builtin.include_tasks: tasks/general/software/sendmail.yml
when: ansible_system == "FreeBSD"
and internet
- include_tasks: tasks/general/software/aur.yml
- ansible.builtin.include_tasks: tasks/general/software/aur.yml
when: internet and ansible_pkg_mgr == "pacman"
# Gather again in case missing programs have now been installed.
- include_tasks: facts/general/gather.yml
- ansible.builtin.include_tasks: facts/general/gather.yml
- include_tasks: tasks/general/settings/keyboard.yml
- ansible.builtin.include_tasks: tasks/general/settings/keyboard.yml
- include_tasks: tasks/general/acct_mgmt/groups.yml
- include_tasks: tasks/general/acct_mgmt/users.yml
- include_tasks: tasks/general/acct_mgmt/sudo.yml
- include_tasks: tasks/general/acct_mgmt/doas.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/groups.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/users.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/sudo.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/doas.yml
when: internet
- include_tasks: tasks/general/software/env-shared.yml
- ansible.builtin.include_tasks: tasks/general/software/env-shared.yml
when: internet
- include_tasks: tasks/general/scripts/root.yml
- include_tasks: tasks/general/scripts/user.yml
- include_tasks: tasks/general/scripts/install.yml
- ansible.builtin.include_tasks: tasks/general/scripts/root.yml
- ansible.builtin.include_tasks: tasks/general/scripts/user.yml
- ansible.builtin.include_tasks: tasks/general/scripts/install.yml
- include_tasks: tasks/general/cron/ansible.yml
- ansible.builtin.include_tasks: tasks/general/cron/ansible.yml
# TODO Need to refactor. Maybe tasks/general/cron/freebsd.yml
- include_tasks: tasks/workstation/freebsd/cron/ansible.yml
- ansible.builtin.include_tasks: tasks/workstation/freebsd/cron/ansible.yml
when: ansible_system == "FreeBSD"
- include_tasks: tasks/general/software/metasploit.yml
- ansible.builtin.include_tasks: tasks/general/software/metasploit.yml
when: internet
when: provision
@@ -135,31 +135,31 @@
- name: Main | Workstation Setup
block:
- include_tasks: facts/workstation/package.yml
- ansible.builtin.include_tasks: facts/workstation/package.yml
## Desktop Environments ##
- include_tasks: tasks/workstation/freebsd/software/gpu.yml
- ansible.builtin.include_tasks: tasks/workstation/freebsd/software/gpu.yml
when: ansible_system == "FreeBSD"
and bsd_gpu
and internet
# Window Managers without true Desktop Environments #
- include_tasks: tasks/workstation/shared/software/dwm.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/software/dwm.yml
when: internet
- include_tasks: tasks/workstation/shared/software/i3.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/software/i3.yml
when: internet
# Polished Desktop Environments #
- include_tasks: tasks/workstation/freebsd/software/gnome.yml
- ansible.builtin.include_tasks: tasks/workstation/freebsd/software/gnome.yml
when: ansible_system == "FreeBSD"
and internet
- name: Main | Workstation | Fancy Desktop Environments
block:
- include_tasks: tasks/workstation/linux/software/gnome.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/gnome.yml
when: ansible_service_mgr == "systemd"
- include_tasks: tasks/workstation/linux/software/cinnamon.yml
- include_tasks: tasks/workstation/linux/software/lxqt.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/cinnamon.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/lxqt.yml
when: ansible_system == "Linux"
and internet
# TBD: Implement this: and extra_desktops
@@ -168,56 +168,57 @@
- name: Main | Workstation Setup | Linux
block:
- include_tasks: tasks/workstation/linux/software/packages.yml
- include_tasks: tasks/workstation/linux/software/tlp.yml
- include_tasks: tasks/workstation/linux/software/lutris.yml
- include_tasks: tasks/workstation/linux/software/vscodium.yml
- include_tasks: tasks/workstation/linux/software/vpn.yml
- include_tasks: tasks/workstation/linux/software/nodejs.yml
- include_tasks: tasks/workstation/linux/software/hugo.yml
- include_tasks: tasks/workstation/linux/software/brave.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/packages.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/tlp.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/lutris.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/vscodium.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/vpn.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/nodejs.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/hugo.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/brave.yml
when: ansible_pkg_mgr in ("apt", "dnf", "zypper") and not mobile
when: ansible_system == "Linux"
and internet
- include_tasks: tasks/workstation/freebsd/software/packages.yml
- ansible.builtin.include_tasks: tasks/workstation/freebsd/software/packages.yml
when: ansible_system == "FreeBSD"
and internet
- include_tasks: tasks/workstation/mac-os/software/brew.yml
- ansible.builtin.include_tasks: tasks/workstation/mac-os/software/brew.yml
when: ansible_system == "Darwin"
and internet
## Configuration Tasks ##
- name: Main | Workstation Setup | Configuration
block:
- include_tasks: tasks/workstation/shared/settings/gnome.yml
- include_tasks: tasks/workstation/shared/settings/cinnamon.yml
- include_tasks: tasks/workstation/shared/settings/xdg_autostart.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/gnome.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/cinnamon.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/xdg_autostart.yml
- include_tasks: tasks/workstation/linux/cron/ansible.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/cron/ansible.yml
when: ansible_system == "Linux"
when: not mobile
- include_tasks: tasks/workstation/shared/settings/nfs.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/nfs.yml
- include_tasks: tasks/workstation/shared/settings/rdp.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/rdp.yml
when: rdp
- include_tasks: tasks/workstation/shared/settings/vnc.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/vnc.yml
when: vnc
- include_tasks: tasks/workstation/shared/settings/services.yml
- include_tasks: tasks/workstation/shared/settings/templates.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/services.yml
- ansible.builtin.include_tasks: tasks/workstation/shared/settings/templates.yml
## Final Tasks (SLOW) ##
- name: Main | Workstation Setup | Linux [Slow]
block:
- include_tasks: tasks/workstation/linux/software/flatpaks.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/flatpaks.yml
when: flatpak_distro
- include_tasks: tasks/workstation/linux/software/java.yml
- include_tasks: tasks/workstation/linux/software/flutter.yml
- include_tasks: tasks/workstation/linux/software/android.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/java.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/flutter.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/android.yml
- ansible.builtin.include_tasks: tasks/workstation/linux/software/zeroclaw.yml
when: ansible_system == "Linux"
and internet
@@ -232,35 +233,35 @@
# block:
#
# ##### Setup #####
# - include_tasks: tasks/miner/debug.yml
# - ansible.builtin.include_tasks: tasks/miner/debug.yml
#
# - include_tasks: tasks/miner/acct_mgmt/users.yml
# - ansible.builtin.include_tasks: tasks/miner/acct_mgmt/users.yml
#
# - include_tasks: facts/miner/system.yml
# - include_tasks: facts/miner/config.yml
# - include_tasks: facts/miner/pool.yml
# - ansible.builtin.include_tasks: facts/miner/system.yml
# - ansible.builtin.include_tasks: facts/miner/config.yml
# - ansible.builtin.include_tasks: facts/miner/pool.yml
#
# ##### Installations #####
# ### CPU SECTION ###
# # Monero #
# - include_tasks: tasks/miner/software/xmr-stak-cpu.yml
# - ansible.builtin.include_tasks: tasks/miner/software/xmr-stak-cpu.yml
# when: xmr_stak_cpu is defined
#
# ### GPU Section ###
# ## Drivers ##
# - include_tasks: tasks/miner/drivers/amdgpu.yml
# - ansible.builtin.include_tasks: tasks/miner/drivers/amdgpu.yml
# when: ansible_distribution == "Ubuntu" and amdgpu
#
# # Ethereum #
# - include_tasks: tasks/miner/software/ethminer.yml
# - ansible.builtin.include_tasks: tasks/miner/software/ethminer.yml
# when: ethminer
#
# - include_tasks: tasks/miner/software/nanominer.yml
# - ansible.builtin.include_tasks: tasks/miner/software/nanominer.yml
# when: nanominer
#
# ##### Scheduling #####
# - include_tasks: tasks/miner/cron/ansible.yml
# - include_tasks: tasks/miner/cron/mfn.yml
# - ansible.builtin.include_tasks: tasks/miner/cron/ansible.yml
# - ansible.builtin.include_tasks: tasks/miner/cron/mfn.yml
#
# when: miner
@@ -270,25 +271,25 @@
- name: Main | Server Setup
block:
- include_tasks: tasks/server/software/services.yml
- ansible.builtin.include_tasks: tasks/server/software/services.yml
- block:
- include_tasks: tasks/server/software/certbot.yml
- include_tasks: tasks/server/cron/certbot.yml
- ansible.builtin.include_tasks: tasks/server/software/certbot.yml
- ansible.builtin.include_tasks: tasks/server/cron/certbot.yml
when: certbot
- block:
- include_tasks: tasks/server/software/onlyoffice.yml
- ansible.builtin.include_tasks: tasks/server/software/onlyoffice.yml
when: onlyoffice
- include_tasks: tasks/server/software/influxdb1.yml
- ansible.builtin.include_tasks: tasks/server/software/influxdb1.yml
when: influxdb1
- include_tasks: tasks/server/software/influxdb2.yml
- ansible.builtin.include_tasks: tasks/server/software/influxdb2.yml
when: influxdb2
- include_tasks: tasks/server/software/grafana.yml
- ansible.builtin.include_tasks: tasks/server/software/grafana.yml
when: grafana
when: ansible_pkg_mgr == "apt"
- include_tasks: tasks/server/software/hugo.yml
- ansible.builtin.include_tasks: tasks/server/software/hugo.yml
when: hugo
when: server
@@ -299,20 +300,20 @@
- name: Main | Reporting
block:
- include_tasks: tasks/general/software/telegraf.yml
- ansible.builtin.include_tasks: tasks/general/software/telegraf.yml
when: internet
- include_tasks: tasks/general/tests/services.yml
- include_tasks: tasks/general/tests/lynis.yml
- include_tasks: tasks/general/tests/nmap.yml
- ansible.builtin.include_tasks: tasks/general/tests/services.yml
- ansible.builtin.include_tasks: tasks/general/tests/lynis.yml
- ansible.builtin.include_tasks: tasks/general/tests/nmap.yml
####### Finish #######
- name: Main | Finish
block:
- include_tasks: tasks/general/acct_mgmt/notify.yml
- ansible.builtin.include_tasks: tasks/general/acct_mgmt/notify.yml
vars:
notify_message: "Provisioning Finished"
- include_tasks: tasks/general/tests/lock_remove.yml
- ansible.builtin.include_tasks: tasks/general/tests/lock_remove.yml
+42 -40
View File
@@ -50,13 +50,13 @@
- name: Workstation | Linux | Software | Flutter | Necessities
ansible.builtin.package:
name:
- curl
- git
- unzip
- "{{ xz }}"
- zip
- "{{ mesa }}"
- "{{ mesa_utils }}"
- curl
- git
- unzip
- "{{ xz }}"
- zip
- "{{ mesa }}"
- "{{ mesa_utils }}"
state: present
when: coding
@@ -64,14 +64,14 @@
- name: Workstation | Linux | Software | Flutter | Linux App Dependencies
ansible.builtin.package:
name:
- clang
- cmake
- git
- "{{ ninja }}"
- pkg-config
- "{{ gtk3 }}"
- "{{ xz_libs }}"
- "{{ cpp }}"
- clang
- cmake
- git
- "{{ ninja }}"
- pkg-config
- "{{ gtk3 }}"
- "{{ xz_libs }}"
- "{{ cpp }}"
state: present
when: coding
@@ -91,29 +91,29 @@
- name: Workstation | Linux | Software | Flutter | SDK
block:
- name: Workstation | Linux | Software | Flutter | Download SDK
get_url:
url: "{{ flutter_url }}"
dest: "{{ flutter_download_file }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0664'
when: not flutter_download_stat.stat.exists
- name: Workstation | Linux | Software | Flutter | Download SDK
ansible.builtin.get_url:
url: "{{ flutter_url }}"
dest: "{{ flutter_download_file }}"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0664'
when: not flutter_download_stat.stat.exists
- name: Workstation | Linux | Software | Flutter | Create Folder
ansible.builtin.file:
path: "{{ flutter_sdk_location }}"
state: directory
owner: "{{ user }}"
group: "{{ user }}"
mode: '0755'
- name: Workstation | Linux | Software | Flutter | Create Folder
ansible.builtin.file:
path: "{{ flutter_sdk_location }}"
state: directory
owner: "{{ user }}"
group: "{{ user }}"
mode: '0755'
- name: Workstation | Linux | Software | Flutter | Extract SDK
unarchive:
src: "{{ flutter_download_file }}"
dest: "{{ flutter_sdk_location }}"
owner: "{{ user }}"
group: "{{ user }}"
- name: Workstation | Linux | Software | Flutter | Extract SDK
ansible.builtin.unarchive:
src: "{{ flutter_download_file }}"
dest: "{{ flutter_sdk_location }}"
owner: "{{ user }}"
group: "{{ user }}"
become: true
become_user: "{{ user }}"
@@ -126,7 +126,7 @@
state: absent
when: coding
## Configure Environment ##
## Configure Environment ##
- name: Workstation | Linux | Software | Flutter | Modify PATH (.bashrc)
ansible.builtin.blockinfile:
@@ -137,10 +137,10 @@
state: absent
create: true
backup: true
mode: "0755"
loop:
- "{{ user_root.home }}"
- "{{ user_user.home }}"
ignore_errors: true
when: coding
and user_root.home != ""
and user_user.home != ""
@@ -154,10 +154,10 @@
state: absent
create: true
backup: true
mode: "0755"
loop:
- "{{ user_root.home }}"
- "{{ user_user.home }}"
ignore_errors: true
when: coding
and user_root.home != ""
and user_user.home != ""
@@ -171,10 +171,10 @@
state: present
create: true
backup: true
mode: "0755"
loop:
- ".bash_profile"
- ".zprofile"
ignore_errors: true
when: coding
and user_user.home != ""
@@ -185,6 +185,8 @@
loop: "{{ flutter_report_commands }}"
become: true
become_user: "{{ user }}"
register: shell_check
changed_when: shell_check.rc == 0
when: coding
## Uninstall SDK ##
@@ -0,0 +1,62 @@
---
# 2026-10-05 Hyperling
# Install a local LLM for use offline.
# - https://zeroclaw.net/blog/install-zeroclaw
# - https://zeroclaw.net/blog/set-up-zeroclaw-bot-ollama-telegram
#
# Packages Details
# - https://archlinux.org/packages/extra/x86_64/zeroclaw/
# - https://archlinux.org/packages/extra/x86_64/ollama/
#
# Individual Guides
# - https://github.com/zeroclaw-labs/zeroclaw
# - https://wiki.archlinux.org/title/Ollama
# Currently only testing this on Arch based distros (pacman).
- name: Workstation | Linux | Software | ZeroClaw
block:
- name: Workstation | Linux | Software | ZeroClaw | Facts 01
ansible.builtin.set_fact:
zeroclaw: zeroclaw
ollama: ollama
# 1. Install
- name: Workstation | Linux | Software | ZeroClaw | 01 | Install
ansible.builtin.package:
name:
- "{{ zeroclaw }}"
- "{{ ollama }}"
state: present
- name: Workstation | Linux | Software | ZeroClaw | 02 | Pull Model
ansible.builtin.debug:
msg: TBD
### ollama serve & # start Ollama server
### ollama pull llama3.2 # ~2GB, or a smaller model for less RAM
- name: Workstation | Linux | Software | ZeroClaw | 03 | Config
ansible.builtin.debug:
msg: TBD
### ~/.zeroclaw/config.toml`
### `default_provider = "ollama"` pointing at `http://127.0.0.1:11434`
- name: Workstation | Linux | Software | ZeroClaw | 04 | Test
ansible.builtin.debug:
msg: TBD
### zeroclaw agent -m "Hello!" # quick test
- name: Workstation | Linux | Software | ZeroClaw | 05 | Init Scripts | zeroclaw
ansible.builtin.debug:
msg: TBD
### `/run/runit/zeroclaw/run`
### `zeroclaw daemon`
- name: Workstation | Linux | Software | ZeroClaw | 05 | Init Scripts | ollama
ansible.builtin.debug:
msg: TBD
when: ansible_service_mgr == "runit"
### `/run/runit/ollama/run`
### `ollama serve`
when: ansible_pkg_mgr == "pacman"