16. Basic files of Salt
Configuration files
/etc/salt/master
/etc/salt/minion
/etc/salt/minion_id (generated when first time start daemon)
/etc/salt/pki/ (generated when first time start daemon)
Log: /var/log/salt/
GITFS cache: /var/cache/salt/master/gitfs/refs/master/
17. Basic command
salt
salt –v "*" test.ping
salt –v –L “web1,web2” test.ping
salt –v –E “web[12]” test.ping
Salt –v –N group1 test.ping
salt-key –a, salt-key -d
salt-call
21. Package something and
Run command
salt '*' pkg.install nginx
salt '*' pkg.remove nginx
salt '*' cmd.run ifconfig
22. Batch Size
Use batch size to rolling web server restart.
Example:
salt “websvr*” –batch-size 25% apache.signal restart
salt “websvr*” –batch-size 10 apache.signal restart
23. Troubleshooting and
Test your command
Use salt-call to run locally
Add test=True to just view what will be done.
example:
salt-call -l info state.highstate test=True
salt '*' state.highstate test=True
salt „testsvr01‟ state.sls nginx test=True
Demo: Test failed. only salt-call could see the error.
27. Add a new machine to Salt
Minion: edit /etc/salt/minion
Minion: hostname change to “www-01.dc1”
Minion: service salt-minion start
Master: salt-key -A
28. Configure installation in Salty way
Master: edit /etc/salt/master
Master: Add file top.sls
Master: Add file nginx.sls
Minion: salt-call -l debug state.highstate test=True
Master: salt "*" state.highstate test=True
Execute on master: salt "*" state.highstate
29. Add another new machine to salt
Minion: Add another machine. (hostname)
Master: salt "*" state.highstate
32. Grains in short
Key values items of minion hardware/env.
Only acquire at salt-minion startup.
May be used in sls/template.
Let‟s see how to config by domain/hostname.
Master: salt „*‟ grains.items
Master: Add web_general/web.sls
Master: Modify top.sls
Master: Add conf/dc3/www.conf
Master: salt-call „*.dc3‟ highstate test=True
33. Pillar in short
Usage
Highly Sensitive Data
Minion Configuration
Variables
Arbitrary Data
Example,
DB username, password
Configure config file by hostname
34. GITFS
/etc/salt/master, change below configuration
fileserver_backend:
- git
Gitfs_remotes:
- git@gitlab……..
salt-run fileserver.update
Another method: Or only use gitfs to host config files.
35. Check config before restart
Application support check config in service reload
(“init.d”).
Return error code if failed.
Use cmd.wait:
- name: ”nginx -s reload” # do reload
- onlyif: “nginx -t” # test if config is ok.
- watch:
- file: /etc/nginx/conf.d/my_web.conf
37. Reference for writing SLS
Salt Formulars on github
https://github.com/saltstack-formulas
Salt-states on github
https://github.com/saltstack/salt-states
Other OS installation script supportedAmazon Linux 2012.09ArchCentOS 5/6Debian 6.x/7.xFedora 17/18FreeBSD 9.1GentooLinaroLinux Mint 13/14OpenSUSE 12.xRed Hat 5/6Red Hat Enterprise 5/6SmartOSSuSE 11 SP1/11 SP2Ubuntu 10.x/11.x/12.x/13.04/13.10