From 46423190968da3e09c1e8482487e658b7aaa64d0 Mon Sep 17 00:00:00 2001 From: Bram Prieshof Date: Wed, 30 Sep 2020 15:43:43 +0200 Subject: [PATCH] Init intergation of multi OS support, updated docs --- AppendCMS.sh | 8 +++++ AppendModule.sh | 16 +++++++++ Docs/docs/Dev-Adding-CMS.md | 16 ++++++--- Docs/docs/Dev-Adding-Modules.md | 16 ++++++--- Docs/docs/Dev-Adding-Webserver.md | 8 +++-- Scripts/SMI.sh | 27 ++++++++------ TO-DO_FIX-CHECK.md | 3 +- installer.sh | 58 +++++++++++++++++++++++++------ 8 files changed, 120 insertions(+), 32 deletions(-) diff --git a/AppendCMS.sh b/AppendCMS.sh index 39e0e6a..e6a6672 100644 --- a/AppendCMS.sh +++ b/AppendCMS.sh @@ -157,11 +157,19 @@ if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$re curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$PKGLIST".pkg.list >>/tmp/pkg.list; then + curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-generic.pkg.list; then curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-"$PKGLIST".pkg.list; then + curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi ##-----------## diff --git a/AppendModule.sh b/AppendModule.sh index 517519f..1824bb2 100644 --- a/AppendModule.sh +++ b/AppendModule.sh @@ -164,6 +164,14 @@ for val1 in ${option[*]}; do curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-"$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi else #Fetching from remote repo if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed"generic.pkg.list; then @@ -174,6 +182,14 @@ for val1 in ${option[*]}; do curl "$modListed""$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed""$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$modListed""$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed""$webserv"-"$PKGLIST".pkg.list; then + curl "$modListed""$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi fi done diff --git a/Docs/docs/Dev-Adding-CMS.md b/Docs/docs/Dev-Adding-CMS.md index 72f1eba..f6f28fe 100644 --- a/Docs/docs/Dev-Adding-CMS.md +++ b/Docs/docs/Dev-Adding-CMS.md @@ -3,10 +3,14 @@ * CMS/``/ * conf.sh * preconf.sh - * apt.list + * generic.pkg.list + * apt.pkg.list + * dnf.pkg.list * ``-conf.sh * ``-preconf.sh - * ``-apt.list + * ``-generic.pkg.list + * ``-apt.pkg.list + * ``-dnf.pkg.list * ``-unconfigured # File Explanation @@ -14,10 +18,14 @@ | -------- | ------------ | | preconf.sh | Pre config/apt install commands runs for all web servers | | conf.sh | Configuration runs for all webservers | -| apt.list | packagelist for all webservers | +| generic.pkg.list | packagelist for this webserver and php for all distro's | +| apt.pkg.list | packagelist for this webserver and php for distro's that use apt | +| dnf.pkg.list | packagelist for this webserver and php for distro's that use dnf/yum | | ``-preconf.sh | Pre config/apt install commands runs for specified webserver | | ``-conf.sh | Configuration runs for specified webserver | -| ``-apt.list | packagelist for specified webserver | +| ``-generic.pkg.list | packagelist for specified webserver for all distro's| +| ``-apt.pkg.list | packagelist for specified webserver for distro's that use apt| +| ``-dnf.pkg.list | packagelist for specified webserver for distro's that use dnf/yum| | ``-unconfigured | webserver(vhost) config | diff --git a/Docs/docs/Dev-Adding-Modules.md b/Docs/docs/Dev-Adding-Modules.md index a1a8e7a..fc95801 100644 --- a/Docs/docs/Dev-Adding-Modules.md +++ b/Docs/docs/Dev-Adding-Modules.md @@ -5,10 +5,14 @@ In both cases the file structure is expected as shown below # List of possible Files and expected Structure * conf.sh * preconf.sh -* apt.list +* generic.pkg.list +* apt.pkg.list +* dnf.pkg.list * ``-conf.sh * ``-preconf.sh -* ``-apt.list +* ``-generic.pkg.list +* ``-apt.pkg.list +* ``-dnf.pkg.list * config/* ## The internal module location @@ -19,10 +23,14 @@ SubModules/`` | -------- | ------------ | | preconf.sh | Pre config/apt install commands runs for all web servers | | conf.sh| Configuration runs for all webservers | -| apt.list | packagelist for all webservers | +| generic.pkg.list | packagelist for this webserver and php for all distro's | +| apt.pkg.list | packagelist for this webserver and php for distro's that use apt | +| dnf.pkg.list | packagelist for this webserver and php for distro's that use dnf/yum | | ``-preconf.sh | Pre config/apt install commands runs for specified webserver | | ``-conf.sh | Configuration runs for specified webserver | -| ``-apt.list | packagelist for specified webserver | +| ``-generic.pkg.list | packagelist for specified webserver for all distro's| +| ``-apt.pkg.list | packagelist for specified webserver for distro's that use apt| +| ``-dnf.pkg.list | packagelist for specified webserver for distro's that use dnf/yum| | config/* | Directory for config files | diff --git a/Docs/docs/Dev-Adding-Webserver.md b/Docs/docs/Dev-Adding-Webserver.md index 0f3bbd8..e9bd552 100644 --- a/Docs/docs/Dev-Adding-Webserver.md +++ b/Docs/docs/Dev-Adding-Webserver.md @@ -2,7 +2,9 @@ * CoreModules/``/ * conf.sh * preconf.sh - * apt.list + * generic.pkg.list + * apt.pkg.list + * dnf.pkg.list * appendCMS-conf.sh * config/* # File Explanation @@ -10,7 +12,9 @@ | -------- | ------------ | | preconf.sh | Pre config/apt install commands (ex: repo setup) | | conf.sh | Configuration for webserver and php | -| apt.list | packagelist for this webserver and php | +| generic.pkg.list | packagelist for this webserver and php for all distro's | +| apt.pkg.list | packagelist for this webserver and php for distro's that use apt | +| dnf.pkg.list | packagelist for this webserver and php for distro's that use dnf/yum | | appendCMS-conf.sh | Runs when a domain gets added after inital install by appendCMS.sh | # Defining in the menu diff --git a/Scripts/SMI.sh b/Scripts/SMI.sh index a5e6561..117b103 100644 --- a/Scripts/SMI.sh +++ b/Scripts/SMI.sh @@ -32,13 +32,13 @@ if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then echo "Ubuntu 18.04 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" shortdist=ubu1804 elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then echo "Ubuntu 20.04 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" echo "This os in not supported" exit shortdist=ubu2004 @@ -46,7 +46,7 @@ elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then echo "Debian 10 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" shortdist=deb10 echo "This os in not supported" exit @@ -54,13 +54,13 @@ elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then echo "Centos 8 Detected" PKGM="dnf" PKGI="${PKGM} install --setopt=install_weak_deps=False --best -y" - PKGLIST="dnf.pkg.list" + PKGLIST="dnf" shortdist=cent8 echo "This os in not supported" exit else -echo "This os in not supported" -exit + echo "This os in not supported" + exit fi unset dist_ver dist APTMODE @@ -69,6 +69,7 @@ unset dist_ver dist APTMODE #Repo Vars repo=https://git.ictmaatwerk.com/bprieshof/UBU-Web-V2 branch=master +branchtype=branch ###Select Module type ##Uncomment for CoreModules @@ -112,14 +113,20 @@ $PKGI curl > $OUTPUT 2>&1 # Generating APT list # ##-------------------------## #General aptList -if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$webserv"-generic.pkg.list; then - curl "$mtype"/"$webserv"-generic.pkg.list >>/tmp/pkg.list -fi -#Webserver specific aptList if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/generic.pkg.list; then curl "$mtype"/generic.pkg.list >>/tmp/pkg.list fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$PKGLIST".pkg.list; then + curl "$mtype"/"$PKGLIST".pkg.list >>/tmp/pkg.list +fi +#Webserver specific aptList +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$webserv"-generic.pkg.list; then + curl "$mtype"/"$webserv"-generic.pkg.list >>/tmp/pkg.list +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$webserv"-"$PKGLIST".pkg.list; then + curl "$mtype"/"$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list +fi ##--------------------## # Pre-Requirements # diff --git a/TO-DO_FIX-CHECK.md b/TO-DO_FIX-CHECK.md index 87d5c59..1eaaf63 100644 --- a/TO-DO_FIX-CHECK.md +++ b/TO-DO_FIX-CHECK.md @@ -2,4 +2,5 @@ ~~Options enable/disable~~ # Other WordPress hardening -DH-key length \ No newline at end of file +DH-key length +Switch to curl instead of wget \ No newline at end of file diff --git a/installer.sh b/installer.sh index bf95725..975dc92 100644 --- a/installer.sh +++ b/installer.sh @@ -40,13 +40,13 @@ if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then echo "Ubuntu 18.04 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" shortdist=ubu1804 elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then echo "Ubuntu 20.04 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" echo "This os in not supported" exit shortdist=ubu2004 @@ -54,7 +54,7 @@ elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then echo "Debian 10 Detected" PKGM="$APTMODE" PKGI="${PKGM} install -y --no-install-recommends" - PKGLIST="apt.pkg.list" + PKGLIST="apt" shortdist=deb10 echo "This os in not supported" exit @@ -62,13 +62,13 @@ elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then echo "Centos 8 Detected" PKGM="dnf" PKGI="${PKGM} install --setopt=install_weak_deps=False --best -y" - PKGLIST="dnf.pkg.list" + PKGLIST="dnf" shortdist=cent8 echo "This os in not supported" exit else -echo "This os in not supported" -exit + echo "This os in not supported" + exit fi unset dist_ver dist APTMODE @@ -337,11 +337,24 @@ declare -n CMSL="$webserv"CMSL declare -n options="$webserv"Options #Generating APT-List for webserver -curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/generic/generic.pkg.list >>/tmp/pkg.list -printf " " >>/tmp/pkg.list +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CoreModules/generic/generic.pkg.list; then + curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/generic/generic.pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CoreModules/generic/"$PKGLIST".pkg.list; then + curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/generic/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi -curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/generic.pkg.list >>/tmp/pkg.list -printf " " >>/tmp/pkg.list + +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/generic.pkg.list; then + curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/generic.pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/"$PKGLIST".pkg.list; then + curl --silent --show-error "$repo"/raw/"$branchtype"/"$branch"/CoreModules/"$webserv"/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi ##-----------------## @@ -436,6 +449,14 @@ for val1 in ${option[*]}; do curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-"$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$repo"/raw/"$branchtype"/"$branch"/SubModules/"$val1"/"$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi else #Fetching from remote repo if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed"generic.pkg.list; then @@ -446,6 +467,14 @@ for val1 in ${option[*]}; do curl "$modListed""$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed""$PKGLIST".pkg.list; then + curl --retry 7 --retry-delay 5 -s "$modListed""$PKGLIST" >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi + if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$modListed""$webserv"-"$PKGLIST".pkg.list; then + curl "$modListed""$webserv""$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list + fi fi done @@ -482,7 +511,14 @@ fi if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-generic.pkg.list; then curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-generic.pkg.list >>/tmp/pkg.list printf " " >>/tmp/pkg.list - +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/generic.pkg.list >>/tmp/pkg.list; then + curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-"$PKGLIST".pkg.list; then + curl "$repo"/raw/"$branchtype"/"$branch"/CMS/"$CMS"/"$webserv"-"$PKGLIST".pkg.list >>/tmp/pkg.list + printf " " >>/tmp/pkg.list fi