Skip to content

apergos/docker-saltcluster

Repository files navigation

Image for: Repository files navigation

docker-saltcluster

The saltcluster.py script facilitates the setup and running of a salt cluster in docker containers on a single host, intended for use in a testing environment.

NOTE: This has been tested (only) on Fedora 20 with docker 0.7.0, 0.7.5, 0.7.6 and various versions of docker from 1.0 on.

How to use:

all of the following should be done as root, except for use/testing of the cluster.

  • grab all the debs we have available and that you might need for salt for your platforms: cd salt bash ./download_debs.sh

    (supported platforms are lucid, precise, trusty, jessie with 0.17.x, 2014.1.x, 2014.7.x; other versions can be added if you either send me email with pointers to the packages or download them yourself and put them into the staging area 'debs')

  • create the salt base images: cd salt ./build-images.sh cd ..

  • decide what branches, tags, or package versions of salt you want to use in your test cluster; examples: v0.15.0 or e0961baedeeb8cf0e8683deac38c2f6404b4265a for git 0.17.5+ds-1_all for deb

  • decide how many minions you want of each version in your cluster. you could start with 1 minion total for a small test or 100 for a larger scale test

  • create the cluster: python salt-cluster.py --create
    --miniontags number-of-minions:ubuntuversion:gitordebversion:gitordeb,...
    --mastertag ubuntuversion:gitordebversion:gitordeb example: python salt-cluster.py --create --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git --verbose

  • start the cluster: python salt-cluster.py --start --miniontags tagspec --mastertag tagspec example: python salt-cluster.py --start --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git --verbose

  • configure the cluster: python salt-cluster.py --configure --miniontags tagspec --mastertag tagspec example: python salt-cluster.py --configure --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git --verbose

  • issue salt commands from the salt master by ssh-ing into the container: ./ssh-to-master.sh <-- FIXME (password: testing) salt '*' test.ping

  • when you are done testing, stop the cluster: python salt-cluster.py --stop --miniontags tagspec --mastertag tagspec example: python salt-cluster.py --stop --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git --verbose

  • when you no longer need the containers with this salt branch or commit, delete the cluster: python salt-cluster.py --delete --miniontags tagspec --mastertag tagspec example: python salt-cluster.py --delete --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git --verbose

  • when you are done with the base images too, toss them by cd salt ./rm-images.sh

Note that the first three steps can be done as one: example: python salt-cluster.py -c -s -C --miniontags 1:precise:v0.17.1:git --mastertag precise:v0.17.1:git This will create, start and then configure the cluster.

It is a good idea, if you are going to have multiple clusters around at the same time, to specify a distinct base name for the master and the minions of that cluster; this can be done via the --master and --minion arguments. For more information information on this and other options, give the command

python salt-cluster.py --help

License information: copyright Ariel T. Glenn 2013-2015, GPL v2 or later. For details see the file COPYING in this directory.

About

Image for: About
No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

Image for: Releases
No releases published

Packages

Image for: Packages 0
No packages published