infrastructure management, configuration management, orchestration & remote execution
Here are some tricks, because the documentation is a bit …dense, structured strange and incomplete..
Use the latest versions from salt repo, because various things like finger-key-exchange have been modified in 2016 and you get authentication errors with older versions
debian:
wget -4 -O - https://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -
add to /etc/apt/sources.list:
debian 8 - jessie:
deb http://repo.saltstack.com/apt/debian/8/amd64/latest jessie main
debian 9 - stretch:
deb http://repo.saltstack.com/apt/debian/9/amd64/latest stretch main
install:
apt-get install salt-minion
if you get python-systemd not installable, maybe you have pinned all *systemd* packages in /etc/apt/preferences.d/systemd to avoid systemd installation?
add to /etc/apt/sources.list:
debian 8 - jessie:
deb http://repo.saltstack.com/apt/debian/8/armhf/latest jessie main
debian 9 - stretch:
deb http://repo.saltstack.com/apt/debian/9/armhf/latest stretch main
set ID in /etc/salt/minion_id
xxxx.yyyy
config in /etc/salt/minion :
master: 1.2.3.4 # or hostname master_finger: 'xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:.....' mine_functions: test.ping: [] grains.items: [] network.ip_addrs: interface: eth0
You can use a local repository to store states, but it must be a *bare* repository.
Salt refreshes the cache by default every 60 seconds!
# create bare repository: mkdir -p /srv/repos/salt/states git init --bare
# clone it somewhere and add your states: git clone file:///srv/repos/salt/states # ... git add . git commit git push
Salt master configuration:
fileserver_backend: - git
gitfs_remotes: - file:///root/salt/states
salt-minion not starting - probably in lxc-vs:
multiprocessing.SemLock(kind, value, maxvalue) OSError: [Errno 38] Function not implemented
/dev/shm missing - add to /etc/fstab (in vs):
none /dev/shm tmpfs rw,nosuid,nodev,noexec 0 0
mkdir /dev/shm mount /dev/shm