feat: initial infrastructure baseline
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# ADR 1: Use Ansible for Workstation Configuration Management
|
||||
|
||||
## Status
|
||||
Accepted
|
||||
|
||||
## Context
|
||||
The mw-pfeddersheim-workstation requires a consistent, reproducible configuration. Manual changes lead to "configuration drift" and make it difficult to replicate the environment on new hardware.
|
||||
|
||||
## Decision
|
||||
We will use **Ansible** as the primary tool for managing system-wide and user-specific configurations.
|
||||
|
||||
## Rationale
|
||||
- **Agents and Push-based**: No agent needs to be installed on the host (other than Python/SSH).
|
||||
- **Declarative**: Focuses on state rather than process.
|
||||
- **Low Barrier to Entry**: Uses YAML and Jinja2 templates, which are well-understood in the satware AG stack.
|
||||
- **Portability**: Roles can be shared across different workstations if needed.
|
||||
|
||||
## Consequences
|
||||
- All persistent changes must be scripted in Ansible before application.
|
||||
- `ansible-playbook` becomes the primary entry point for setup.
|
||||
- Requires maintaining vault secrets for sensitive configurations.
|
||||
@@ -0,0 +1,18 @@
|
||||
# Initial Setup and Baseline - 2026-02-27
|
||||
|
||||
## Context
|
||||
Starting the formal infrastructure management for the `mw-pfeddersheim-workstation` repository. The project aim is to manage Michael Wegener's workstation using Ansible 10.x and saTway standards.
|
||||
|
||||
## Initial State
|
||||
- Repository initialized but no commits yet.
|
||||
- Base structure for Ansible roles (common, dev-tools, maintenance) exists.
|
||||
- Maintenance script `scripts/maintenance.sh` present but needs enhancement.
|
||||
- Goal: Cleanup legacy VS Code remnants and local AI tools.
|
||||
|
||||
## Actions Taken
|
||||
- Documented initial state.
|
||||
- Preparing for first baseline commit.
|
||||
|
||||
## Lessons Learned
|
||||
- Git status confirms all initial files are untracked.
|
||||
- Structure follows PARA for documentation and standard Ansible layout.
|
||||
@@ -0,0 +1,19 @@
|
||||
# mw-pfeddersheim-workstation Infrastructure Overview
|
||||
|
||||
## Purpose
|
||||
This repository serves as the single source of truth for the configuration and lifecycle management of Michael Wegener's primary workstation at satware AG (Pfeddersheim location).
|
||||
|
||||
## Goals
|
||||
1. **Reproducibility**: Ability to restore or rebuild the workstation environment using Ansible.
|
||||
2. **Reliability**: Automated maintenance and health checks.
|
||||
3. **Documentation**: Clear record of software stack, decision rationale (ADRs), and tribal knowledge.
|
||||
4. **Security**: Alignment with Zero-Trust principles and satware AG security standards.
|
||||
|
||||
## Users
|
||||
- Primarily **Michael Wegener** (MW).
|
||||
- AI Assistants (Cline/Jane/Junie) for automated task execution and maintenance.
|
||||
|
||||
## Lifecycle
|
||||
- **Provisioning**: Managed via Ansible playbooks.
|
||||
- **Maintenance**: Daily/Weekly tasks via `scripts/maintenance.sh`.
|
||||
- **Documentation**: Continuous updates as the system evolves.
|
||||
@@ -0,0 +1,31 @@
|
||||
# mw-pfeddersheim-workstation Performance Tuning
|
||||
|
||||
## Overview
|
||||
This document tracks optimization decisions, system tuning parameters, and cleanup routines implemented for the workstation to ensure maximum resource efficiency and stability.
|
||||
|
||||
## Current System State (2026-02-27)
|
||||
- **CPU**: AMD/Intel (High core count assumed from load distribution)
|
||||
- **RAM**: 64GB
|
||||
- **Storage**: NVMe (77% usage detected)
|
||||
- **OS**: CachyOS/Arch Linux
|
||||
|
||||
## Optimization Strategies
|
||||
|
||||
### 1. Kernel Parameter Tuning (Ansible)
|
||||
- **vm.swappiness**: Set to `10` to prefer RAM over swap on the 64GB machine.
|
||||
- **fs.inotify.max_user_watches**: Increase to `524288` for IDEs and build tools.
|
||||
- **vm.vfs_cache_pressure**: Set to `50` to improve filesystem cache retention.
|
||||
|
||||
### 2. Storage & Filesystem Cleanup
|
||||
- **Docker**: Automated pruning of unused images and volumes via `scripts/maintenance.sh`.
|
||||
- **Journald**: Vacuuming logs older than 7 days or exceeding 500MB.
|
||||
- **Package Manager**: Maintaining only the last 2 versions of packages in the cache.
|
||||
|
||||
### 3. Service Optimization
|
||||
- **Ananicy**: (Optional) Use Ananicy-cpp for automatic process prioritizing (CachyOS default usually).
|
||||
|
||||
## Implementation Log
|
||||
|
||||
| Date | Type | Description |
|
||||
|------|------|-------------|
|
||||
| 2026-02-27 | Initial | Initial tuning document and strategy established. |
|
||||
@@ -0,0 +1,44 @@
|
||||
# Workstation Setup Guide
|
||||
|
||||
This guide describes how to bootstrap the **mw-pfeddersheim-workstation** infrastructure on a fresh installation.
|
||||
|
||||
## Prerequisites
|
||||
- Linux (Arch/CachyOS preferred)
|
||||
- Python 3.12+
|
||||
- Git
|
||||
|
||||
## Bootstrap Steps
|
||||
|
||||
1. **Clone the Infrastructure Repo**
|
||||
```bash
|
||||
mkdir -p ~/infrastructure
|
||||
cd ~/infrastructure
|
||||
git clone <repo-url> mw-pfeddersheim-workstation
|
||||
cd mw-pfeddersheim-workstation
|
||||
```
|
||||
|
||||
2. **Install Ansible**
|
||||
```bash
|
||||
sudo pacman -S ansible
|
||||
```
|
||||
|
||||
3. **Configure Secrets**
|
||||
```bash
|
||||
# Create a vault password file (do not commit!)
|
||||
echo "your-strong-password" > ansible/vault_password
|
||||
|
||||
# Create secrets file
|
||||
ansible-vault create ansible/vars/secrets.yml
|
||||
```
|
||||
|
||||
4. **Run the Playbook**
|
||||
```bash
|
||||
ansible-playbook -i localhost, -c local --vault-password-file ansible/vault_password ansible/workstation.yml --check
|
||||
# If check passes:
|
||||
ansible-playbook -i localhost, -c local --vault-password-file ansible/vault_password ansible/workstation.yml
|
||||
```
|
||||
|
||||
5. **Initialize Maintenance**
|
||||
```bash
|
||||
./scripts/maintenance.sh
|
||||
```
|
||||
@@ -0,0 +1,46 @@
|
||||
# Software Stack - mw-pfeddersheim-workstation
|
||||
|
||||
## Core Development Environment
|
||||
|
||||
| Technology | Version | Description |
|
||||
|------------|---------|-------------|
|
||||
| **Node.js** | 25.6.1 | Primary JavaScript/TypeScript runtime |
|
||||
| **Python** | 3.14.3 | Secondary scripting and AI automation language |
|
||||
| **PHP** | 8.5.3 (CLI) | Legacy and ERP integration language |
|
||||
| **Ansible** | 2.20.2 (core) | Infrastructure provisioning and configuration |
|
||||
| **Docker** | 29.2.1 | Containerization and environment isolation |
|
||||
| **Git** | latest | Version control |
|
||||
|
||||
## OS Context
|
||||
- **OS**: Linux (CachyOS/Arch Linux based on detected GCC 15 and kernel 6.12)
|
||||
- **Architecture**: x86_64
|
||||
|
||||
## Maintenance Policies
|
||||
- **Updates**: System-wide updates via `pacman` managed through maintenance scripts.
|
||||
- **Node.js**: Global packages managed via `pnpm`.
|
||||
- **Python**: Use `uv` for environment management.
|
||||
- **PHP**: Managed via system package manager, focused on CLI execution.
|
||||
|
||||
## Tool Path Summary
|
||||
- **Ansible**: `/usr/bin/ansible`
|
||||
- **Python**: `/usr/bin/python`
|
||||
- **Docker**: `/usr/bin/docker`
|
||||
|
||||
## Deprecated Software (Pending Cleanup)
|
||||
|
||||
### Microsoft Visual Studio Code (Remnants)
|
||||
The following remnants of Visual Studio Code / MS IDE components have been identified for review and potential removal to reduce software stack complexity.
|
||||
|
||||
| Type | Path / Identifyer | Description |
|
||||
|------|-------------------|-------------|
|
||||
| **Package** | `vscode` | Open Source build of Visual Studio Code (installed via pacman) |
|
||||
| **Binary** | `/usr/bin/code` | Launcher script for VS Code |
|
||||
| **Binary** | `/usr/bin/code-oss` | OSS specific launcher script |
|
||||
| **Config** | `~/.vscode-oss` | Global VS Code OSS configuration and extensions |
|
||||
| **Theming** | `~/.oh-my-bash/themes/vscode` | VS Code specific oh-my-bash theme |
|
||||
| **Application Data** | `~/.config/Code - OSS/` | Extensive user data, logs, and cache |
|
||||
| **Application Data** | `~/.local/share/pipx/venvs/*/lib/python*/site-packages/jupyter_lsp/specs/vscode_*` | Python/Jupyter LSP remnants |
|
||||
| **Project Data** | `~/Projects/firebird/.vscode` | Local project settings |
|
||||
| **Project Data** | `~/src/agent-zero/.vscode` | Local project settings |
|
||||
| **Project Data** | `~/nerve/AutoGPT/.vscode` | Local project settings |
|
||||
| **Project Data** | `~/agent-zero/data/.vscode` | Local project settings |
|
||||
Reference in New Issue
Block a user