This guide is for setting up a complete development environment using an Ansible Playbook. It's designed for developers.
The "Development Box" is a ready-to-use environment for developers.
You need ansible on your computer.
It uses Open Source software like:
- Fedora
- Homebrew on Linux
- Docker and Docker Compose
- Flatpak
- dotfiles
- tilix
It also includes client apps for app development:
- sdkman
- nvm
- tfenv
Follow the next steps to customize and set up your "Development Box".
---
##### role geerlingguy.docker
docker_users:
- "{{ ansible_user_id }}"
##### role gantsign.sdkman
sdkman_users:
- "{{ ansible_user_id }}"
##### role homebrew
homebrew_taps:
- homebrew/core
- aws/tap
homebrew_installed_packages:
- jq
- yq
##### dotfiles
dotfiles_repo:
url: https://github.com/thoughtbot/dotfiles.git
version: main
accept_hostkey: false
##### role: unarchive_packages
unarchive_packages:
- package_binary_dir: "{{ ansible_env.HOME }}/.local/lib/openshift-v4/clients/ocp/4.12.0/openshift-client"
package_archive: openshift-client-linux-4.12.0.tar.gz
package_url: https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.12.0/openshift-client-linux-4.12.0.tar.gz
package_checksum: sha256:4523129522a89cc2c0d18e4e4c794b2409ec67b465de378616902dcacfc27860
exclude: []
force_install: false
link_dir: "{{ ansible_env.HOME }}/.local/bin"
package_bins:
- kubectl
- oc
##### role: flatpaks
flatpak_packages:
- com.google.Chrome
##### tigervnc
tigervnc_username: "{{ ansible_user_id }}"
tigervnc_groupname: "{{ ansible_user_id }}"
# Connecting to tigervnc-server requires a password.
tigervnc_password: vncpass
# Use existing user's vnc paswword
tigervnc_user_exists: false
# Desktop session xstartup should connect to e.g. gnome-session, mate-session
tigervnc_desktop_session: gnome-session
To install the latest version:
On Fedora, run:
dnf -y install git ansible make findutils binutils nano distribution-gpg-keys
Clone the repository:
git clone https://github.com/duplolab/devbox.git
Install Ansible Galaxy dependencies:
ansible-galaxy install -r requirements.yml
ansible-galaxy collection install -r requirements.yml
To execute: For workstation, desktop:
ansible-playbook -i hosts.yaml playbook-devbox-gui.yaml --ask-become-pass
Or for WSL, CLI only:
ansible-playbook -i hosts.yaml playbook-devbox-cli.yaml --ask-become-pass