Article Image
Article Image
read

I never wanted to manually configure my OS environment again.

Check out the repo on GitHub.

After years of having to set aside a day or two to setup a new computer or reconfigure my environment after a clean OS install, I wanted to find a better way.

I started off with a simple shell script that copied my .tmux, .vimrc and .zshrc files to my home directory and installed some Homebrew packages.

Then a colleague introduced me to Ansible

Ansible is a framework that structures the provisioning process for a new machine or clean OS with declarative YAML files.

The basic components of Ansible are:

  • Inventory: the machine or OS that Ansible will run on.
  • Play: a unique, declared environment that will be installed on an Inventory.
  • Role: a single configuration task. Example tasks that each would be an independent role: Install my Homebrew packages, Configure my zsh, or Set my standard macOS defaults.
  • (Optional) bootstrap.sh: single script that can be triggered to provision a local machine. It likely will clone the .files repo, installs Ansible, and start the Ansible playbook.

My .files repo holds my Ansible configuration, and all static scripts and files I need for a new machine. It works great on a clean macOS environment and I’ll be expanding it to work on Linux soon.

If you’d like to build your own, feel free to fork my repo or check out any of the helpful resources and examples below!

Resources


If this is the type of impact you want a full stack dev to have starting May 2018, let's chat. Email me at andrewparadi.com or check my resume.

Andrew Paradi

Andrew Paradi

I study computer science at University of Waterloo, built 7 apps in 16 weeks at Atomic, and don't sleep at hackathons.


Published

Image

Andrew Paradi

Full Stack Engineer

Experience Projects Blog About Contact Resume