-
-
Save flybyray/1d1f1b34b84424d4f28a6105a82d3e06 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -euo pipefail | |
set -vx | |
if test ! -d cloud-provisioning; | |
then | |
git clone https://github.com/vfarcic/cloud-provisioning.git | |
fi | |
cd cloud-provisioning | |
git pull | |
scripts/dm-swarm.sh | |
eval $(docker-machine env swarm-1) | |
docker node ls | |
mkdir -p docker/jenkins | |
docker service create --name jenkins \ | |
--detach=false \ | |
-p 8082:8080 \ | |
-p 50000:50000 \ | |
-e JENKINS_OPTS="--prefix=/jenkins" \ | |
--mount "type=bind,source=$PWD/docker/jenkins,target=/var/jenkins_home" \ | |
--reserve-memory 300m \ | |
jenkins:2.7.4-alpine | |
docker service ps jenkins | |
if command -v open; | |
then | |
OPEN_CMD=open | |
else | |
OPEN_CMD=xdg-open | |
fi | |
$OPEN_CMD "http://$(docker-machine ip swarm-1):8082/jenkins" | |
printf "WAIT TIL JENKINS SHOWS INITIAL SETUP PAGE - THEN HIT ENTER TO CONTINUE" | |
read ENTER | |
cat docker/jenkins/secrets/initialAdminPassword | |
printf "ENTER THE ABOVE initialAdminPassword to jenkins, and continue with installing plugins and setup initial user" | |
read ENTER | |
NODE=$(docker service ps \ | |
-f desired-state=running jenkins \ | |
| tail -n +2 | awk '{print $4}') | |
eval $(docker-machine env $NODE) | |
docker rm -f $(docker ps -qa \ | |
-f label=com.docker.swarm.service.name=jenkins) | |
docker service ps jenkins | |
$OPEN_CMD "http://$(docker-machine ip swarm-1):8082/jenkins" | |
$OPEN_CMD "http://$(docker-machine ip swarm-1):8082/jenkins/pluginManager/available" | |
scripts/dm-test-swarm-2.sh | |
eval $(docker-machine env swarm-test-1) | |
docker node ls | |
eval $(docker-machine env swarm-test-1) | |
docker node inspect swarm-test-1 --pretty | |
docker-machine ssh swarm-test-1 sh -c 'set -vx ; sudo mkdir /workspace && sudo chmod 777 /workspace && exit' | |
docker-machine ssh swarm-test-1 sh -c 'set -vx ; mkdir -p .docker/machine/machines && chmod 777 .docker/machine/machines && exit' | |
DM_HOME=$(docker-machine ssh swarm-test-1 echo '$HOME') | |
export USER=admin | |
export PASSWORD=admin | |
docker service create --name jenkins-agent \ | |
--detach=false \ | |
-e COMMAND_OPTIONS="-master \ | |
http://$(docker-machine ip swarm-1):8082/jenkins \ | |
-username $USER -password $PASSWORD \ | |
-labels 'docker' -executors 5" \ | |
--mode global \ | |
--constraint 'node.labels.env == jenkins-agent' \ | |
--mount "type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock" \ | |
--mount "type=bind,source=$DM_HOME/.docker/machine/machines,target=/machines" \ | |
--mount "type=bind,source=/workspace,target=/workspace" \ | |
vfarcic/jenkins-swarm-agent | |
docker service ps jenkins-agent | |
$OPEN_CMD "http://$(docker-machine ip swarm-1):8082/jenkins/computer/" | |
docker-machine create -d virtualbox swarm-test-4 | |
docker-machine ssh swarm-test-4 sh -c 'set -vx ; sudo mkdir /workspace && sudo chmod 777 /workspace && exit' | |
docker-machine ssh swarm-test-4 sh -c 'set -vx ; mkdir -p .docker/machine/machines && chmod 777 .docker/machine/machines && exit' | |
TOKEN=$(docker swarm join-token -q worker) | |
eval $(docker-machine env swarm-test-4) | |
docker swarm join \ | |
--token $TOKEN \ | |
--advertise-addr $(docker-machine ip swarm-test-4) \ | |
$(docker-machine ip swarm-test-1):2377 | |
eval $(docker-machine env swarm-test-1) | |
docker node ls | |
docker service ps jenkins-agent | |
docker node update \ | |
--label-add env=jenkins-agent \ | |
swarm-test-4 | |
docker service ps jenkins-agent | |
$OPEN_CMD http://$(docker-machine ip swarm-1):8082/jenkins/computer | |
scripts/dm-swarm-services-2.sh | |
eval $(docker-machine env swarm-1) | |
docker service ls | |
scripts/dm-test-swarm-services-2.sh | |
eval $(docker-machine env swarm-test-1) | |
docker service ls | |
$OPEN_CMD http://$(docker-machine ip swarm-1):8082/jenkins/configure | |
docker-machine ip swarm-1 | |
eval $(docker-machine env swarm-1) | |
docker service ps go-demo | |
printf "PRESS ENTER TO DELETE ALL" | |
read ENTER | |
docker-machine rm -f \ | |
swarm-1 swarm-2 swarm-3 \ | |
swarm-test-1 swarm-test-2 \ | |
swarm-test-3 swarm-test-4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment