From 68bdb162a58ba6872e0e9e9fad2c4ea72df4f29e Mon Sep 17 00:00:00 2001 From: Guillaume Astier Date: Tue, 4 Jan 2022 12:11:48 +0100 Subject: [PATCH] [UPDATE] - motd & generate --- Dockerfile | 2 +- README.md | 7 +++++++ data/liste | 12 ++---------- data/motd | 1 + generate.sh | 45 +++++++++++++++++++++++++++++++-------------- 5 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 data/motd diff --git a/Dockerfile b/Dockerfile index 41fdd63..b29464f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN echo "isen:isen" | chpasswd RUN sed -i "/%sudo/s/ALL$/NOPASSWD: ALL/" /etc/sudoers RUN apt install less -y -RUN apt install manpages-dev man-db shc gcc build-essential -y +RUN apt install manpages-dev man-db shc gcc build-essential iputils-ping nmap -y COPY ./data/bin/firstconnect /usr/bin/firstconnect RUN chmod 755 /usr/bin/firstconnect RUN chown root:root /usr/bin/firstconnect diff --git a/README.md b/README.md index ab8bcd3..04df34a 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,13 @@ NAME Surname NAME2 Surname2 ``` +## Motd + +You can add a specific motd to copy on insances + +You can use specfic tag '__MOTD__' in your motd which be replaced by the NAMES of data/liste + + ## Build Docker image ``` diff --git a/data/liste b/data/liste index c039def..d3795b8 100644 --- a/data/liste +++ b/data/liste @@ -1,10 +1,2 @@ -ASTIER Guillaume -LEFEBVRE Loic -CATANESE Yann -USER One -MAN Two -GUY Three -DEMO Guillaume -DEMO Yann -DEMO Loic - +DEMO Neo +DEMO Trinity diff --git a/data/motd b/data/motd new file mode 100644 index 0000000..49762ba --- /dev/null +++ b/data/motd @@ -0,0 +1 @@ +__MOTD__ SSH diff --git a/generate.sh b/generate.sh index bc1cf5c..f27302d 100755 --- a/generate.sh +++ b/generate.sh @@ -1,12 +1,22 @@ #!/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 -rm /tmp/hostname +[ -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") @@ -16,30 +26,37 @@ for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" #if [[ ! -z $(mount | grep ${User}) ]] && [[ "$1" == "del" ]] if [[ "$1" == "del" ]] then - umount ./data/students/part/${User}_part - rmdir ./data/students/part/${User}_part - rm ./data/students/part/${User} + [[ ! -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 ./data/students/part/${User}_part + 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 ./data/students/part/${User}_part/.gen/ + mkdir -p ./data/students/part/${User}_part/.gen/ mv ./data/students/part/${User}_part/backup.sh ./data/students/part/${User}_part/.gen/ - echo "host : ${User^^}" | figlet > /tmp/motd - echo "---------" | figlet >> /tmp/motd - echo "Isen 2021 - M 1"| figlet >> /tmp/motd + 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 - cp /tmp/motd ./data/students/part/${User}_part/.gen/ [[ -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,,}" >> /tmp/hostname + echo "10.10.10.${tID} ${User,,}" | tee -a /tmp/hostname &> /dev/null echo " ${User}: image: isensshbase @@ -49,17 +66,17 @@ for User in $(cat ${Liste} | grep ^[A-Z][A-Z].*\ [A-Z][a-z] | sed "s#[a-z]#|#g" networks: vpcbr: ipv4_address: 10.10.10.${tID} -" >> /tmp/docker-compose.yml +" | tee -a /tmp/docker-compose.yml &> /dev/null fi fi done -cat docker-compose.yml.template.footer >> /tmp/docker-compose.yml +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 - cp /tmp/hostname ./data/students/part/${Dir}/.gen + [[ -f /tmp/hostname ]] && cp /tmp/hostname ./data/students/part/${Dir}/.gen done