Skip to content

Instantly share code, notes, and snippets.

@phjardas
Created September 30, 2017 10:19
Show Gist options
  • Save phjardas/24ab66dcb7a2c59ca3d9e8464f4e3941 to your computer and use it in GitHub Desktop.
Save phjardas/24ab66dcb7a2c59ca3d9e8464f4e3941 to your computer and use it in GitHub Desktop.
This script will create a portainer configuration for a set of docker machines. The output will be a series of docker commands that you can simply execute against a manager node of your swarm.
#!/bin/bash -e
# This script will create a portainer configuration for a set of docker machines.
# The output will be a series of docker commands that you can simply execute against a manager node of your swarm.
#
# Usage: docker-machine-portainer.config.sh machine-0 machine-1 machine-2
secrets=""
for machine in "$@"; do
eval $(docker-machine env $machine)
echo "docker secret create docker.${machine}.tls.cacert $DOCKER_CERT_PATH/ca.pem"
echo "docker secret create docker.${machine}.tls.cert $DOCKER_CERT_PATH/cert.pem"
echo "docker secret create docker.${machine}.tls.key $DOCKER_CERT_PATH/key.pem"
echo
secrets="$secrets --secret docker.${machine}.tls.cacert --secret docker.${machine}.tls.cert --secret docker.${machine}.tls.key"
[ ! -z "$cfg" ] && cfg="$cfg,"
cfg="$cfg{\"Name\":\"$machine\",\"URL\":\"$DOCKER_HOST\",\"TLS\":true,\"TLSSkipVerify\":false,\"TLSCACert\":\"/run/secrets/docker.${machine}.tls.cacert\",\"TLSCert\":\"/run/secrets/docker.${machine}.tls.cert\",\"TLSKey\":\"/run/secrets/docker.${machine}.tls.key\"}"
done
echo "echo '[$cfg]' | docker secret create portainer.config -"
echo
echo "docker service create --detach=false --name portainer --secret portainer.config $secrets --publish 9000:9000 portainer/portainer --no-auth --no-analytics --external-endpoints /run/secrets/portainer.config"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment