isen-docker-farm/generate.sh

83 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
usage () {
[[ $1 -eq 1 ]] && echo "root for use"
exit $1
}
[[ "$(whoami)" != "root" ]] && usage 1
Liste=./data/liste
ID=2000
tID=2
cp docker-compose.yml.template.head /tmp/docker-compose.yml
[ -f /tmp/hostname ] && rm /tmp/hostname
for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" | cut -d"|" -f1 | sed "s#-# #g"| sed "s# \+#-#g")
do
tID=$(($tID+1))
#if [[ ! -z $(mount | grep ${User}) ]] && [[ "$1" == "del" ]]
if [[ "$1" == "del" ]]
then
[[ ! -z $(mount | grep ${User}_part) ]] && umount ./data/students/part/${User}_part
[[ -d ./data/students/part/${User}_part ]] && rm -Rf ./data/students/part/${User}_part
[[ -f ./data/students/part/${User} ]] && rm ./data/students/part/${User}
else
if [[ ! -f ./data/students/part/${User} ]]
then
echo "Generate $User"
mkdir -p ./data/students/part/
touch ./data/students/part/${User}
mkdir -p ./data/students/part/${User}_part
truncate -s 200M ./data/students/part/${User} &> /dev/null
mke2fs -t ext4 -F ./data/students/part/${User} &> /dev/null
mount ./data/students/part/${User} ./data/students/part/${User}_part
cp -Rf ./data/skel/. ./data/students/part/${User}_part/
mkdir -p ./data/students/part/${User}_part/.gen/
mv ./data/students/part/${User}_part/backup.sh ./data/students/part/${User}_part/.gen/
if [[ -f ./data/motd ]]
then
cat ./data/motd | sed "s#__MOTD__#$User#g" | figlet | tee ./data/students/part/${User}_part/.gen/motd &> /dev/null
else
echo "host : ${User^^}" | figlet | tee /tmp/motd &> /dev/null
echo "---------" | figlet | tee -a /tmp/motd &> /dev/null
echo "Isen 2021 - M 1"| figlet | tee -a /tmp/motd &> /dev/null
cp /tmp/motd ./data/students/part/${User}_part/.gen/
fi
cp -rfp ./data/ssh/ ./data/students/part/${User}_part/.gen/.ssh
cp -rfp ./data/ssh/ ./data/students/part/${User}_part/.ssh
[[ -z $(echo $User | grep -iE "astier|lefebvre|catanese") ]] && rm -f ./data/students/part/${User}_part/.gen/.ssh/id* ./data/students/part/${User}_part/.ssh/id*
chown -Rf 1000:1000 ./data/students/part/${User}_part/
echo "10.10.10.${tID} ${User,,}" | tee -a /tmp/hostname &> /dev/null
echo "
${User}:
image: isensshbase
hostname: ${User,,}
volumes:
- "./data/students/part/${User}_part:/home/isen"
networks:
vpcbr:
ipv4_address: 10.10.10.${tID}
" | tee -a /tmp/docker-compose.yml &> /dev/null
fi
fi
done
cat docker-compose.yml.template.footer | tee -a /tmp/docker-compose.yml &> /dev/null
cp /tmp/docker-compose.yml .
for Dir in $( ls -1 ./data/students/part/ | grep _part)
do
[[ -f /tmp/hostname ]] && cp /tmp/hostname ./data/students/part/${Dir}/.gen
done