Mettre d’installer de manière simple et rapide
(si le script est nommé setup.sh)
setup.sh manager => télécharge et install un manager
setup.sh node 192.168.0.1 => télécharge et install un node
L’adresse IP indiqué est celle du manager installé avant
#/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.17.0.0/16
EOF
sudo sed -i '/\[Service\]/a EnvironmentFile=/etc/sysconfig/docker' /usr/lib/systemd/system/docker.service
#sudo systemctl daemon-reload
#sudo service docker restart
# 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=10.200.10.149: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 wget
wget http://download.opensuse.org/repositories/home:robomod/CentOS_CentOS-7/home:robomod.repo
cp home:robomod.repo /etc/yum.repos.d/
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
curl -L "https://github.com/docker/machine/releases/download/v0.10.0/docker-machine-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machine
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 | bash -s
# required for curl to work after shipyard install
ip -6 route add 2004::3 dev ens32
# needs to be enabled
sysctl net.ipv4.ip_forward=1
service network restart
systemctl restart docker
echo "SETUP SWARM MANAGER, SHIPYARD"
elif [ "$1" = "node" ]; then
MANAGER_IP=$(cat manager_ip)
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY="etcd://$2:4001" bash -s
# required for curl to work after shipyard install
ip -6 route add 2004::3 dev ens32
# needs to be enabled
sysctl net.ipv4.ip_forward=1
service network restart
systemctl restart docker
echo "SETUP SWARM NODE"
fi