https://github.com/jbukuts/infra
Ansible configuration for home server
https://github.com/jbukuts/infra
ansible automation devops
Last synced: 10 months ago
JSON representation
Ansible configuration for home server
- Host: GitHub
- URL: https://github.com/jbukuts/infra
- Owner: jbukuts
- Created: 2023-08-22T01:34:17.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-10T18:11:14.000Z (almost 3 years ago)
- Last Synced: 2025-04-08T15:21:20.829Z (about 1 year ago)
- Topics: ansible, automation, devops
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Home Server Ansible Config
Contained in this repo is the Ansible configuration I defined for use on my home server.
Server Info:
```txt
MOBO: Asus Z10PA-D8
CPU: 2 x Intel E5 Xeon 2683 v4
RAM: 128 GB 2400Mhz DDR4 ECC
OS: 22.04 Ubuntu Home
```
## Steps
First start by install any required roles or collections via:
```sh
ansible-galaxy install -r requirements.yml
```
A quick overview of the steps taken to initialize my home server is this
1. Initial system configuration
- SSH settings
- No password auth allowed
- Copy key file
- Passwordless sudo for my user
2. Building RAID arrays
- I've written two roles for this. One using `zfs` and the other `mdadm`.
- The arrays aren't too complicated and are built via `mdadm`. No fancy caching or additional parity.
- They can be specified via some variables as to which drives are in what arrays, their mount points, and RAID level.
- more in depth explanation [here]()
- I've catered this role to work on Ubuntu (Debian) systems primarily given that's my use case.
3. Install and configure Docker containers
- The installation itself is handled via [geerlingguy's role]()
- The containers I provision are:
- Portainer Community Edition
- Plex
- PiHole
- Transmission
- I choose to use strict versions for my containers to not introduce breaking changes by accident
4. Configure NAS capabilities via Samba
## Shout outs
I'm no ansible expert so I'll link the various sources I pulled from to get this working: