Browse Source

swarmlab-gen

master
zeus 3 years ago
parent
commit
306e21d12c
  1. 160
      install/usr/share/swarmlab.io/sec/swarmlab-gen.sh
  2. 32
      install/usr/share/swarmlab.io/sec/swarmlab-sec
  3. 62
      install/usr/share/swarmlab.io/sec/swarmlab-template.sh

160
install/usr/share/swarmlab.io/sec/swarmlab-gen.sh

@ -0,0 +1,160 @@
#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
TARGET="$(readlink "$SOURCE")"
if [[ $TARGET == /* ]]; then
SOURCE="$TARGET"
else
DIR="$( dirname "$SOURCE" )"
SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
fi
done
SRPATH="$( dirname "$SOURCE" )"
SFPATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
if [ "$SFPATH" != "$SRPATH" ]; then
RDIR=$SRPATH # relativ path directory
fi
cwdir=$PWD
# EDIT step 1
cat << EOF > $SRPATH/swarmlab-template-image
IMAGE_local="microservice-xelatexthesis"
IMAGE_origin="hub.swarmlab.io:5480/xelatex-basegui"
GIT_origin="https://git.swarmlab.io:3000/swarmlab/swarmlab-microservice-example.git"
service_GUI=true
service_WEB=true
service_URL=http
EOF
# EDIT step 2
cat << EOF > $SRPATH/Dockerfile.tmp
RUN export DEBIAN_FRONTEND=noninteractive \
&& rm -rf /usr/share/doc \
&& rm -rf /usr/share/man \
&& rm -rf /usr/share/locale \
&& mkdir -p /var/run/sshd \
&& addgroup -S docker && adduser -S docker -G docker \
&& echo 'root:$ROOT_PASSWORD' | chpasswd \
&& echo "export VISIBLE=now" >> /etc/profile \
&& mkdir -p /home/docker/project \
&& mkdir -p /etc/opt \
&& echo "docker:docker" | chpasswd \
&& echo "StrictHostKeyChecking no" > \${SSHDIR}/config \
&& cat \${SSHDIR}/*.pub >> \${SSHDIR}/authorized_keys \
&& chmod -R 600 \${SSHDIR}/* \
&& chown -R \${USER1}:\${USER1} \${SSHDIR}
COPY .vimrc /home/docker
RUN /setup.sh
EXPOSE 8080
EOF
# EDIT step 3
cat << EOF > $SRPATH/files.tmp
/bin/cp -rf $SRPATH/cls $Wdir
/bin/cp -rf $SRPATH/latex-all $Wdir/latex-all
EOF
# EDIT step 4
# ###############################
# EDIT-BEGIN
#
# Open Ports you can use
# {R_PORT1} - {R_PORT5}
#
# ###############################
cat << EOF > $SRPATH/docker-compose.tmp
#ports:
# - "\${R_PORT1}:80"
# - "\${R_PORT2}:443"
networks:
- ${HYBRID_NETWORK}
volumes:
# #############################
# you do not need to edit it
#
# - $Wdir/project:/home/docker/project
# - $Wdir/$bootstrap:/usr/bin/$bootstrap
# #############################
- $Wdir/project:/home/docker/project
- $Wdir/$bootstrap:/usr/bin/$bootstrap
- $Wdir/latex-all:/usr/local/bin/latex-all
- $Wdir/docs:/home
- /tmp/.X11-unix:/tmp/.X11-unix
EOF
# EDIT step 5
cat $SRPATH/sec_bootstrap.1 > $SRPATH/sec_bootstrap
cat << EOF >> $SRPATH/sec_bootstrap
# In Dockerfiles, an ENTRYPOINT instruction is used to set executables that will always run when the container is initiated.
# e.g.
#
# xelatex file.tex
#
EOF
cat $SRPATH/sec_bootstrap.2 >> $SRPATH/sec_bootstrap
# EDIT step 6
echo "edit $SRPATH/setup.sh"
echo "edit $SRPATH/extrapackages"
# EDIT step 7
echo "edit $SRPATH/ROOT_PASSWORD"
# cd in base directory
# .
# ├── check-open.sh
# ├── images
# │   └── swarmlab-network.png
# ├── install
# │   ├── etc
# │   │   ├── bash_completion.d
# │   │   │   └── swarmlab-mpi-autocompletion.sh
# │   │   └── swarmlab-mpi.sh
# │   └── usr
# │   └── share
# │   └── swarmlab.io
# │   └── sec
# │   ├── auto_update_hosts
# ├── LICENSE
# │   └── swarmlab-index.js
# └── README.md
#
#
# ######################### RUN ###########################
# ./install/usr/share/swarmlab.io/sec/swarmlab-gen.sh
# ./install/usr/share/swarmlab.io/sec/swarmlab-sec create
# ./install/usr/share/swarmlab.io/sec/swarmlab-sec up
# ./install/usr/share/swarmlab.io/sec/swarmlab-sec down
# ######################### git push ###########################

32
install/usr/share/swarmlab.io/sec/swarmlab-sec

@ -271,8 +271,7 @@ fi
# EDIT-BEGIN # EDIT-BEGIN
# ############################### # ###############################
/bin/cp -rf $SRPATH/cls $Wdir . $SRPATH/files.tmp
/bin/cp -rf $SRPATH/latex-all $Wdir/latex-all
# ############################### # ###############################
# EDIT-END # EDIT-END
@ -308,37 +307,18 @@ services:
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
# ###############################
# EDIT-BEGIN
#
# Open Ports you can use
# {R_PORT1} - {R_PORT5}
#
# ###############################
user: root user: root
entrypoint: ["sec_bootstrap", "role=masterservice", "sec_master_service_name=masterservice", "sec_worker_service_name=workerservice"] entrypoint: ["sec_bootstrap", "role=masterservice", "sec_master_service_name=masterservice", "sec_worker_service_name=workerservice"]
#ports:
# - "\${R_PORT1}:80"
# - "\${R_PORT2}:443"
networks:
- ${HYBRID_NETWORK}
volumes:
# #############################
# you do not need to edit it
#
# - $Wdir/project:/home/docker/project
# - $Wdir/$bootstrap:/usr/bin/$bootstrap
# #############################
- $Wdir/project:/home/docker/project
- $Wdir/$bootstrap:/usr/bin/$bootstrap
- $Wdir/latex-all:/usr/local/bin/latex-all
- $Wdir/docs:/home
- /tmp/.X11-unix:/tmp/.X11-unix
EOF
cat $SRPATH/docker-compose.tmp >> $Wdir/docker-compose.yml
# ############################### # ###############################
# EDIT-END # EDIT-END
# ############################### # ###############################
cat << EOF >> $Wdir/docker-compose.yml
# workerservice: # workerservice:
# image: $IMAGE_NAME # image: $IMAGE_NAME
# privileged: true # privileged: true

62
install/usr/share/swarmlab.io/sec/swarmlab-template.sh

@ -1,62 +0,0 @@
#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
TARGET="$(readlink "$SOURCE")"
if [[ $TARGET == /* ]]; then
SOURCE="$TARGET"
else
DIR="$( dirname "$SOURCE" )"
SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
fi
done
SRPATH="$( dirname "$SOURCE" )"
SFPATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
if [ "$SFPATH" != "$SRPATH" ]; then
RDIR=$SRPATH # relativ path directory
fi
cwdir=$PWD
cat << EOF > $SRPATH/swarmlab-template-image
IMAGE_local="microservice-xelatexthesis"
IMAGE_origin="hub.swarmlab.io:5480/xelatex-basegui"
GIT_origin="https://git.swarmlab.io:3000/swarmlab/swarmlab-microservice-example.git"
service_GUI=true
service_WEB=true
service_URL=http
EOF
cat << EOF > $SRPATH/Dockerfile.tmp
RUN export DEBIAN_FRONTEND=noninteractive \
&& rm -rf /usr/share/doc \
&& rm -rf /usr/share/man \
&& rm -rf /usr/share/locale \
&& mkdir -p /var/run/sshd \
&& addgroup -S docker && adduser -S docker -G docker \
&& echo 'root:$ROOT_PASSWORD' | chpasswd \
&& echo "export VISIBLE=now" >> /etc/profile \
&& mkdir -p /home/docker/project \
&& mkdir -p /etc/opt \
&& echo "docker:docker" | chpasswd \
&& echo "StrictHostKeyChecking no" > \${SSHDIR}/config \
&& cat \${SSHDIR}/*.pub >> \${SSHDIR}/authorized_keys \
&& chmod -R 600 \${SSHDIR}/* \
&& chown -R \${USER1}:\${USER1} \${SSHDIR}
COPY .vimrc /home/docker
RUN /setup.sh
EXPOSE 8080
EOF
Loading…
Cancel
Save