A desktop salted with SaltStack
This is ubuntu-post-install-todo automated with SaltStack.
It follows the sane defaults and overrides by Pillar conventions as mentioned in SaltStack's docs. This means it's highly configurable and easy to expand with your own wishes.
Ubuntu 14.04 LTS is supported and thoroughly tested, because that is the OS on which this is used.
However SaltStack supports use cases with OS filtering, so you are welcome to add support for other distributions or Ubuntu versions.
This is a repository that uses a SaltStack masterless minion, also called standalone minion in SaltStack's docs.
It has not been tested in a master/minion setup, you are welcome to test and improve it for that use case.
Scripts-to-rule-them-all is used to install needed dependencies and to start the provisioning with SaltStack. Take note that the script asks for sudo rights and doesn't function without it.
Before firing it up you need to setup your Pillar data. Read on for instructions.
- clone this repository
- cd into it
# adds SaltStack, installs salt-minion and configures the minion, will ask for sudo
./script/bootstrap
- Create
saltstack/pillar/top.sls
with the following content:
base:
'*':
- data
- Create
saltstack/pillar/data.sls
- In data.sls set your preferences,
user
is required, the following is an example:
user: vagrant
pre_desktop:
disable_quiet_graphical_boot: true
locale_system: nl_NL
timezone: Europe/Amsterdam
accept_mscorefonts_eula: true
install_restricted_extras: true
post_desktop:
autologin: true
customize_desktop:
third_party_applications:
- google-chrome
- spotify
- sublime-text
- virtualbox
- vagrant
- nodejs
- dropbox
- smplayer
launcher_favorites_applications:
- firefox
- spotify
- sublime_text
configure_git:
user:
name: John Doe
email: [email protected]
core:
editor: vim
merge:
tool: kdiff3
generate_ssh_keys:
- comment: [email protected]
identifier: github
- comment: [email protected]
identifier: gitlab
install_gems:
- rubocop
- git-up
install_packages:
- shellcheck
- vim
- git
- gdebi-core
- byobu
- kdiff3-qt
install_pips:
- flake8
- pep257
update_pips: true
The options are kind of self explanatory, open an issue when you have a question.
Run ./script/update
to start the provisioning with SaltStack, it will ask for sudo.
There are 3 phases that all need a reboot from the terminal, if you do a reboot from the
unity gui it will overwrite setting like the launcher_favorites_applications
.
When the system is rebooted run ./script/update
to get to the next phase.
pre_desktop
, will always run.post_desktop
, will only run whenpre_desktop
has run.customize_desktop
, will only run afterpost_desktop
has run and theuser
that you specified has logged in to Unity at least once.
- Be sure to set
user: vagrant
in your pillar files. - run
vagrant plugin install vagrant-cachier
to activate local caching. - the first
vagrant up
will run the bootstrap script, followed by the update script. vagrant reload
will reboot the machine for you and run the update script to go to the next phase.