# hshbase

Basic server configuration used for most unix based servers at HsH.

__NOTE: ELC also relies on this formula - they will receive updates immediately.
If your plan to make breaking changes. Communicate this just in time__

## States

### hshbase

Installs everything

### hshbase.apt

Configures apt package manager on debian and ubuntu machines

### hshbase.time

**DEPRECATED** this formula only manages the time server up to debian 9 and ubuntu 16.04.
Starting with debian buster and ubuntu bionic beaver we use the systemd formula for network and timeserver configuration.

Install NTP, and sets timezone + timeserver

### hshbase.openvmtools

Install the package open-vm-tools

### hshbase.locale

Install system locales and additional ones optionally

### python-packages

Install python modules for salt grains or modules - Currently:

* **netifaces** useful information in grains about net cfg
* **psutil** TODO: who needs that?!

## Configuration

The states of this formula should be configurable using one central pillar
for all configurations. Have a look at pillar.example for details.

## Development

**All features should be as configurable as necessary.
Keep it simple, stupid ([KISS](https://de.wikipedia.org/wiki/KISS-Prinzip)).**

Working on this formula requires virtualbox and vagrant installed.
It comes with an vagrant box you can instantly set up to get a machine where all states will apply against.

```bash
git clone ssh://git@lab.it.hs-hannover.de:2222/salt/hshbase-formula.git
cd hshbase-formula
vagrant up
vagrant ssh
sudo salt-call state.highstate
```

### Default values when developing the formula

If you introduce a new feature and want to make it configurable you might need
default values. Just add them to defauls.yaml and they are magically available.

Consult map.jinja for details on this topic.