dockerfiles/salt-master/README.md

1.7 KiB

salt-master

Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds.

Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.

This image contains salt-master/salt-ssh and other power tools:

  • curl
  • httpie
  • ipython
  • jq
  • vim-tiny

network topology

  • master
    • coreos: 192.168.1.1
  • minions
    • arch: 192.168.1.100
    • debian: 192.168.1.101
    • ubuntu: 192.168.1.102

docker-compose.yml

master:
  image: vimagick/salt-master
  ports:
    - "4505:4505"
    - "4506:4506"
  restart: always

salt-master

$ cd ~/fig/salt/
$ docker-compose up -d
$ alias salt='docker exec -it salt_master_1 bash'

salt-minion

# create roster
$ cat > /etc/salt/roster << _EOF_
arch:
    host: 192.168.1.100
    user: root
    passwd: XcAreP36
debian:
    host: 192.168.1.101
    user: root
    passwd: 0Q4yEQw7
ubuntu:
    host: 192.168.1.102
    user: root
    passwd: pc2wW6Dv
_EOF_

# deploy master key
$ salt-ssh -i --passwd xxxxxx --key-deploy '*' test.ping

# install salt-minion
$ salt-ssh '*' -r 'curl -L https://bootstrap.saltstack.com | sudo sh -s -- -A 192.168.1.1'

# list minion keys
$ salt-key -L

# accept minion keys
$ salt-key -y -A

# ping minions
$ salt '*' test.ping

backup volumes

$ docker run --rm --volumes-from salt_master_1 -v `pwd`:/backup debian tar cvzf /backup/salt-$(date +%F).tgz /etc/salt/ /srv/salt/
$ ls -l
-rw-r--r-- 1 root root 14243 Jul  8 21:37 salt-2015-07-08.tgz