A Ansible playbook that configures a Ubuntu client for Ansible and Terraform development in VS Code.
I created this playbook so that someone who is not familiar with Ansible or Terraform can easly spin up a environment where the needed tools (I.E: Ansible
,Terrform
,doctl
, aws-cli
, molecule
) and a IDE are neatly configured for them.
Note: Preferably run this in a VM, not on your actual machine. This playbook might overwrite some exisiting settings if you are using some of these tools. Once you are familiar with Ansible just create your own playbook that set these things up for you 😉
- Run
curl https://raw.githubusercontent.com/justin-p/ansible-terraform-workstation/master/setup.sh | bash
- Enter sudo password.
- Reboot the system.
git clone https://github.com/justin-p/ansible-playbook-terraform-workstation
cd ansible-playbook-terraform-workstation
sudo apt-get update -y && sudo apt-get install git curl python3 python3-pip
pip3 install --user ansible
export PATH=$PATH:/$HOME/.local/bin
ansible-galaxy install -r requirements.yml
ansible-playbook main.yml -i inventory.yml
- Reboot the system.
This playbook includes Molecule that will spin up a local docker environment to deploy, configure and test this playbook.
Development requirements:
- Docker
- Molecule
- yamllint
- ansible-lint
or simply use a VM with this configuration.
-
Build a container and apply the current playbook:
molecule converge
Note, when using converge the container is not destroyed, allowing you to quickly test changes by running this command consecutive times. -
Interact with the containers created by molecule:
molecule login
Note, this works great with converge allowing you to peek inside the container and manually check why things didnt work. -
Apply tests defined in the
verify.yml
file:molecule verify
-
Remove any containers left over from the converge command:
molecule destroy
-
Run the playbook and any included tests against clean containers:
molecule test
MIT
Justin Perdok (@justin-p)
Feel free to open issues, contribute and submit your Pull Requests. You can also ping me on Twitter (@JustinPerdok).