[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> install_se3-module.sh (source)

   1  #!/bin/bash
   2  #
   3  ## $Id: install_se3-module.sh 8091 2014-03-29 21:54:37Z keyser $ ##
   4  #
   5  ##### Permet d'installer un paquet module se3#####
   6  ### franck.molle@ac-rouen.fr
   7  
   8  
   9  function usage {
  10      echo "usage: $0 -a -d -h -i -r module"
  11      echo "       -a :  activation module"
  12      echo "       -d :  desactivation module"
  13      echo "       -i :  install module"
  14      echo "       -h :  show this help"
  15      echo "       -r : remove module"
  16      echo "       ex.:  $0 -i se3-dhcp"
  17      exit $1;
  18  }
  19  
  20  while getopts ":adihr" cmd
  21  do
  22      case $cmd in    
  23        a) activate=1 ;;
  24        d) desactivate=1;;
  25        i) install=1 ;;
  26        r) remove=1 ;;
  27        h) usage 0 ;;
  28        ?) echo "bad option!"
  29            usage 1 ;;
  30      esac
  31  done
  32  
  33  # remise a zero compteur pour avoir le module en $1
  34  shift $(($OPTIND-1))
  35  
  36  
  37  SE3MODULE="$1"
  38  M2="$2"
  39  M3="$3"
  40  
  41  . /etc/se3/config_m.cache.sh
  42  . /etc/se3/config_l.cache.sh
  43  
  44  if [ "$1" = "--help" -o "$1" = "" -o "$1" = "-h" ]
  45  then
  46      echo "Script permettant l'installion ou l'activation de $SE3MODULE"
  47      echo "Usage : passer le nom du module a installer en option"
  48      exit 1
  49  fi
  50  
  51  LADATE=$(date +%d-%m-%Y)
  52  echo "Nous sommes le $LADATE"
  53  REPORT_FILE="/var/log/se3/$SE3MODULE}_install_$LADATE.log" 2>&1
  54  echo "" > $REPORT_FILE 2>&1
  55  ### mode auto : on rend debconf silencieux  ###
  56  DEBIAN_PRIORITY="critical"
  57  DEBIAN_FRONTEND="noninteractive"
  58  export  DEBIAN_FRONTEND
  59  export  DEBIAN_PRIORITY
  60  
  61  opt="--allow-unauthenticated"
  62  
  63  
  64  [ -z "$LC_ALL" ] && LC_ALL=C && export LC_ALL=C 
  65  
  66  
  67  #debug="-s"
  68    echo "<pre>"
  69  . /etc/profile 2>/dev/null
  70  MAIL_REPORT()
  71  {
  72  [ -e /etc/ssmtp/ssmtp.conf ] && MAIL_ADMIN=$(cat /etc/ssmtp/ssmtp.conf | grep root | cut -d= -f2)
  73  if [ ! -z "$MAIL_ADMIN" ]; then
  74      REPORT=$(cat $REPORT_FILE | sed -e "s/$xppass/XXXXXX/g")
  75  #cat $REPORT_FILE
  76      #On envoie un mail a l'admin
  77      echo "$REPORT"  | mail -s "[SE3] Resultat de $0" $MAIL_ADMIN
  78  fi
  79  }
  80  
  81  
  82  WWWPATH="/var/www"
  83  if [ -e $WWWPATH/se3/includes/config.inc.php ]; then
  84      dbhost=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2`
  85      dbname=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2`
  86      dbuser=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2`
  87      dbpass=`cat $WWWPATH/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2`
  88  else
  89      echo -e "$COLERREUR"
  90      echo "Fichier de configuration $WWWPATH/se3/includes/config.inc.php inaccessible." | tee -a $REPORT_FILE
  91      echo "Le script ne peut se poursuivre." | tee -a $REPORT_FILE
  92      MAIL_REPORT
  93      echo "</pre>"
  94      exit 1
  95  fi
  96  
  97  # debug="0" #desactivation debug si =0
  98  [ -e /root/debug ] && debug="1"
  99  
 100  TEST_LOCK()
 101  # principe bien rempompe sur un script de stephane ;)
 102  {
 103  # Chemin des fichiers de lock:
 104  chemin_lock="/var/lock"
 105  # Nom du fichier de lock:
 106  fich_lock="$chemin_lock/$SE3MODULE}.lck"
 107  if [ -e $fich_lock ]; then
 108      t1=$(cat $fich_lock)
 109      t_expiration=$(($t1+1200))
 110      t2=$(date +%s)
 111      difference=$(($t2-$t1))
 112      if [ $t2 -gt $t_expiration ]; then
 113          echo "Tache d'installation de $SE3MODULE initiee en $t1 et il est $t2" | tee -a $REPORT_FILE
 114          echo "La tache a depasse le delai imparti." | tee -a $REPORT_FILE
 115          echo "Le fichier va etre reinitialise..." | tee -a $REPORT_FILE
 116      else
 117          echo "Une installation semble deja en cours, veuillez patienter qu'elle se termine, celle-ci dispose de 20mn pour le faire" | tee -a $REPORT_FILE
 118          echo "</pre>"
 119          exit 1
 120      fi
 121  
 122  else
 123      date +%s > $fich_lock
 124  fi
 125  }
 126  
 127  LINE_TEST()
 128  {
 129  if ( ! wget -q --output-document=/dev/null 'http://wawadeb.crdp.ac-caen.fr/index.html') ; then
 130      echo "Votre connexion internet ne semble pas fonctionnelle !!" | tee -a $REPORT_FILE
 131      MAIL_REPORT
 132      echo "</pre>"
 133      exit 1
 134  else
 135      echo "Connexion internet Ok"
 136  fi
 137  }
 138  
 139  verif_install()
 140  {
 141  mod_install=$(apt-cache policy $1 | grep "Install" | cut -d" " -f4)
 142  mod_candidat=$(apt-cache policy $1 | grep "Candidat" | cut -d" " -f4)
 143  
 144  if [ -z "$mod_candidat" ]; then
 145  echo "Installation de $1 impossible, module non disponible sur le depot !!!" tee -a $REPORT_FILE
 146  exit 1
 147  fi
 148  
 149  
 150  if [ "$mod_install" == "$mod_candidat" ]; then
 151      echo "Installation de $1 $mod_install Ok !" tee -a $REPORT_FILE
 152  else
 153      echo "Installation de $1 $mod_install KO !!!!\nAbandon !" tee -a $REPORT_FILE
 154      exit 1
 155  fi
 156  }
 157  
 158  install_module()
 159  {
 160  echo "Installation ou MAJ de $SE3MODULE" | tee -a $REPORT_FILE
 161  echo "Mise a jour de la liste des paquets disponibles ....." | tee -a $REPORT_FILE
 162  LINE_TEST
 163  TEST_LOCK
 164  apt-get update -qq && (echo "Liste mise a jour avec succes" | tee -a $REPORT_FILE)
 165  echo "" | tee -a $REPORT_FILE
 166  
 167  echo "Installation du paquet $SE3MODULE et de ses dependances" | tee -a $REPORT_FILE
 168  LC_ALL=C apt-get install $SE3MODULE -y --force-yes $opt | tee -a $REPORT_FILE
 169  
 170  verif_install $SE3MODULE 
 171  
 172  
 173  if [ ! -z "$M2" ]; then
 174  echo "Installation du paquet complementaire $M2" | tee -a $REPORT_FILE
 175  LC_ALL=C apt-get install $M2 -y --force-yes $opt | tee -a $REPORT_FILE
 176  verif_install $M2
 177  fi
 178  
 179  if [ ! -z "$M3" ]; then
 180  echo "Installation du paquet complementaire $M3" | tee -a $REPORT_FILE
 181  LC_ALL=C apt-get install $M3 -y --force-yes $opt | tee -a $REPORT_FILE
 182  verif_install $M3
 183  fi
 184  
 185  # L'envoi d'un mail est superflu
 186  #MAIL_REPORT
 187  }
 188  
 189  remove_module()
 190  {
 191  echo "Supression de $SE3MODULE" | tee -a $REPORT_FILE
 192  apt-get remove $SE3MODULE -y | tee -a $REPORT_FILE
 193  }
 194  
 195  
 196  ## on installe quoi comme module ?
 197  case "$1" in
 198  se3)
 199  install_module
 200  #echo "<br/>"
 201  #se3domain_ok=$(dpkg -s se3-domain | grep "Status: install ok")
 202  #if [ -z "$se3domain_ok" ]; then
 203  #  echo ""
 204    echo "Maj si besoin se3-domain" | tee -a $REPORT_FILE
 205    apt-get install se3-domain -y --force-yes $opt | tee -a $REPORT_FILE 
 206    
 207  #fi
 208  
 209  # UPDATE PARTIE MODULES 
 210  (
 211  dpkg -l|grep se3-|cut -d ' ' -f3|while read package
 212  do
 213  LC_ALL=C apt-get -s install $package|grep newest >/dev/null|| echo $package
 214  done
 215  )>/root/se3_update_list
 216  
 217  list_module=$(cat /root/se3_update_list)
 218  if [ -n "$list_module" ]; then
 219    echo ""
 220    echo "Mise a jour des modules" | tee -a $REPORT_FILE
 221    apt-get install $list_module -y --force-yes $opt 2>&1 | tee -a $REPORT_FILE 
 222  ##
 223  ##apt-get install $(cat /tmp/se3_update_list) --allow-unauthenticated -y -o Dpkg::Options::=--force-confold 2>&1 | tee -a $REPORT_FILE 
 224  #  rm -f /root/se3_update_list
 225    
 226  fi
 227  
 228  MAIL_REPORT
 229  ;;
 230  
 231  se3-dhcp)
 232          ## test de l'existence d'un dhcp qui fonctionne et actif au boot et svg des fichiers si existants
 233          # DHCP_ACTIVE=$(ps aux | grep dhcpd | grep -v grep)
 234          # DHCP_ON_BOOT=$(ls /etc/rc2.d/ | grep dhcp)
 235          # if [ -e /etc/dhcp3/dhcpd.conf ]; then
 236          # cp -a /etc/dhcp3/dhcpd.conf /root/
 237          # else
 238          # [ -e /etc/dhcpd.conf ] && cp -a /etc/dhcpd.conf /root/
 239          # fi
 240  
 241          ## descente de se3-dhcp
 242          install_module
 243          # Activation dans l'interfesse
 244          mysql -h $dbhost -u $dbuser -p$dbpass -D $dbname -e "UPDATE params SET value='1' WHERE name='dhcp';"
 245  
 246          # restauration de l'etat precedent du dhcp si necessaire
 247          # [ -e /root/dhcpd.conf ] && mv /root/dhcpd.conf /etc/dhcp3/dhcpd.conf
 248          # [ ! -z $DHCP_ON_BOOT ] && /usr/sbin/update-rc.d dhcp3-server default
 249  
 250  
 251  ;;
 252  
 253  se3-clonage)
 254  LINE_TEST
 255  # if [ ! -e /usr/sbin/atftpd ];    then
 256  
 257  [ -e /etc/inetd.conf ] && cp -a /etc/inetd.conf /etc/inetd.conf.$SE3MODULE}_$LADATE
 258  #     echo "Installation de atftpd" | tee -a $REPORT_FILE
 259  #     apt-get install $option atftpd | tee -a $REPORT_FILE
 260  #     echo "" | tee -a $REPORT_FILE
 261  
 262  
 263  # fi
 264  
 265  if [ -d /tftpboot ]; then
 266      if [ -z "$(dpkg -s se3-dhcp | grep "Status: install ok")" ]; then
 267          echo -e "Presence de /tftpboot detectee, se3-clonage a renomme le repertoire en /tftpboot_$SE3MODULE}.sav" | tee -a $REPORT_FILE
 268          mv /tftpboot /tftpboot_$SE3MODULE}.sav
 269      fi
 270  
 271  fi
 272  install_module
 273  [ -e /etc/inetd.conf.$SE3MODULE}_$LADATE ] && cp -a /etc/inetd.conf.$SE3MODULE}_$LADATE /etc/inetd.conf
 274  ## Activation du tftp
 275  /usr/share/se3/scripts/se3_tftp_boot_pxe.sh start
 276  
 277  # Activation dans l'interfesse
 278  mysql -h $dbhost -u $dbuser -p$dbpass -D $dbname -e "UPDATE params SET value='1' WHERE name='clonage';"
 279  ;;
 280  
 281  se3-clamav)
 282  install_module
 283  
 284      echo "Recuperation du paquet se3-clamav si necessaire (activation possible via l'interface)"
 285      mv /etc/clamav/freshclam.conf /etc/clamav/freshclam.conf_se3sauv_$LADATE
 286  echo "DatabaseOwner clamav
 287  UpdateLogFile /var/log/clamav/freshclam.log
 288  LogFileMaxSize 0
 289  MaxAttempts 5
 290  DatabaseMirror db.fr.clamav.net
 291  DatabaseMirror db.local.clamav.net
 292  DatabaseMirror database.clamav.net
 293  DatabaseDirectory /var/lib/clamav/
 294  DNSDatabaseInfo current.cvd.clamav.net" > /etc/clamav/freshclam.conf
 295      chown clamav:adm /etc/clamav/freshclam.conf
 296  
 297      ## desactivation dans l'interface et scan fixés à aucun
 298      mysql mysql -h $dbhost -u $dbuser -p$dbpass -D $dbname -e "UPDATE params SET value='1' WHERE name='antivirus';"
 299  
 300  
 301  
 302  # Activation dans l'interface
 303  # mysql -h $dbhost -u $dbuser -p$dbpass -D $dbname -e "UPDATE params SET value='1' WHERE name='clamav';"
 304  ;;
 305  
 306  se3-ocs)
 307  cp /root/.my.cnf  /var/remote_adm/
 308  chown www-se3 /var/remote_adm/.my.cnf
 309  chmod 400 /var/remote_adm/.my.cnf
 310  install_module
 311  rm -f /var/remote_adm/.my.cnf
 312  ;;
 313  
 314  se3-wpkg)
 315  install_module
 316  ;;
 317  
 318  se3-unattended)
 319  install_module
 320  ;;
 321  
 322  se3-domain)
 323  install_module
 324  ;;
 325  
 326  se3-logonpy)
 327  install_module
 328  ;;
 329  
 330  se3-internet)
 331  install_module
 332  ;;
 333  
 334  se3-backup)
 335  install_module
 336  ;;
 337  
 338  se3-synchro)
 339  
 340  if [ "$install" ==  "1" ]; then
 341    install_module
 342  fi
 343  
 344  if [ "$remove" ==  "1" ]; then
 345    remove_module
 346  fi
 347  
 348  ;;
 349  # 
 350  # se3-seven) inutile sous squeeze !
 351  # echo "Installation ou MAJ du support seven (samba backport)" | tee -a $REPORT_FILE
 352  # LINE_TEST
 353  # TEST_LOCK
 354  # echo "deb http://backports.debian.org/debian-backports lenny-backports main" > /etc/apt/sources.list.d/smb_backport.list
 355  # echo "Mise a jour de la liste des paquets disponibles ....." | tee -a $REPORT_FILE
 356  # apt-get update -qq && (echo "Liste mise a jour avec succes" | tee -a $REPORT_FILE)
 357  # echo "" | tee -a $REPORT_FILE
 358  # 
 359  # echo "Installation du paquet Samba et de ses dependances" | tee -a $REPORT_FILE
 360  # echo "Dpkg::Options {\"--force-confnew\";}" > /etc/apt/apt.conf
 361  # apt-get -t lenny-backports install samba -y --force-yes $opt 2>&1 | tee -a $REPORT_FILE 
 362  # apt-get -t lenny-backports install samba-common-bin -y --force-yes $opt 2>&1 | tee -a $REPORT_FILE 
 363  # rm -f /etc/apt/apt.conf
 364  # MAIL_REPORT
 365  # ;;
 366  
 367  se3-fondecran)
 368  SE3MODULE="gsfonts"
 369  M2="imagemagick"
 370  
 371  # Parametres:
 372  chemin_param_fond="/etc/se3/fonds_ecran"
 373  
 374  # Creation du dossier de parametres:
 375  mkdir -p $chemin_param_fond
 376  chown www-se3:root $chemin_param_fond
 377  
 378  # Dossier de log en cas de mode debug active:
 379  dossier_log="/var/log/se3/fonds_ecran"
 380  mkdir -p "$dossier_log"
 381  
 382  #installation paquets si besoin
 383  install_module && touch $chemin_param_fond/imagemagick_present.txt && touch $chemin_param_fond/gsfonts_present.txt
 384  if [ -e $chemin_param_fond/gsfonts_present.txt ]; then
 385  #paramétrage
 386  echo "Installation ok !, parametrage...."
 387  echo "3" > $chemin_param_fond/version_samba.txt
 388  touch $chemin_param_fond/actif.txt
 389  chown www-se3 $chemin_param_fond/actif.txt
 390  touch $chemin_param_fond/parametres_generation_fonds.sh
 391  chown www-se3 $chemin_param_fond/parametres_generation_fonds.sh
 392  chmod 750 $chemin_param_fond/parametres_generation_fonds.sh
 393  touch $chemin_param_fond/install_ok.txt
 394  fi
 395  
 396  # creation du droit ldap fond_can_change
 397  echo "dn: cn=fond_can_change,$rightsRdn},$ldap_base_dn}
 398  objectClass: groupOfNames
 399  cn: fond_can_change
 400  member: uid=admin,$peopleRdn},$ldap_base_dn}
 401  " | ldapadd -x -D $adminRdn},$ldap_base_dn} -w $adminPw}
 402  
 403    mkdir -p /var/www/se3/Admin/fonds_ecran/courant
 404    chown www-se3 /var/www/se3/Admin/fonds_ecran/courant
 405  
 406    mkdir -p /var/lib/se3/fonds_ecran
 407    chown www-se3 /var/lib/se3/fonds_ecran
 408  
 409  
 410  ;;
 411  
 412  
 413  # Installation du paquet se3-clients-linux
 414  se3-clients-linux)
 415      # On verifie que le serveur NTP fourni dans la configuration du Se3
 416      # est bien valide.
 417      fichier="/etc/se3/config_c.cache.sh"
 418      SERVEUR_NTP=$(grep -E '^ntpserv=' "$fichier" | cut -d'=' -f'2-' | tr -d '"')
 419      if [ -z "$SERVEUR_NTP" ]; then
 420          echo "Desole, le nom du serveur NTP recupere dans le fichier \"$fichier\" est vide."
 421          exit 1
 422      else
 423          if ! ntpdate "$SERVEUR_NTP" > /dev/null 2>&1; then
 424              echo "Desole, mais le serveur NTP dont le nom a ete recupere" \
 425                   "dans le fichier \"$fichier\" ne semble pas fonctionner."
 426              exit 1
 427          fi
 428      fi
 429      install_module
 430      ;;
 431  
 432  
 433  
 434  
 435  *)
 436  echo "Le module $SE3MODULE n'existe pas ou n'est pas pris en charge par se3 pour le moment" | tee -a $REPORT_FILE
 437  MAIL_REPORT
 438  
 439  ;;
 440  esac
 441  echo "</pre>"
 442  echo "Installation terminee, suppression du fichier verrou" | tee -a $REPORT_FILE
 443  rm -f $fich_lock
 444  /usr/share/se3/scripts/refresh_cache_params.sh
 445  exit 0
 446  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1