Ansible roles to setup Ubuntu desktop. This playbook is focused on quickly deploying a "ready to use" Ubuntu Desktop.
- Git
- Ansible 2+ (automatically installed from Ansible offical PPA with the provided install.sh script)
First, you need to install Git and Ansible :
$ sudo apt-get install git
$ git clone https://github.com/sys0dm1n/ansible-ubuntu-desktop.git
$ cd ansible-ubuntu-desktop
$ bash ./install.sh
Then you need to copy the group_vars/all.yml to group_vars/local.yml and customize which roles suit your needs. All roles except locales,common, and desktop are disabled by default.
Run ansible-playbook ansible-desktop.yml --ask-become-pass and enter your sudo password to run the playbook
Optionaly you can run just some of the tags like:
ansible-playbook ansible-desktop.yml --ask-become-pass --tags=common,locales
Tags are named the same as role dirs. If a role is in a sub dir then the tag for that specific role is sepparated with a colon like: aws:cli. But you can also use aws and that should install all the roles under the aws dir.
| Role | Description |
|---|---|
| General | |
| common | Install a lot of usefull packages (curl, htop, less, zip ... see corresponding task file) |
| locales | Configure system locales and timezone |
| snapd | Install snapd |
| tlp | Install tlp |
| ufw | Install ufw |
| Desktop tools | |
| angryipscanner | Install AngryIPScanner from angryip/ipscan Github Repository |
| atom | Install Atom from WebUpd8 PPA and Sync Settings plugin |
| barrier | Install barrier. Use single keyboard and mouse with multiple computers. |
| bitwarden | Install bitwarden password manager desktop client. |
| chromium | Install Chromium. May also install plugins and set policies |
| desktop | Install a lot of usefull packages (meld, tilda, vlc, xclip) |
| discord | Install Discord chat app. |
| filezilla | Install Filezilla (no particular settings, basic installation) |
| firefox | Install Firefox (no particular settings, basic installation) |
| gimp | Install Gimp and some minor settings |
| gitg | Install Gitg a graphical user interface for git. |
| gnome-encfs-manager | Install gnome-encfs-manager an easy to use manager and mounter for encfs stashes. |
| gparted | Install Gparted a free partition editor for graphically managing your disk partitions. |
| guake | Install guake a customizable dropdown terminal. |
| indicator-sysmonitor | Install indicator-sysmonitor from FOSSFreedom PPA |
| handbrake | Install handbrake a video converting tool from nearly any format to a selection of modern, widely supported codecs. |
| kazan | Install kazan screencast and screencast tool |
| ledger-live-desktop | Install ledger-live-desktop Ledgers Cryptocurrency Hardware Wallet Desktop application. |
| libreoffice | Install LibreOffice using LibreOffice 5.1 PPA |
| losslesscut | Install losslesscut the Swiss Army Knife of Lossless Video/Audio Editing. |
| nautilus-plugins | Install Nautilus plugins |
| nextcloud | Install nextcloud Desktop Sync application. |
| noisetorch | Install noisetorch Real-time microphone noise suppression on Linux. |
| Pop!_OS Shell | Install Pop!_OS Shell Gnome Shell Extension from Pop!_OS/Shell Github Repository |
| remmina | Install Remmina |
| signal | Install Signal chat application. |
| skype | Install Skype |
| slack | Install Slack set of proprietary team collaboration tools and services. |
| solaar | Install Solaar a manager for many Logitech keyboards, mice, and trackpads. |
| sublime3 | Install Sublime Text 3 from WebUpd8 PPA and the Package Control plugin |
| sunflower | Install SunFlowerfom online dev |
| syncthing | Install Syncthing-GTK a GUI and notification area icon for Syncthing. |
| teamviewer | Install TeamViewer from online deb file |
| thunderbird | Install Thunderbird (no particular settings, basic installation) |
| timeshift | Install TimeShift |
| winbox | Install Winbox, a small utility that allows administration of MikroTik RouterOS. |
| Development tools | |
| assh | Install assh A transparent ssh wrapper that adds yaml configuration and more to SSH |
| awscli | Install aws the Amazon command line interface |
| awsebcli | Install eb the Amazon Elastic Beanstalk command line interface |
| awsecscli | Install ecs the Amazon Elastic Container Service |
| dbeaver | Install DBeaver universal database tool from snap |
| docker | Install Docker and Docker compose from Docker deb repository |
| dots | Install dots a dotfile Management Tool |
| java/openjdk | Install Default Java JDK |
| java/openjre | Install Default Java JRE |
| golang | Install go language |
| lens | Install Lens The Kubernetes IDE |
| python | Install python language |
| ruby | Install ruby language |
| kubectl | Install kubectl |
| mysql-workbench | Install MySQL WorkBench from online deb file |
| minikube | Install minikube |
| snapd | Install snapd a service that manages installed snaps (app packages for Linux) |
| ssh | Install OpenSSH Server |
| terraform_landscape | Install landscape a output reformatting tool for terraform plan thats easier to read |
| tfenv | Install tfenv terraform version manager inspired by rbenv |
| tgenv | Install tgenv terragrunt version manager inspired by tfenv |
| tmux | Install tmux tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal. And do a lot more. |
| vagrant | Install Vagrant from online deb file |
| virtualbox | Install VirtualBox from VirtualBox APT repositories |
| zsh | Install zsh shell and oh-my-zsh framework for managing your Zsh configuration |
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests and examples for any new or changed functionality.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request