This Ansible role configures my Pop_OS! 18.04 development machine, including applications, OS configuration, and dotfiles.
The role includes:
-
SSH
- Generate new SSH keypair for
user@machine
and register with Github and Gitlab
- Generate new SSH keypair for
-
Shell config & desktop environment stuff
- Zsh with configuration, plugins and colour settings
- Gnome extensions
- XDG spec folders
- pip
- dconf-editor
- Fonts
- Dotfiles and shell scripts
-
General apps
-
Communication
-
Dev tools
- Node Version Manager and desired node versions
- SDKMAN!
- Neovim with configuration and plugins
- Tmux with configuration
- Tmuxinator
- jq
- Visual Studio Code
- Gitkraken
- Postman
- Jetbrains Toolbox
- Docker CE
- OpenShift CLI
- VirtualBox
- Vagrant
XDG: The role assumes the usage of the default XDG Base Directory Specification locations for user config, data and cache folders:
Variable | Default Value |
---|---|
xdg.XDG_CACHE_HOME |
$HOME/.cache |
xdg.XDG_CONFIG_HOME |
$HOME/.config |
xdg.XDG_DATA_HOME |
$HOME/.local/share |
ZSH:
Variable | Default Value |
---|---|
zsh.zshenv |
/etc/zsh/zshenv |
zsh.fpath |
/usr/local/share/zsh/site-functions |
SDKMAN!
Variable | Default Value |
---|---|
sdkman.download_url |
https://get.sdkman.io |
Node:
Variable | Default Value |
---|---|
nvm.download_url |
https://raw.githubusercontent.com/creationix/nvm |
nvm.version |
0.35.1 |
node.versions |
[10, 8] |
Tmuxinator
Variable | Default Value |
---|---|
tmuxinator.zsh_completion_url |
https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/tmuxinator.zsh |
SSH keys will be generated and uploaded to Github and Gitlab:
Variable | Default Value |
---|---|
ssh.passphrase |
empty |
ssh.github_username |
empty |
ssh.github_token |
empty |
ssh.gitlab_host |
empty |
ssh.gitlab_token |
empty |
GitKraken
Variable | Default Value |
---|---|
gitkraken.download_url |
https://release.axocdn.com/linux/gitkraken-amd64.deb |
Ansible Toolbox
Variable | Default Value |
---|---|
ansible_toolbox.download_url |
git+https://github.com/larsks/ansible-toolbox |
Docker:
Variable | Default Value |
---|---|
docker.credentials_archive_url |
https://github.com/docker/docker-credential-helpers/releases/download |
docker.credentials_version |
0.6.3 |
OpenShift:
Variable | Default Value |
---|---|
openshift.oc_archive_name |
openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit |
openshift.oc_archive_url |
https://github.com/openshift/origin/releases/download |
openshift.oc_version |
3.11.0 |
Fonts
Variable | Default Value |
---|---|
fonts | [hasklig] |
-
Install JMESPath (required for Jetbrains Toolbox role).
$ sudo apt install python-jmespath
- hosts: localhost
roles:
andrew-dias.ansible-role-dev-machine
# optionally prompt for ssh key passphrase
- vars_prompt:
- name: "ssh_key_passphrase"
prompt: "Enter SSH key passphrase"
private: yes
Once completed, you should:
- Log out to ensure all changes are activated
- Open a terminal and choose your colour theme by typing
base16
followed by a tab to perform tab completion.
cmprescott.chrome
jaredhocutt.jetbrains_toolbox
geerlingguy.docker
https://github.com/andrew-dias/ansible-role-vagrant
https://github.com/andrew-dias/ansible-role-virtualbox
https://github.com/andrew-dias/ansible-gnome-extensions
MIT
This role was created in 2019 by Andrew Dias.