systems-engineering
Skill4 starsChanged 12 months agoMITView on GitHub
Systems engineering and administration covering Linux and Windows administration, networking fundamentals, performance tuning, configuration management (Ansible/Chef/Puppet), system monitoring, shell scripting (bash/PowerShell), and troubleshooting. Use when managing Linux or Windows systems, optimizing performance, automating operations, or debugging system issues. (project)
- Installs packages
We split this skill into the rules it gives an agent
20 rules. About 0 are common, 20 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈20
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 51
When starting a systems engineering task:
- Distinctive: line 500
Use configuration management tools
- Distinctive: line 511
Use SSH keys, disable password auth
- Distinctive: line 523
Ensure scripts can run multiple times safely
- Distinctive: line 524
Check state before making changes
- Distinctive: line 526
Test thoroughly before production
- Distinctive: line 530
Use branches for testing
- Distinctive: line 532
Document changes in commit messages
- Distinctive: line 535
Test in staging environment
- Distinctive: line 536
Use linters (ansible-lint, shellcheck)
- Distinctive: line 585
Document server in inventory
- Distinctive: line 591
Check system metrics (CPU, memory, disk, network)
- Distinctive: line 595
Check for configuration issues
- Distinctive: line 598
Document root cause and solution
- Distinctive: line 604
Write playbook and roles
- Distinctive: line 605
Test in development environment
- Distinctive: line 606
Use ansible-lint for validation
- Distinctive: line 608
Document playbook purpose and variables
- Distinctive: line 627
Write shell scripts or automation
- Distinctive: line 641
Test thoroughly in non-production
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 SKILL ACTIVATED: systems-engineering ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Systems Engineering & Administration
Comprehensive guide for Linux and Windows system administration, networking, performance optimization, configuration management, and operational automation. This skill provides production-tested patterns for managing infrastructure at scale across both platforms.
When to Use This Skill
Automatically activates when working on:
- Linux or Windows Server administration and configuration
- System performance tuning and optimization
- Configuration management (Ansible, Chef, Puppet, DSC)
- Shell scripting automation (bash, PowerShell)
- System monitoring and observability setup
- Security hardening and compliance
- Storage management and backup strategies
- Active Directory and Group Policy (Windows)
- System troubleshooting and debugging
Overview
Purpose: Enable teams to build, configure, and maintain robust infrastructure with automation, monitoring, and performance optimization on both Linux and Windows platforms.
Scope:
- Linux and Windows Server administration
- Networking fundamentals (TCP/IP, DNS, load balancing, firewalls)
- Performance tuning and optimization (both platforms)
- Configuration management (Ansible, Chef, Puppet, DSC)
- System monitoring and observability
- Shell scripting and automation (bash, PowerShell)
- Troubleshooting and debugging
- Security hardening (Linux and Windows)
- Storage management (LVM, Windows Storage Spaces)
- Operational excellence
This skill is for:
- Systems engineers managing Linux and Windows infrastructure
- DevOps engineers automating operations across platforms
- SREs optimizing system performance
- IT administrators maintaining servers (Linux/Windows)
- Platform engineers building foundational services
Quick Start Checklist
When starting a systems engineering task:
- Identify system requirements (OS, resources, networking)
- Plan infrastructure topology and dependencies
- Implement configuration management for reproducibility
- Set up monitoring and alerting
- Configure logging and log aggregation
- Implement security hardening (firewall, SELinux, patches)
- Document runbooks and procedures
- Test disaster recovery procedures
- Implement backup strategy
- Plan capacity and performance optimization
Core Concepts
1. Linux System Architecture
┌─────────────────────────────────────────────────────────────┐
│ User Space │
│ ┌────────────┬─────────────┬──────────────┬──────────────┐ │
│ │ Applications│ Libraries │ System Utils │ Shells │ │
│ └────────────┴─────────────┴──────────────┴──────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Kernel Space │
│ ┌────────────┬─────────────┬──────────────┬──────────────┐ │
│ │ Process │ Memory │ File System │ Network │ │
│ │ Management │ Management │ Management │ Stack │ │
│ └────────────┴─────────────┴──────────────┴──────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Hardware Layer │
│ ┌────────────┬─────────────┬──────────────┬──────────────┐ │
│ │ CPU │ RAM │ Storage │ Network │ │
│ │ │ │ │ Interfaces │ │
│ └────────────┴─────────────┴──────────────┴──────────────┘ │
└─────────────────────────────────────────────────────────────┘2. systemd Service Management
Service Lifecycle:
┌──────────┐ systemctl start ┌──────────┐
│ │ ──────────────────→ │ │
│ Inactive │ │ Active │
│ │ ←────────────────── │ │
└──────────┘ systemctl stop └──────────┘
↓ ↓
└─────→ systemctl enable ──────→ (starts on boot)Key Commands:
# Service management
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx
systemctl status nginx
# Enable/disable at boot
systemctl enable nginx
systemctl disable nginx
# View logs
journalctl -u nginx
journalctl -u nginx -f # Follow
journalctl -u nginx --since "1 hour ago"
# List all services
systemctl list-units --type=service
systemctl list-unit-files --type=service3. Networking Stack
┌─────────────────────────────────────────────────────────────┐
│ Layer 7: Application (HTTP, DNS, SSH, FTP) │
├─────────────────────────────────────────────────────────────┤
│ Layer 4: Transport (TCP, UDP) │
├─────────────────────────────────────────────────────────────┤
│ Layer 3: Network (IP, ICMP, Routing) │
├─────────────────────────────────────────────────────────────┤
│ Layer 2: Data Link (Ethernet, MAC addresses) │
├─────────────────────────────────────────────────────────────┤
│ Layer 1: Physical (Cables, NICs) │
└─────────────────────────────────────────────────────────────┘Common Network Operations:
# Interface management
ip addr show
ip link show
ip route show
# Network connectivity
ping -c 4 google.com
traceroute google.com
mtr google.com # Continuous traceroute
# DNS lookup
dig example.com
nslookup example.com
host example.com
# Port scanning
nmap -sT localhost
ss -tuln # Show listening ports
netstat -tuln # Legacy alternative
# Network statistics
ss -s
netstat -i
iftop # Real-time bandwidth4. Performance Monitoring
System Resource Overview:
# CPU
top
htop
mpstat 1 # CPU stats per second
pidstat 1 # Per-process CPU
# Memory
free -h
vmstat 1
cat /proc/meminfo
# Disk I/O
iostat -x 1
iotop
df -h # Disk usage
du -sh /var/* # Directory sizes
# Network
iftop
nethogs
sar -n DEV 1 # Network statsCommon Patterns
Pattern 1: Ansible Automation
Directory Structure:
ansible/
├── ansible.cfg
├── inventory/
│ ├── production/
│ │ ├── hosts
│ │ └── group_vars/
│ │ ├── all.yml
│ │ ├── webservers.yml
│ │ └── databases.yml
│ └── staging/
│ └── hosts
├── roles/
│ ├── common/
│ │ ├── tasks/
│ │ │ └── main.yml
│ │ ├── handlers/
│ │ │ └── main.yml
│ │ ├── templates/
│ │ ├── files/
│ │ └── vars/
│ │ └── main.yml
│ ├── nginx/
│ └── postgres/
├── playbooks/
│ ├── site.yml
│ ├── webservers.yml
│ └── database.yml
└── group_vars/
└── all.ymlExample Playbook:
# playbooks/webservers.yml
---
- name: Configure web servers
hosts: webservers
become: yes
vars:
nginx_port: 80
app_user: webapp
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600
- name: Install nginx
apt:
name: nginx
state: present
- name: Configure nginx
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify: Reload nginx
- name: Ensure nginx is running
systemd:
name: nginx
state: started
enabled: yes
- name: Configure firewall
ufw:
rule: allow
port: '{{ nginx_port }}'
proto: tcp
handlers:
- name: Reload nginx
systemd:
name: nginx
state: reloadedPattern 2: System Hardening
Security Baseline Script:
#!/bin/bash
# system-hardening.sh
# Implements CIS benchmark controls
set -euo pipefail
echo "=== System Hardening Script ==="
# 1. Update system
echo "[1/10] Updating system packages..."
apt-get update && apt-get upgrade -y
# 2. Configure firewall
echo "[2/10] Configuring firewall..."
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw --force enable
# 3. Disable unnecessary services
echo "[3/10] Disabling unnecessary services..."
systemctl disable avahi-daemon 2>/dev/null || true
systemctl disable cups 2>/dev/null || true
systemctl stop avahi-daemon 2>/dev/null || true
systemctl stop cups 2>/dev/null || true
# 4. Configure SSH hardening
echo "[4/10] Hardening SSH configuration..."
cat > /etc/ssh/sshd_config.d/99-hardening.conf <<EOF
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
X11Forwarding no
MaxAuthTries 3
MaxSessions 2
ClientAliveInterval 300
ClientAliveCountMax 2
Protocol 2
EOF
systemctl restart sshd
# 5. Set password policy
echo "[5/10] Configuring password policy..."
cat > /etc/security/pwquality.conf <<EOF
minlen = 14
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
EOF
# 6. Configure auditd
echo "[6/10] Setting up audit logging..."
apt-get install -y auditd audispd-plugins
systemctl enable auditd
systemctl start auditd
# 7. Kernel hardening
echo "[7/10] Applying kernel hardening..."
cat > /etc/sysctl.d/99-hardening.conf <<EOF
# IP forwarding
net.ipv4.ip_forward = 0
# SYN flood protection
net.ipv4.tcp_syncookies = 1
# ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Log martians
net.ipv4.conf.all.log_martians = 1
# Ignore ICMP ping
net.ipv4.icmp_echo_ignore_all = 0
# IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
EOF
sysctl -p /etc/sysctl.d/99-hardening.conf
# 8. File permissions
echo "[8/10] Setting secure file permissions..."
chmod 600 /etc/ssh/sshd_config
chmod 644 /etc/passwd
chmod 640 /etc/shadow
chmod 640 /etc/gshadow
# 9. Install security tools
echo "[9/10] Installing security tools..."
apt-get install -y \
fail2ban \
rkhunter \
aide
# Configure fail2ban
systemctl enable fail2ban
systemctl start fail2ban
# 10. Set up automatic updates
echo "[10/10] Configuring automatic security updates..."
apt-get install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
echo "=== System Hardening Complete ==="
echo "Please review /var/log/system-hardening.log for details"Pattern 3: Performance Tuning
Performance Analysis Script:
#!/bin/bash
# performance-check.sh
# Analyzes system performance and provides recommendations
echo "=== System Performance Analysis ==="
echo ""
# CPU Analysis
echo "--- CPU Information ---"
echo "CPU Model: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d: -f2 | xargs)"
echo "CPU Cores: $(nproc)"
echo "Load Average (1m, 5m, 15m): $(uptime | awk -F'load average:' '{print $2}')"
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
echo "CPU Usage: ${CPU_USAGE}%"
if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
echo "⚠ WARNING: High CPU usage detected"
echo "Top CPU consumers:"
ps aux --sort=-%cpu | head -6
fi
echo ""
# Memory Analysis
echo "--- Memory Information ---"
free -h
MEMORY_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}')
echo "Memory Usage: ${MEMORY_USAGE}%"
if (( $(echo "$MEMORY_USAGE > 90" | bc -l) )); then
echo "⚠ WARNING: High memory usage detected"
echo "Top memory consumers:"
ps aux --sort=-%mem | head -6
fi
echo ""
# Disk I/O Analysis
echo "--- Disk I/O Information ---"
iostat -x 1 2 | tail -n +4
echo ""
# Network Analysis
echo "--- Network Information ---"
echo "Network Interfaces:"
ip -brief addr show
echo ""
echo "Network Connections:"
ss -s
echo ""
echo "Top Bandwidth Consumers:"
netstat -tunap 2>/dev/null | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -5
echo ""
echo "=== Performance Analysis Complete ==="Resource Files
For detailed guidance on specific topics, see:
Linux Administration
- linux-administration.md - systemd, user management, package managers, LVM, file systems, boot process
- storage-management.md - LVM operations, RAID, file systems, backups, snapshots, capacity planning
- shell-scripting.md - Bash scripting patterns, error handling, testing, best practices
Windows Administration
- windows-administration.md - Windows Server, Active Directory, GPO, IIS, services, registry, security hardening
- powershell-scripting.md - PowerShell fundamentals, scripting, DSC, remote management, best practices
Networking
- networking-fundamentals.md - TCP/IP, DNS, load balancers, firewalls, routing, network debugging
- security-hardening.md - OS hardening, CIS benchmarks, firewall, SELinux/AppArmor, SSH, audit logging
Performance & Troubleshooting
- performance-tuning.md - CPU optimization, memory tuning, disk I/O, network performance, profiling tools
- troubleshooting-guide.md - Debugging methodology, diagnostic tools, common issues, log analysis
Automation & Configuration
- configuration-management.md - Ansible playbooks, Chef cookbooks, Puppet manifests, DSC, best practices
- automation-patterns.md - Cron jobs, systemd timers, Task Scheduler, idempotency, error handling
Monitoring
- system-monitoring.md - Log aggregation, metrics collection, dashboards, alerting, monitoring best practices
Best Practices
System Administration
- Automation First:
- Use configuration management tools
- Version control all configurations
- Implement Infrastructure as Code
- Automate repetitive tasks
- Document automation procedures
- Security:
- Principle of least privilege
- Regular security updates
- Implement firewall rules
- Enable audit logging
- Use SSH keys, disable password auth
- Monitoring:
- Comprehensive system monitoring
- Centralized logging
- Proactive alerting
- Regular performance reviews
- Capacity planning
Configuration Management
- Idempotency:
- Ensure scripts can run multiple times safely
- Check state before making changes
- Use declarative configurations
- Test thoroughly before production
- Version Control:
- Store all configs in Git
- Use branches for testing
- Tag releases
- Document changes in commit messages
- Testing:
- Test in staging environment
- Use linters (ansible-lint, shellcheck)
- Implement smoke tests
- Rollback procedures ready
Performance Optimization
- Measure First:
- Baseline performance metrics
- Identify bottlenecks before optimizing
- Use profiling tools
- Monitor after changes
- Incremental Changes:
- One change at a time
- Measure impact
- Document tuning parameters
- Rollback if degraded
- Right-Sizing:
- Match resources to workload
- Monitor utilization
- Scale when needed
- Avoid over-provisioning
Anti-Patterns to Avoid
❌ Manual configuration - Not repeatable, error-prone ❌ Root login enabled - Security vulnerability ❌ No monitoring - Can't detect issues ❌ No backups - Risk of data loss ❌ Outdated packages - Security vulnerabilities ❌ Single point of failure - No redundancy ❌ No documentation - Knowledge silos ❌ Direct production changes - Should use config management ❌ Ignoring logs - Miss critical information ❌ No testing - Changes break production
Common Tasks
Task: Configure New Linux Server
- Initial setup and security hardening
- Configure firewall rules
- Set up SSH key authentication
- Install and configure monitoring agent
- Configure log forwarding
- Apply configuration management
- Install required packages
- Configure backups
- Document server in inventory
- Test and validate
Task: Troubleshoot Performance Issue
- Identify symptoms (slow response, high CPU)
- Check system metrics (CPU, memory, disk, network)
- Review logs for errors
- Identify resource bottleneck
- Analyze top processes
- Check for configuration issues
- Implement fix or optimization
- Monitor after changes
- Document root cause and solution
Task: Automate with Ansible
- Design automation workflow
- Create inventory file
- Write playbook and roles
- Test in development environment
- Use ansible-lint for validation
- Test in staging environment
- Document playbook purpose and variables
- Deploy to production
- Monitor execution
- Update runbooks
Integration Points
This skill integrates with:
- platform-engineering: Container hosts, Kubernetes nodes, infrastructure automation
- devsecops: Security scanning, hardening, compliance checks
- sre: System reliability, performance optimization, incident response
- cloud-engineering: Cloud VM management, networking, hybrid cloud
- release-engineering: Deployment automation, server provisioning
Triggers and Activation
This skill activates when you:
- Work with Linux systems or servers
- Configure networking or firewalls
- Write shell scripts or automation
- Troubleshoot system issues
- Tune performance or optimize resources
- Implement configuration management (Ansible, Chef, Puppet)
- Set up monitoring or logging
- Manage storage or file systems
Next Steps
For your specific task:
- Identify the systems engineering requirements
- Review relevant patterns and best practices
- Choose appropriate tools and automation approach
- Implement with configuration management
- Test thoroughly in non-production
- Monitor and iterate based on feedback
Total Resources: 10 detailed guides covering all aspects of systems engineering Pattern Library: 100+ production-tested patterns for Linux administration and automation Maintained by: Systems Engineering team based on real-world production experience
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- andrewalhaj/custom-hermesagent★ 0same name
- sysetup/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository24 other files it gives its agents.
- api-engineeringSkill
- backend-dev-guidelinesSkill
- budget-and-cost-managementSkill
- build-engineeringSkill
- cloud-engineeringSkill
- cybersecuritySkill
- database-engineeringSkill
- devsecopsSkill
- documentation-as-codeSkill
- engineering-managementSkill
- engineering-operations-managementSkill
- error-trackingSkill
- frontend-dev-guidelinesSkill
- general-it-engineeringSkill
- infrastructure-architectureSkill
- infrastructure-strategySkill
- network-engineeringSkill
- observability-engineeringSkill
- platform-engineeringSkill
- release-engineeringSkill
- route-testerSkill
- skill-developerSkill
- sreSkill
- technical-leadershipSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

