Skip to content
/ envelop Public

Personal automation project

Notifications You must be signed in to change notification settings

eblume/envelop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Envelop
Erich Blume

This is an ansible project to deploy my development environment and dotfiles.
Use it as a jumping off point for your own work, as this is highly customized
to my own setup.

# Initial Setup

## Overview

The following steps are the overall process for using `envelop`. Note that your operating system may require specific installation instructions, outlined below.

1. Install zsh using whatever method you prefer. I am using OS X's system zsh. Set it to be your login shell. (Or, edit this project to remove the dependency on zsh.)
2. Run the linking script to install Envelop's ansible configuration in to your preferred runtime location with symlinks. (Run `./bin/link_paths` with no arguments to get usafe information.) [See also 'About Linking'].
3. Install ansible >= 2.10.0.

## OS X

You must first install Homebrew: https://brew.sh 

Then, use homebrew to install pyenv.

Next, either manually copy over the .zshrc template or else manually add this line to your `.zshrc`:
 
    eval "$(pyenv init -)"

And then run `pyenv install 3.9.4` (or whatever other version you prefer) and `pyenv global 3.9.4`.

OPTIONAL: Then, launch a rosetta-2 enabled terminal, and install homebrew again (this time in /usr/local, which will be selected by default).

Then continue with the overview in a non-rosetta2-terminal.

Note: envelop specifies to use the non-rosetta homebrew in its setup
whenever possible. The rosetta-enabled homebrew is for handling
some things I need for work that are not tracked in this repo.

These steps are then duplicated in Envelop proper, but are needed to allow the first run to work. It is an open TODO to fix this issue.

## Linux / POSIX

Use your distribution's package manager to install pyenv, then proceed with the overview.

Also, please be aware, I am not currently running Envelop on Linux any more and so this configuration is likely to drift out of date. (Although even that may not be true when you read this.)

# About Linking

Envelop requires that `ansible-playbook` be executable with ansible configuration properly installed in some location it can find. To ensure this, Envelop provides the `link_paths` script to automate the process. But this is all a kludge. There's GOT to be some
way to have ansible run from the current directory or otherwise handle this use case. Besides, all of envelop still currently has a totally broken install process that doesn't scale well. This is all one big TODO notice:

Envelop needs an overhaul with better installation and modularization.

Oh well, this will have to do for now.

## Customizing Envelop to work for You

Edit at minimum the following files to ensure they match your setup (you
should audit all files though):

    ./host_vars/{your_machine_hostname}.yaml
    ./playbooks/provision.yaml
    ./roles/common/tasks/personal_dev.yaml  # you probably don't want my personal projects, you probably want your own. Your call. :)

Finally, to run envelop's provisioning agent, use:

    ./run_local.sh --ask-become-pass  # you can remove --ask-become-pass if you have password-less SUDO enabled

About

Personal automation project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published