Skip to content

Commit

Permalink
Create swarm service via API and Reactor
Browse files Browse the repository at this point in the history
  • Loading branch information
daniel committed Jan 21, 2017
0 parents commit edc1b2b
Show file tree
Hide file tree
Showing 62 changed files with 3,514 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.vagrant/
**/_schedule.conf
**/.DS_Store
24 changes: 24 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM ubuntu:16.04

MAINTAINER Daniel Oliveira

RUN apt-get update && apt-get install -y wget && wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add - && \
echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest xenial main" > /etc/apt/sources.list.d/saltstack.list && \
apt-get update && apt-get upgrade -y -o DPkg::Options::=--force-confold

# Add the Salt PPA
RUN apt-get install -y -o DPkg::Options::=--force-confold apt-utils python-software-properties software-properties-common && \
apt-get update

# Install Salt Dependencies
RUN apt-get install -y -o DPkg::Options::=--force-confold \
python \
python-yaml \
python-m2crypto \
python-crypto \
msgpack-python \
python-zmq \
python-jinja2 \
python-requests

RUN apt-get install -y salt-master
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Vagrant

# Master

1 VM Salt Master

# Minions

1 VM NodeJS - FrontEnd
1 VM NodeJS - Backend
1 VM DB - Postgres 9.5
122 changes: 122 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.name = "swarm_saltmaster"
end

config.vm.define :swarm_saltmaster do |master_config|
master_config.vm.box = "ubuntu/trusty64"
master_config.vm.host_name = 'saltmaster.local'
master_config.vm.network "private_network", ip: "10.0.0.110"
master_config.vm.network :forwarded_port, host: 80, guest: 80
master_config.vm.network :forwarded_port, host: 8080, guest: 8080
master_config.vm.synced_folder "./saltstack/salt/", "/srv/salt"
master_config.vm.synced_folder "./saltstack/pillar/", "/srv/pillar"
master_config.vm.synced_folder "utils", "/home/vagrant/utils"
master_config.vm.synced_folder "saltstack/etc/master.d", "/etc/salt/master.d"

master_config.vm.provision :salt do |salt|
salt.master_config = "saltstack/etc/master"
salt.master_key = "saltstack/keys/master_minion.pem"
salt.master_pub = "saltstack/keys/master_minion.pub"
salt.minion_key = "saltstack/keys/master_minion.pem"
salt.minion_pub = "saltstack/keys/master_minion.pub"
salt.seed_master = {
"managersaltminion1" => "saltstack/keys/minion1.pub",
"workersaltminion2" => "saltstack/keys/minion2.pub",
"workersaltminion3" => "saltstack/keys/minion3.pub"
}

salt.install_type = "stable"
salt.install_master = true
salt.no_minion = true
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end

master_config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y salt-api
SHELL

master_config.vm.provision "file", source: "saltstack/etc/ssl/private/cert.pem", destination: "~/temp/cert.pem"
master_config.vm.provision "file", source: "saltstack/etc/ssl/private/key.pem", destination: "~/temp/key.pem"
master_config.vm.provision "shell" do |s|
s.inline = "cp /home/vagrant/temp/*.pem /etc/ssl/private/"
s.privileged = true
end
end

config.vm.define :swarm_manager_saltminion1 do |minion_config|
minion_config.vm.box = "ubuntu/trusty64"
minion_config.vm.host_name = 'managersaltminion1.local'
minion_config.vm.network "private_network", ip: "10.0.0.111"
minion_config.vm.synced_folder "saltstack/etc/minion.d", "/etc/salt/minion.d"

minion_config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.name = "swarm_manager_saltminion1"
end

minion_config.vm.provision :salt do |salt|
salt.minion_config = "saltstack/etc/minion1"
salt.minion_key = "saltstack/keys/minion1.pem"
salt.minion_pub = "saltstack/keys/minion1.pub"
salt.install_type = "stable"
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end
end

config.vm.define :swarm_worker_saltminion2 do |minion_config|
minion_config.vm.box = "ubuntu/trusty64"
minion_config.vm.host_name = 'workersaltminion2.local'
minion_config.vm.network "private_network", ip: "10.0.0.112"

minion_config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.name = "swarm_worker_saltminion2"
end

minion_config.vm.provision :salt do |salt|
salt.minion_config = "saltstack/etc/minion2"
salt.minion_key = "saltstack/keys/minion2.pem"
salt.minion_pub = "saltstack/keys/minion2.pub"
salt.install_type = "stable"
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end
end

config.vm.define :swarm_worker_saltminion3 do |minion_config|
minion_config.vm.box = "ubuntu/trusty64"
minion_config.vm.host_name = 'workersaltminion3.local'
minion_config.vm.network "private_network", ip: "10.0.0.113"

minion_config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.name = "swarm_worker_saltminion3"
end

minion_config.vm.provision :salt do |salt|
salt.minion_config = "saltstack/etc/minion3"
salt.minion_key = "saltstack/keys/minion3.pem"
salt.minion_pub = "saltstack/keys/minion3.pub"
salt.install_type = "stable"
salt.verbose = true
salt.colorize = true
salt.run_highstate = false
salt.bootstrap_options = "-P -c /tmp"
end
end

end
Loading

0 comments on commit edc1b2b

Please sign in to comment.