Skip to content

Instantly share code, notes, and snippets.

@phjardas
Created September 30, 2017 10:19
Show Gist options
  • Select an option

  • Save phjardas/24ab66dcb7a2c59ca3d9e8464f4e3941 to your computer and use it in GitHub Desktop.

Select an option

Save phjardas/24ab66dcb7a2c59ca3d9e8464f4e3941 to your computer and use it in GitHub Desktop.

Revisions

  1. phjardas created this gist Sep 30, 2017.
    23 changes: 23 additions & 0 deletions docker-machine-portainer.config.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    #!/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"