script
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| script [2014/03/14 13:41] – [Debian] m.bertelli@unibo.it | script [2024/12/24 10:09] (versione attuale) – aggiornata OU mario.petroli@unibo.it | ||
|---|---|---|---|
| Linea 2: | Linea 2: | ||
| **ATTENZIONE** Questa pagina è accessibile anche agli utenti non autenticati! Non inserire password o informazioni sensibili! | **ATTENZIONE** Questa pagina è accessibile anche agli utenti non autenticati! Non inserire password o informazioni sensibili! | ||
| + | |||
| + | Per prelevare direttamente uno degli script senza aprire il browser, usare | ||
| + | wget http:// | ||
| + | con N da 1 a 3 (rispettivamente Ubuntu, Debian-pbis, | ||
| + | |||
| + | Per l' | ||
| + | #!/bin/bash | ||
| + | export myADUser=nome.cognome | ||
| + | wget http:// | ||
| + | sudo bash / | ||
| + | Ovviamente va cambiato nome.cognome col proprio UPN AD (può essere diverso dalla mail senza dominio, p.e. m.bertelli@unibo.it deve usare michele.bertelli2). | ||
| + | |||
| + | Quando si entra come tecnici, si inserisce la chiavetta (che viene montata automaticamente) e si lancia | ||
| + | bash / | ||
| + | |||
| + | Lo script che viene scaricato ed eseguito è: | ||
| + | <code bash preinst.sh> | ||
| + | #!/bin/bash | ||
| + | ##### | ||
| + | # Preparazione per installazione laboratorio | ||
| + | # File release: 20210729 | ||
| + | if [ -z " | ||
| + | echo -n " | ||
| + | read L | ||
| + | else | ||
| + | L=$1 | ||
| + | fi | ||
| + | |||
| + | if [ -z " | ||
| + | echo -n " | ||
| + | read N | ||
| + | else | ||
| + | N=$2 | ||
| + | fi | ||
| + | |||
| + | sudo sed -i~ " | ||
| + | sudo nmcli c m " | ||
| + | sudo dpkg-reconfigure openssh-server | ||
| + | sudo apt update | ||
| + | wget http:// | ||
| + | sed -i~ " | ||
| + | sudo shutdown -r now | ||
| + | </ | ||
| ===== Ubuntu ===== | ===== Ubuntu ===== | ||
| Linea 8: | Linea 51: | ||
| #!/bin/bash | #!/bin/bash | ||
| ##### | ##### | ||
| - | # Script di installazione per Ubuntu. Versione | + | # Script di installazione per Ubuntu. |
| + | # Versione | ||
| ############################################################ | ############################################################ | ||
| Linea 19: | Linea 63: | ||
| # Base OU in AD | # Base OU in AD | ||
| - | AD_OU=' | + | AD_OU=' |
| # Pacchetti base, da installare sempre | # Pacchetti base, da installare sempre | ||
| - | SYS_PKGS=" | + | SYS_PKGS=" |
| # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
| - | AD_PKGS=" | + | AD_PKGS=" |
| # Pacchetti comuni (PC e lab) | # Pacchetti comuni (PC e lab) | ||
| - | XTRA_PKGS=" | + | XTRA_PKGS=" |
| # Pacchetti da installare solo nei laboratori didattici | # Pacchetti da installare solo nei laboratori didattici | ||
| - | LAB_PKGS=" | + | LAB_PKGS=" |
| ############################################################ | ############################################################ | ||
| # Qui non modificare nulla | # Qui non modificare nulla | ||
| + | techs=" | ||
| + | NAME=$(hostname -s) | ||
| + | admgrp=" | ||
| + | usrgrp=" | ||
| + | pbis_base=/ | ||
| # Read user input with a default | # Read user input with a default | ||
| Linea 47: | Linea 96: | ||
| fi | fi | ||
| } | } | ||
| - | |||
| - | NAME=$(hostname -s) | ||
| PCID=`echo $NAME | sed ' | PCID=`echo $NAME | sed ' | ||
| Linea 54: | Linea 101: | ||
| if [ -z " | if [ -z " | ||
| echo " | echo " | ||
| + | exit | ||
| + | fi | ||
| + | |||
| + | if [ " | ||
| + | echo "Fase di personalizzazione dell' | ||
| exit | exit | ||
| fi | fi | ||
| Linea 60: | Linea 112: | ||
| PCNO=`echo $PCID| sed " | PCNO=`echo $PCID| sed " | ||
| AD_HOME=' | AD_HOME=' | ||
| + | |||
| + | ARCH=" | ||
| + | if [ " | ||
| + | ARCH=" | ||
| + | fi | ||
| + | |||
| + | SM_FILE=sm2_4_25tot.tar.gz | ||
| + | SM_URL=http:// | ||
| + | SM_INST="" | ||
| if [ -z " | if [ -z " | ||
| Linea 66: | Linea 127: | ||
| echo "Non è un PC di laboratorio" | echo "Non è un PC di laboratorio" | ||
| ISLAB=0 | ISLAB=0 | ||
| - | mkdir / | + | |
| - | mkdir / | + | if [ " |
| + | | ||
| + | mkdir / | ||
| + | fi | ||
| else | else | ||
| # È un lab | # È un lab | ||
| ISLAB=1 | ISLAB=1 | ||
| + | JOIN=s | ||
| AD_OU=" | AD_OU=" | ||
| - | apt-get -qy install ${LAB_PKGS} | + | apt install ${LAB_PKGS} |
| + | |||
| DEFSO="" | DEFSO="" | ||
| case " | case " | ||
| - | "n" | + | "nav") |
| - | AD_OU=" | + | AD_OU=" |
| - | | + | |
| - | useradd -G root -m -U cirsfid | + | |
| - | echo " | + | |
| - | passwd | + | |
| - | + | | |
| - | | + | |
| - | mkdir / | + | |
| - | mkdir / | + | echo "137.204.136.90 ${SRV_LAB}" >> /etc/hosts |
| - | echo "serverlab.bo.astro.it:/ | + | echo "${SRV_LAB}:homes /home glusterfs defaults,_netdev |
| - | echo "serverlab.bo.astro.it:/home/STUDENTI/ / | + | SM_INST="y" |
| - | ;; | + | |
| - | " | + | # Preparazione all' |
| - | AD_OU="${AD_OU}/r1" | + | |
| - | | + | |
| - | # Creazione delle home sul fileserver | + | /home/PERSONALE/_LIB/IRAF/deploy.sh |
| - | | + | |
| - | | + | |
| - | mkdir / | + | |
| - | mkdir /home/remote/STUDENTI | + | |
| - | echo " | + | |
| - | | + | |
| - | ;; | + | |
| " | " | ||
| AD_OU=" | AD_OU=" | ||
| - | mkdir / | + | |
| - | mkdir / | + | useradd -G root -m -U cesia |
| + | | ||
| + | | ||
| + | # IP esterno del server 137.204.248.241 | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| ;; | ;; | ||
| " | " | ||
| Linea 112: | Linea 177: | ||
| # I laboratori si spengono alle 20 | # I laboratori si spengono alle 20 | ||
| - | echo "0 20 * * * shutdown -h now" | crontab - | + | echo "0 20 * * * /sbin/shutdown -h now" | crontab - |
| + | |||
| + | if [ " | ||
| + | apt-get -qy install libx11-6: | ||
| + | cd / | ||
| + | wget -O $SM_FILE $SM_URL | ||
| + | tar xfz $SM_FILE | ||
| + | rm -f $SM_FILE | ||
| + | cd - | ||
| + | fi | ||
| fi | fi | ||
| - | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
| if [ " | if [ " | ||
| readdef "Nome amministratore AD (${AD_USER})" | readdef "Nome amministratore AD (${AD_USER})" | ||
| Linea 130: | Linea 203: | ||
| apt-get -qy install $SYS_PKGS | apt-get -qy install $SYS_PKGS | ||
| if [ " | if [ " | ||
| - | apt-get -qy install $AD_PKGS | + | |
| + | wget -O / | ||
| + | apt-get update | ||
| + | | ||
| fi | fi | ||
| # Fix schermata di login | # Fix schermata di login | ||
| + | if [ ! -s / | ||
| + | # il file non pare esistere in 18.04LTS... | ||
| + | echo " | ||
| + | echo " | ||
| + | echo " | ||
| + | fi | ||
| echo " | echo " | ||
| echo " | echo " | ||
| Linea 145: | Linea 227: | ||
| if [ " | if [ " | ||
| # Installazione pacchetti per join | # Installazione pacchetti per join | ||
| - | apt-get -qy install $SYS_PKGS2 | + | |
| - | domainjoin-cli setname $(hostname -s) | + | |
| - | domainjoin-cli join --ou " | + | $pbis_base/domainjoin-cli setname $(hostname -s) |
| + | | ||
| echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | ||
| read A | read A | ||
| - | | + | |
| - | | + | sed -i ' |
| - | | + | pam-auth-update |
| + | $pbis_base/ | ||
| + | | ||
| + | | ||
| + | $pbis_base/update-dns | ||
| echo " | echo " | ||
| chmod 0440 / | chmod 0440 / | ||
| + | |||
| + | $pbis_base/ | ||
| + | echo "Admin group found" | ||
| + | sed -i " | ||
| + | echo " | ||
| + | chmod 0440 / | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | echo " | ||
| + | reqm=" | ||
| + | $pbis_base/ | ||
| + | # Trying to lockout admins? Don't! | ||
| + | reqm2=" | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | # Never lockout technicians! | ||
| + | reqm3=" | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | } | ||
| + | echo " | ||
| + | / | ||
| fi | fi | ||
| Linea 160: | Linea 269: | ||
| apt-get -qy install ${XTRA_PKGS} | apt-get -qy install ${XTRA_PKGS} | ||
| - | # Installa ORACLE Java (richiede conferma sia per l' | + | if [ -f /etc/ |
| - | add-apt-repository ppa: | + | echo " |
| - | apt-get update | + | |
| - | apt-get -qy install oracle-java7-installer | + | fi |
| # Aggiornamento completo del sistema | # Aggiornamento completo del sistema | ||
| apt-get -qy dist-upgrade | apt-get -qy dist-upgrade | ||
| - | shutdown -h now | + | shutdown -r now |
| </ | </ | ||
| ===== Debian ===== | ===== Debian ===== | ||
| - | I server con Debian necessitano di uno script diverso, | + | I server con Debian necessitano di uno script |
| + | |||
| + | === PBIS (new) === | ||
| + | |||
| + | Questo è lo script preferenziale per i nuovi server. PBIS si è rivelato piuttosto stabile. Rispetto al vecchio script, però, cambia il mapping UID/GID e questo può essere indesiderabile. | ||
| <code bash instdeb.sh> | <code bash instdeb.sh> | ||
| #!/bin/bash | #!/bin/bash | ||
| ##### | ##### | ||
| - | # Script di installazione per server Debian. Versione del 14/3/2014 | + | # Script di installazione per server Debian. Versione del 09/07/2019 |
| + | # Modifiche per Debian 10 | ||
| + | # Permessa installazione senza join per macchine non str957-* | ||
| ############################################################ | ############################################################ | ||
| Linea 188: | Linea 303: | ||
| # Base OU in AD | # Base OU in AD | ||
| - | AD_OU=' | + | AD_OU=' |
| # Pacchetti base, da installare sempre | # Pacchetti base, da installare sempre | ||
| - | SYS_PKGS=" | + | SYS_PKGS=" |
| # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
| - | AD_PKGS=" | + | AD_PKGS=" |
| # Pacchetti comuni | # Pacchetti comuni | ||
| - | XTRA_PKGS=" | + | XTRA_PKGS=" |
| ############################################################ | ############################################################ | ||
| # Qui non modificare nulla | # Qui non modificare nulla | ||
| + | techs=" | ||
| + | NAME=$(hostname -s) | ||
| + | admgrp=" | ||
| + | usrgrp=" | ||
| + | pbis_base=/ | ||
| + | AD_HOME=' | ||
| # Read user input with a default | # Read user input with a default | ||
| Linea 213: | Linea 334: | ||
| fi | fi | ||
| } | } | ||
| - | |||
| - | NAME=$(hostname -s) | ||
| PCID=`echo $NAME | sed ' | PCID=`echo $NAME | sed ' | ||
| + | if [ -z " | ||
| + | echo " | ||
| + | echo "Premi INVIO per continuare comunque." | ||
| + | JOIN=n | ||
| + | read A | ||
| + | else | ||
| + | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
| + | fi | ||
| + | |||
| + | if [ " | ||
| + | readdef "Nome amministratore AD (${AD_USER})" | ||
| + | mkdir / | ||
| + | mkdir / | ||
| + | fi | ||
| + | |||
| + | # Primo aggiornamento/ | ||
| + | apt -qy install $SYS_PKGS | ||
| + | if [ " | ||
| + | wget -O - http:// | ||
| + | wget -O / | ||
| + | apt update | ||
| + | apt -qy install $AD_PKGS pbis-open | ||
| + | fi | ||
| + | |||
| + | # Fix autorizzazioni | ||
| + | sed -i~ " | ||
| + | sed -i~ " | ||
| + | |||
| + | # Operazioni relative al dominio | ||
| + | if [ " | ||
| + | sh ~/ | ||
| + | $pbis_base/ | ||
| + | $pbis_base/ | ||
| + | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | ||
| + | read A | ||
| + | # Corregge errore con PAM (il file pbis viene creato col join, non prima...) | ||
| + | sed -i ' | ||
| + | pam-auth-update | ||
| + | $pbis_base/ | ||
| + | $pbis_base/ | ||
| + | $pbis_base/ | ||
| + | $pbis_base/ | ||
| + | echo " | ||
| + | chmod 0440 / | ||
| + | |||
| + | $pbis_base/ | ||
| + | echo "Admin group found" | ||
| + | echo " | ||
| + | chmod 0440 / | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | echo " | ||
| + | reqm=" | ||
| + | $pbis_base/ | ||
| + | # Trying to lockout admins? Don't! | ||
| + | reqm2=" | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | # Never lockout technicians! | ||
| + | reqm3=" | ||
| + | } | ||
| + | $pbis_base/ | ||
| + | } | ||
| + | fi | ||
| + | |||
| + | # Installazione dei pacchetti base | ||
| + | apt -qy install ${XTRA_PKGS} | ||
| + | |||
| + | # Aggiornamento completo del sistema | ||
| + | apt -qy dist-upgrade | ||
| + | shutdown -r now | ||
| + | </ | ||
| + | |||
| + | === Winbind (old) === | ||
| + | |||
| + | Talvolta è necessario evitare l'uso di PBIS (p.e. perché si aggiungono nodi che devono mantenere il mapping UID/GID coerente con vecchi server). | ||
| + | |||
| + | <code bash instdeb-old.sh > | ||
| + | #!/bin/bash | ||
| + | ##### | ||
| + | # Script di installazione per server Debian. | ||
| + | # Versione del 1/9/2015 | ||
| + | |||
| + | ############################################################ | ||
| + | # Config section: personalizza a volontà | ||
| + | #### | ||
| + | # Utente locale | ||
| + | LOCAL_USER=tecnici | ||
| + | # Amministratore AD da usare per il join | ||
| + | AD_USER=diego.zuccato | ||
| + | |||
| + | # Base OU in AD | ||
| + | AD_OU=' | ||
| + | |||
| + | # Pacchetti base, da installare sempre | ||
| + | SYS_PKGS=" | ||
| + | |||
| + | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
| + | AD_PKGS=" | ||
| + | |||
| + | # Pacchetti comuni | ||
| + | XTRA_PKGS=" | ||
| + | |||
| + | ############################################################ | ||
| + | # Qui non modificare nulla | ||
| + | |||
| + | # Read user input with a default | ||
| + | # readdef " | ||
| + | function readdef { | ||
| + | local v; | ||
| + | read -p "$1 " v | ||
| + | if [ -z " | ||
| + | eval $3=" | ||
| + | else | ||
| + | eval $3=" | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | NAME=$(hostname -s) | ||
| + | |||
| + | PCID=`echo $NAME | sed ' | ||
| + | |||
| if [ -z " | if [ -z " | ||
| echo " | echo " | ||
| exit | exit | ||
| fi | fi | ||
| + | |||
| LAB=`echo $PCID| sed ' | LAB=`echo $PCID| sed ' | ||
| PCNO=`echo $PCID| sed " | PCNO=`echo $PCID| sed " | ||
| AD_HOME=' | AD_HOME=' | ||
| + | |||
| mkdir / | mkdir / | ||
| mkdir / | mkdir / | ||
| + | |||
| readdef 'Vuoi joinare la macchina? (S/n)' ' | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
| if [ " | if [ " | ||
| readdef "Nome amministratore AD (${AD_USER})" | readdef "Nome amministratore AD (${AD_USER})" | ||
| fi | fi | ||
| + | |||
| # Primo aggiornamento/ | # Primo aggiornamento/ | ||
| apt-get -qy install $SYS_PKGS | apt-get -qy install $SYS_PKGS | ||
| Linea 241: | Linea 482: | ||
| service winbind stop | service winbind stop | ||
| mv / | mv / | ||
| - | cat > / | + | cat > / |
| [global] | [global] | ||
| netbios name = ${NAME} | netbios name = ${NAME} | ||
| Linea 259: | Linea 500: | ||
| wins server = 137.204.25.77 | wins server = 137.204.25.77 | ||
| client schannel = no | client schannel = no | ||
| + | |||
| #winbind separator = - | #winbind separator = - | ||
| winbind enum users = No | winbind enum users = No | ||
| Linea 270: | Linea 511: | ||
| winbind uid = 10000-99999 | winbind uid = 10000-99999 | ||
| winbind gid = 10000-99999 | winbind gid = 10000-99999 | ||
| + | |||
| #idmap domains = PERSONALE STUDENTI | #idmap domains = PERSONALE STUDENTI | ||
| #idmap config PERSONALE: | #idmap config PERSONALE: | ||
| #idmap config STUDENTI: | #idmap config STUDENTI: | ||
| + | |||
| idmap config PERSONALE: | idmap config PERSONALE: | ||
| idmap config PERSONALE: | idmap config PERSONALE: | ||
| Linea 281: | Linea 522: | ||
| idmap config STUDENTI: | idmap config STUDENTI: | ||
| idmap config STUDENTI: | idmap config STUDENTI: | ||
| + | |||
| template homedir = /home/%D/%U | template homedir = /home/%D/%U | ||
| template shell = /bin/bash | template shell = /bin/bash | ||
| END | END | ||
| - | | + | |
| + | getent group $chkgroup > /dev/null && GROUP=" | ||
| + | cat > / | ||
| [global] | [global] | ||
| - | require_membership_of=${NOME}-abilitati | + | require_membership_of=${GROUP}Str957.Tecnici |
| mkhomedir=yes | mkhomedir=yes | ||
| END | END | ||
| - | echo " | + | |
| - | | + | |
| - | | + | |
| + | |||
| # Controllo ed eventuale restart automatico di winbind ogni 5 minuti | # Controllo ed eventuale restart automatico di winbind ogni 5 minuti | ||
| echo '*/5 * * | echo '*/5 * * | ||
| fi | fi | ||
| + | |||
| # Fix autorizzazioni | # Fix autorizzazioni | ||
| sed -i~ " | sed -i~ " | ||
| sed -i~ " | sed -i~ " | ||
| - | #sed -i~ ' | ||
| # Operazioni relative al dominio | # Operazioni relative al dominio | ||
| if [ " | if [ " | ||
| - | # domainjoin-cli join --ou " | + | |
| - | | + | echo "Se il join è riuscito |
| - | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | + | |
| read A | read A | ||
| + | net ads dns register -P | ||
| echo " | echo " | ||
| chmod 0440 / | chmod 0440 / | ||
| Linea 316: | Linea 558: | ||
| # Installazione dei pacchetti base | # Installazione dei pacchetti base | ||
| apt-get -qy install ${XTRA_PKGS} | apt-get -qy install ${XTRA_PKGS} | ||
| - | |||
| - | # Installa ORACLE Java (richiede conferma sia per l' | ||
| - | add-apt-repository ppa: | ||
| - | apt-get update | ||
| - | apt-get -qy install oracle-java7-installer | ||
| # Aggiornamento completo del sistema | # Aggiornamento completo del sistema | ||
| apt-get -qy dist-upgrade | apt-get -qy dist-upgrade | ||
| - | shutdown -h now | + | shutdown -r now |
| </ | </ | ||
| + | |||
script.1394804511.txt.gz · Ultima modifica: da m.bertelli@unibo.it
