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