Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solidrhino/infra
Infrastructure as Code (IaC) for managing Raspberry Pi servers using Ansible. Automates the setup and maintenance of development tools, system configurations, and services.
https://github.com/solidrhino/infra
ansible automation configuration-management devops docker infrastructure-as-code linux raspberry-pi server-management
Last synced: 15 days ago
JSON representation
Infrastructure as Code (IaC) for managing Raspberry Pi servers using Ansible. Automates the setup and maintenance of development tools, system configurations, and services.
- Host: GitHub
- URL: https://github.com/solidrhino/infra
- Owner: SolidRhino
- Created: 2025-01-17T16:11:23.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2025-01-17T16:25:06.000Z (17 days ago)
- Last Synced: 2025-01-17T17:26:30.593Z (17 days ago)
- Topics: ansible, automation, configuration-management, devops, docker, infrastructure-as-code, linux, raspberry-pi, server-management
- Language: Just
- Homepage:
- Size: 56.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ RPi Infrastructure
> ๐ค Infrastructure as Code (IaC) for managing Raspberry Pi servers using Ansible. Automates the setup and maintenance of development tools, system configurations, and services.
## โจ Features
### ๐ง System Configuration
- ๐ฆ Package management and system updates
- ๐ Security configurations
- ๐ก๏ธ Performance optimizations with Argon cooling
- โก Overclocking support (when cooling is properly configured)### ๐จโ๐ป Development Environment
- ๐ฆ Rust and Cargo setup
- ๐ ๏ธ Modern CLI tools installation and configuration
- ๐ Docker environment setup
- ๐ Common development packages### ๐ Shell Environment
- ๐ Fish shell with modern configuration
- โญ Starship prompt for enhanced CLI experience
- ๐ Useful aliases and functions
- ๐งฐ Improved CLI tools:
- ๐ Bottom (btm) - Modern system monitor
- ๐ Eza - Enhanced file listing
- ๐ Bat - Enhanced file viewer
- ๐บ๏ธ Zoxide - Smart directory navigation## ๐ Prerequisites
- ๐ฎ Ansible 2.9 or higher
- ๐ฅง Raspberry Pi running Ubuntu/Debian
- ๐ SSH access configured
- โก Just command runner (optional, but recommended)## ๐ Directory Structure
```
infra/
โโโ playbooks/
โ โโโ tasks/
โ โ โโโ system.yaml # ๐ง System configuration tasks
โ โ โโโ development.yaml # ๐จโ๐ป Development tools tasks
โ โ โโโ shell.yaml # ๐ Shell configuration tasks
โ โ โโโ terminal.yaml # ๐ป Terminal configuration tasks
โ โ โโโ overclocking.yaml # โก Overclocking configuration
โ โโโ run.yaml # ๐ Main playbook
โ โโโ update.yaml # ๐ Update playbook
โ โโโ reboot.yaml # ๐ Reboot playbook
โโโ roles/ # ๐ญ Ansible roles
โโโ group_vars/ # โ๏ธ Variable files
โโโ justfile # ๐ Just command definitions
```## ๐ Quick Start
1. Clone the repository:
```bash
git clone https://github.com/SolidRhino/infra.git
cd infra
```2. Initialize the environment:
```bash
just init
```3. Run the playbook:
```bash
just run server
```## ๐ฎ Available Commands
### ๐ฏ Main Operations
- `just run server` - ๐ Run main configuration playbook
- `just update server` - ๐ Update system and tools
- `just quick-update server` - โก Quick system update only
- `just dev-update server` - ๐ ๏ธ Update development tools
- `just reboot server` - ๐ Reboot the server### ๐จโ๐ป Development Operations
- `just lint` - ๐ Run ansible-lint
- `just format` - โจ Format and lint yaml files
- `just init` - ๐ฎ Initialize development environment### ๐ง Maintenance
- `just clean` - ๐งน Clean up temporary files
- `just facts server` - ๐ Show Ansible facts for host
- `just ping server` - ๐ Test connectivity## ๐ Update Process
The repository includes separate playbooks for different update scenarios:
- ๐ฆ Full system update:
```bash
just update server
```- โก Quick system update (OS packages only):
```bash
just quick-update server
```- ๐ ๏ธ Development tools update:
```bash
just dev-update server
```## โ๏ธ Customization
1. โ๏ธ Edit `vars/` files to customize configurations
2. ๐ง Modify tasks in `playbooks/tasks/` for specific needs
3. โ Add new roles to `roles/` directory
4. ๐ Update `justfile` for new commands## ๐ค Contributing
1. ๐ด Fork the repository
2. ๐ฟ Create a feature branch
3. ๐พ Commit your changes
4. ๐ Push to the branch
5. ๐ฌ Create a Pull Request## ๐ Acknowledgments
- ๐ฎ [Ansible](https://www.ansible.com/)
- ๐ [Fish Shell](https://fishshell.com/)
- โญ [Starship](https://starship.rs/)
- ๐ [Bottom](https://github.com/ClementTsang/bottom)
- ๐ [Eza](https://github.com/eza-community/eza)
- ๐ [Bat](https://github.com/sharkdp/bat)
- ๐บ๏ธ [Zoxide](https://github.com/ajeetdsouza/zoxide)---
๐ Star this repository if you find it helpful!