This commit is contained in:
Toby
2026-01-27 17:35:45 -05:00
commit 2639af6531
176 changed files with 27104 additions and 0 deletions
@@ -0,0 +1,65 @@
---
name: linux-administration
description: System administration for Linux servers. Manage packages, services, and system configuration. Use when administering Linux systems.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# Linux Administration
Core Linux system administration skills.
## Package Management
```bash
# Debian/Ubuntu
apt update && apt upgrade -y
apt install nginx
apt remove nginx
apt autoremove
# RHEL/CentOS
dnf update
dnf install nginx
dnf remove nginx
```
## System Information
```bash
uname -a # Kernel info
hostnamectl # System info
lscpu # CPU info
free -h # Memory usage
df -h # Disk usage
ip addr # Network interfaces
```
## Log Management
```bash
journalctl -u nginx # Service logs
journalctl -f # Follow logs
tail -f /var/log/syslog # System logs
dmesg # Kernel messages
```
## Process Management
```bash
ps aux | grep nginx
top / htop
kill -9 <pid>
pgrep nginx
pkill nginx
```
## Best Practices
- Regular updates
- Minimal installed packages
- Proper file permissions
- Log rotation configuration
- Automated backups
@@ -0,0 +1,69 @@
---
name: performance-tuning
description: Optimize Linux system performance. Configure kernel parameters, analyze bottlenecks, and tune resources. Use when improving system performance.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# Performance Tuning
Optimize Linux system performance.
## System Monitoring
```bash
top / htop # Process monitoring
vmstat 1 # Memory statistics
iostat -x 1 # Disk I/O
sar -n DEV 1 # Network statistics
perf top # CPU profiling
```
## Kernel Parameters
```bash
# /etc/sysctl.d/99-performance.conf
vm.swappiness = 10
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
fs.file-max = 2097152
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
```
## File Descriptor Limits
```bash
# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
```
## Disk I/O
```bash
# Change scheduler
echo noop > /sys/block/sda/queue/scheduler
# Enable trim for SSDs
fstrim -av
```
## Network Tuning
```bash
# Increase buffers
sysctl -w net.core.rmem_max=134217728
sysctl -w net.core.wmem_max=134217728
```
## Best Practices
- Profile before optimizing
- Change one parameter at a time
- Monitor impact of changes
- Document all tuning
@@ -0,0 +1,76 @@
---
name: ssh-configuration
description: Configure SSH servers and clients securely. Manage keys, tunnels, and config files. Use when setting up secure remote access.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# SSH Configuration
Secure SSH server and client configuration.
## Key Management
```bash
# Generate key
ssh-keygen -t ed25519 -C "user@example.com"
# Copy to server
ssh-copy-id user@server
# Add to agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
```
## SSH Config (~/.ssh/config)
```
Host production
HostName prod.example.com
User deploy
IdentityFile ~/.ssh/prod_key
Port 22
Host bastion
HostName bastion.example.com
User admin
Host internal
HostName 10.0.0.5
User admin
ProxyJump bastion
```
## Secure Server Config
```bash
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers deploy admin
```
## Tunneling
```bash
# Local port forward
ssh -L 8080:internal:80 bastion
# Remote port forward
ssh -R 8080:localhost:80 server
# SOCKS proxy
ssh -D 1080 server
```
## Best Practices
- Use ed25519 keys
- Disable password auth
- Use SSH agent forwarding carefully
- Implement jump hosts/bastions
@@ -0,0 +1,76 @@
---
name: systemd-services
description: Create and manage systemd services and timers. Configure service dependencies and resource limits. Use when managing system services.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# Systemd Services
Manage system services with systemd.
## Service Unit File
```ini
# /etc/systemd/system/myapp.service
[Unit]
Description=My Application
After=network.target
[Service]
Type=simple
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/start
ExecStop=/opt/myapp/bin/stop
Restart=always
RestartSec=5
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
```
## Service Management
```bash
systemctl daemon-reload
systemctl start myapp
systemctl stop myapp
systemctl restart myapp
systemctl enable myapp
systemctl status myapp
journalctl -u myapp -f
```
## Timer (Cron Replacement)
```ini
# /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
```
## Resource Limits
```ini
[Service]
MemoryLimit=512M
CPUQuota=50%
```
## Best Practices
- Use Type=notify for better tracking
- Implement proper restart policies
- Use timers instead of cron
- Set resource limits
@@ -0,0 +1,69 @@
---
name: user-management
description: Manage users, groups, and permissions on Linux systems. Configure sudo and access controls. Use when managing system access.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# User Management
Manage users, groups, and permissions.
## User Operations
```bash
# Create user
useradd -m -s /bin/bash username
passwd username
# Delete user
userdel -r username
# Modify user
usermod -aG sudo username
usermod -s /bin/zsh username
```
## Group Management
```bash
# Create group
groupadd developers
# Add user to group
usermod -aG developers username
gpasswd -a username developers
# Remove from group
gpasswd -d username developers
```
## Sudo Configuration
```bash
# /etc/sudoers.d/developers
%developers ALL=(ALL) NOPASSWD: /usr/bin/docker
username ALL=(ALL) NOPASSWD: ALL
```
## File Permissions
```bash
chmod 755 file # rwxr-xr-x
chmod u+x file # Add execute for user
chown user:group file # Change ownership
chown -R user:group dir/
# ACLs
setfacl -m u:user:rx file
getfacl file
```
## Best Practices
- Use groups for access control
- Minimal sudo privileges
- Regular access reviews
- Strong password policies
@@ -0,0 +1,56 @@
---
name: windows-server
description: Administer Windows Server systems. Manage IIS, Active Directory, and PowerShell automation. Use when administering Windows infrastructure.
license: MIT
metadata:
author: devops-skills
version: "1.0"
---
# Windows Server Administration
Windows Server management and PowerShell automation.
## Server Roles
```powershell
# Install IIS
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
# Install AD DS
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
# List installed features
Get-WindowsFeature | Where-Object Installed
```
## System Information
```powershell
Get-ComputerInfo
Get-Process
Get-Service
Get-EventLog -LogName System -Newest 50
```
## IIS Management
```powershell
# Create website
New-Website -Name "MyApp" -Port 80 -PhysicalPath "C:\inetpub\myapp"
# Create app pool
New-WebAppPool -Name "MyAppPool"
# Start/Stop
Start-Website -Name "MyApp"
Stop-Website -Name "MyApp"
```
## Best Practices
- Use Server Core when possible
- Implement Windows Admin Center
- Regular Windows Update
- PowerShell remoting over WinRM
- Active Directory best practices