Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/compscidr/iac
Experiments with infrastructure as code
https://github.com/compscidr/iac
ansible debian docker goblog grafana livepeer lolminer metrics nginx-proxy prometheus terraform ubuntu
Last synced: about 2 months ago
JSON representation
Experiments with infrastructure as code
- Host: GitHub
- URL: https://github.com/compscidr/iac
- Owner: compscidr
- License: apache-2.0
- Created: 2020-09-20T22:03:24.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-04T16:34:41.000Z (about 2 months ago)
- Last Synced: 2024-11-04T17:33:58.669Z (about 2 months ago)
- Topics: ansible, debian, docker, goblog, grafana, livepeer, lolminer, metrics, nginx-proxy, prometheus, terraform, ubuntu
- Language: YAML
- Homepage:
- Size: 2.11 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![ansible lint](https://github.com/compscidr/iac/actions/workflows/ansible-lint.yml/badge.svg)](https://github.com/compscidr/iac/actions/workflows/ansible-lint.yml)
[![ansible lint rules](https://img.shields.io/badge/Ansible--lint-rules%20table-blue.svg)](https://ansible-lint.readthedocs.io/en/latest/default_rules.html)# Infrastructure as Code
There are several goals of this project
1. a friction-less way to get back to normal after a fresh install of an OS for
local devices, and use a common set of expectations for all devices in my fleet
2. a way to easily provision and deploy cloud resources
3. a minimal amount of secret management by encrypting secrets## Terraform
Used to provision cloud resources (currently on digital ocean and terraform):
- compute
- dns entries
- todo: firewall / vpc configs[Read more](terraform/README.md)
## Ansible
Used to provision software, services and configuration to local machines and cloud resources
- apt packages for non-gui development (ie common to headless and non-headless)
- apt packages for gui only (don't install on headless setups)
- docker containers
- nginx proxy to [www.jasonernst.com](https://www.jasonernst.com)
- letsencrypt to [www.jasonernst.com](https://www.jasonernst.com)
- goblog to [www.jasonernst.com](https://www.jasonernst.com)
- prometheus and grafana locally on lp.jasonernst.com accessible via ssh tunnel
- ombi to [ombi.jasonernst.com](https://ombi.jasonernst.com)
- livepeer orchestrator to `lp.jasonernst.com`
- amd lolminer, livepeer transcoder to ubuntu-server, ubuntu-desktop
- nvidia lolminer, livepeer transcoder to ubuntu-desktop-beast
- plex, radarr, sonarr to ubuntu-server
- /etc/hosts files
- ssh keys
- .ssh/config mapping identities to hosts and jumpboxes where necessary- `home.jasonernst.com` pointed to ubuntu-server configured as an ssh jump box into the lan
[Read more](ansible/README.md)
## Packer
Used for a clean and consistent debian virtualbox environment to generate debian packages since most of my systems are ubuntu. Currently not needed because I can accomplish the same thing with a pre-built debian vagrant box. Would be useful if
I needed to do any additional scripted setup that can't be done with ansible.