Skip to content

Instantly share code, notes, and snippets.

@flybyray
Forked from vfarcic/06-jenkins.sh
Created September 25, 2017 12:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flybyray/1d1f1b34b84424d4f28a6105a82d3e06 to your computer and use it in GitHub Desktop.
Save flybyray/1d1f1b34b84424d4f28a6105a82d3e06 to your computer and use it in GitHub Desktop.
#!/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