Saltstack install: Difference between revisions
Line 39: | Line 39: | ||
Downsides include taking responsibility for updates. Please make certain to do so! | Downsides include taking responsibility for updates. Please make certain to do so! | ||
=== Base Install === | |||
<blockquote> | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo -i | sudo -i | ||
Line 45: | Line 47: | ||
bin/pip install salt | bin/pip install salt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Base Install --> | |||
=== systemd === | === systemd === |
Revision as of 20:54, 12 March 2022
General
Installation Type
Salt has very flexible installation options. Before you install, you should decide how you'd like to use salt.
- salt-master/salt-minion:
- salt-master: hosted on central server. keeps the statefiles, pillar, and manages encryption/decryption of pillar.
- salt-minion: hosted on each salt-managed server. Receives/Applies instructions from salt-master.
- serverless
- states/pillar stored locally, and states are applied with argument
--local
.Installer Options
If you are installing on a unix system, you can install salt either by using the version of salt in your distrobution's package repository or using salt's bootstrap script.
- unix: use your distrobution's installer if current enough for salt-master. Fall back on bootstrap script.
- windows: use chocolatey if installed, otherwise https://docs.saltstack.com/en/latest/topics/installation/windows.html
Bootstrap script Install
curl -L https://bootstrap.saltstack.com -o /tmp/install_salt.sh sudo sh /tmp/install_salt.sh -M rm /tmp/install_salt.sh
platforms
Virtualenv
Saltstack is written in python, an interpreted language.
Most package managers do not isolate installed programs, leading to requirement conflicts.
There is value in installing saltstack into a virtualenv, so that your userland and saltstack do not conflict with each other.
Downsides include taking responsibility for updates. Please make certain to do so!Base Install
sudo -i virtualenv services/saltstack cd services/saltstack bin/pip install saltsystemd
# /etc/systemd/system/virtualenv-salt-minion.service [Unit] Description=Salt-Minion [Service] KillMode=process Type=notify NotifyAccess=all LimitNOFILE=8192 ExecStart=/root/services/saltstack/bin/salt-minion [Install] WantedBy=multi-user.targetYou'll also want to install symlinks for salt's various executables.
for exe in salt-api salt salt-api salt-call salt-cloud salt-cp salt-key salt-run salt-ssh salt-syncdic salt-unity; do ln -s /root/services/saltstack/bin/${exe} /usr/bin/${exe} doneFreeBSD-init
TODO
FreeBSD
pkg instsall py37-salt # if unable to master over localhost, likely a silent permissions issue find /var/log/salt -exec chown salt:salt {} \; find /usr/local/etc/salt -exec chown salt:salt {} \;Archlinux
sudo pacman -S saltUbuntu/Debian
CentOS
Windows
Diable UAC
choco install saltminionMacOS
macports
sudo port install salt-minion sudo port install py27-crypto sudo port install py27-requests # enable service sudo port load salt-minionbrew
brew install saltstack