justin-p / ansible-playbook-terraform-workstation

A Ansible playbook that configures a workstations for Ansible and Terraform development in VS Code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ansible-playbook-terraform-workstation

Github Actions

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.

vscode

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 😉

Installation

Quick

  1. Run curl https://raw.githubusercontent.com/justin-p/ansible-terraform-workstation/master/setup.sh | bash
  2. Enter sudo password.
  3. Reboot the system.

Manual

  1. git clone https://github.com/justin-p/ansible-playbook-terraform-workstation
  2. cd ansible-playbook-terraform-workstation
  3. sudo apt-get update -y && sudo apt-get install git curl python3 python3-pip
  4. pip3 install --user ansible
  5. export PATH=$PATH:/$HOME/.local/bin
  6. ansible-galaxy install -r requirements.yml
  7. ansible-playbook main.yml -i inventory.yml
  8. Reboot the system.

Local Development

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.

Basic Molecule usage

  • 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

License

MIT

Authors

Justin Perdok (@justin-p)

Contributing

Feel free to open issues, contribute and submit your Pull Requests. You can also ping me on Twitter (@JustinPerdok).

About

A Ansible playbook that configures a workstations for Ansible and Terraform development in VS Code.

License:MIT License


Languages

Language:Shell 100.0%