https://github.com/endalk200/init
Ansible and bash scripts to setup a new machine for my development flow installing all needed tools and packages. Setup project directories
https://github.com/endalk200/init
ansible-playbook setup setup-development-environment
Last synced: 3 days ago
JSON representation
Ansible and bash scripts to setup a new machine for my development flow installing all needed tools and packages. Setup project directories
- Host: GitHub
- URL: https://github.com/endalk200/init
- Owner: endalk200
- Created: 2023-05-31T13:54:00.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-09T19:12:24.000Z (over 1 year ago)
- Last Synced: 2025-01-13T19:40:07.971Z (about 1 year ago)
- Topics: ansible-playbook, setup, setup-development-environment
- Language: HCL
- Homepage:
- Size: 18.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# init
When you live in a command line, configurations are a deeply personal thing. They are often crafted over years of experience, battles lost, lessons learned, advice followed, and ingenuity rewarded. When you are away from your own configurations, you are an orphaned refugee in unfamiliar and hostile surroundings. You feel clumsy and out of sorts. You are filled with a sense of longing to be back in a place you know. A place you built. A place where all the short-cuts have been worn bare by your own travels. A place you proudly call… `$HOME`.
> Credit for the above beautiful text goes to the YADM team even though I don't use it to manage my dotfiles. I prefer to use stow.
## What is init
This repository contains configurations (Terraform code, Ansible collections and shell scripts) for setting up and managing remote dev environments, local dev containers and new dev machines.
- Terraform modules to provision remote dev environments on Azure and AWS.
- Ansible playbooks to configure provisioned dev environments.
## Directory structure
```
.
├── .
├── infrastructure/
│ ├── aws - terraform code to provision dev machine on aws
│ ├── azure - terraform code to provision dev machine on azure
│ ├── gcp - terraform code to provision dev machine on gcp
│ ├── digital-ocean - terraform code to provision dev machine on digital ocean
│ └── linode - terraform code to provision dev machine on linode
└── config/
├── playbooks/
│ ├── core.yaml - playbook to install core packagaes and utilities for development
│ ├── zsh - playbook to install and configure zsh
│ └── dotfiles.yaml - playbook to clone and configure dotfiles
├── scripts
└── remote.yaml - entry point ansible playbook to configure remote dev machines
```
## Usage
Provision your resource.
```
# ./infrastructure/azure
terraform plan
terraform apply
```
Take the generated public key and public IP address from terraform output and configure inventory.ini. Configure the provisioned resource
```
# ./configure
ansible-playbook -i inventory.ini remote.yaml
```