Skip to content

Instantly share code, notes, and snippets.

@dnordberg
Last active July 24, 2018 21:46
Show Gist options
  • Save dnordberg/e0829bf254b4b4bb5d8930c709511441 to your computer and use it in GitHub Desktop.
Save dnordberg/e0829bf254b4b4bb5d8930c709511441 to your computer and use it in GitHub Desktop.
setup shipyard on centos 7
!#/bin/bash
# Install docker, docker-compose, shipyard, fix ip4
yum -y update
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/docker.conf <<-'EOF'
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --insecure-registry 172.30.0.0/16
EOF
# NOTE: add For tls
# https://www.digitalocean.com/community/tutorials/how-to-securely-set-up-shipyard-2-0-10-with-tls-on-coreos
#--tlsverify --tlscacert=/home/core/dockertls/myca.pem --tlscert=/home/core/dockertls/final-server-cert.pem --tlskey=/home/core/dockertls/docker-1-key.pem -H=0.0.0.0:2376
tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
yum install -y \
docker-engine \
mosh \
bash-completion \
net-tools \
bind-utils \
unzip \
git \
tree
yum install -y hstr
hh --show-configuration >> ~/.bashrc
systemctl enable docker.service
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
curl -L https://composehub.com/install/linux > /usr/local/bin/ch
chmod +x /usr/local/bin/ch
if [ "$1" != "" ] && [ "$1" = "manager" ]; then
MANAGER_IP=$(hostname -I | cut -d" " -f 1)
# write manager ip to a local file for reference
echo $MANAGER_IP > manager_ip
docker swarm init --advertise-addr $MANAGER_IP
curl -sSL https://shipyard-project.com/deploy | ACTION=deploy bash -s
# required for curl to work after shipyard install
ip -6 route add 2004::3 dev eth0
# needs to be enabled
sysctl net.ipv4.ip_forward=1
service network restart
systemctl restart docker
echo "SETUP SWARM MANAGER, SHIPYARD"
elif [ "$ACTION" = "node" ]; then
MANAGER_IP=$(cat manager_ip)
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY="etcd://$(MANAGER_IP):4001" bash -s
# required for curl to work after shipyard install
ip -6 route add 2004::3 dev eth0
# needs to be enabled
sysctl net.ipv4.ip_forward=1
service network restart
systemctl restart docker
echo "SETUP SWARM NODE"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment