2020-08-03 21:32:39 +02:00
#!/bin/sh
2020-08-06 18:27:49 +02:00
NORMAL = ''
RED = ''
GREEN = ''
2020-08-03 21:32:39 +02:00
2020-08-06 16:20:43 +02:00
msglog( ) {
case " ${ 1 } " in
green)
TEXT_COLOR = " ${ GREEN } "
; ;
red)
TEXT_COLOR = " ${ RED } "
; ;
normal)
TEXT_COLOR = " ${ NORMAL } "
; ;
esac
DATE = $( date '+%Y %b %d %H:%M:%S' )
echo ${ DATE } ${ TEXT_COLOR } ${ 2 } ${ NORMAL }
}
waiting_for_db( ) {
while ! mysqlshow -h db -uroot -p${ MYSQL_ROOT_PASSWORD } 2>& 1 | grep " ^| ${ MYSQL_DATABASE } " > /dev/null 2>& 1 ; do
msglog red "Waiting for mysql database initilization..."
2020-08-04 17:27:46 +02:00
sleep 5
done
}
2021-05-19 22:10:05 +02:00
updatephpini( ) {
variable = $1
value = $2
file = "/etc/php7/php.ini"
if [ ! -z " ${ value } " ] ; then
msglog green " Updating $variable to $value in $file "
if grep " ^ ${ variable } " " ${ file } " > /dev/null 2<& 1 ; then
sed -i " s@^\( ${ variable } \s*=\).*@\1 ${ value } @g " " ${ file } "
else
echo ${ variable } = ${ value } >> ${ file }
fi
fi
}
updatephpini memory_limit ${ PHP_MEMORY_LIMIT }
updatephpini upload_max_filesize ${ PHP_UPLOAD_MAX_FILESIZE }
updatephpini post_max_size ${ PHP_POST_MAX_SIZE }
updatephpini date.timezone ${ PHP_DATE_TIMEZONE }
2020-08-06 18:26:12 +02:00
mkdir -p /var/www/glpi
2021-05-19 22:10:05 +02:00
if [ ! -e "/etc/glpi/config_db.php" ] ; then
2020-08-06 16:20:43 +02:00
waiting_for_db
msglog red " Initialazing ${ GLPI_TARBALL } ... "
2020-08-03 21:32:39 +02:00
cd /root
2021-05-19 22:10:05 +02:00
cp -r /root/glpi_template/etc/. /etc/glpi/.
cp -r /root/glpi_template/files/. /var/lib/glpi/.
2020-08-04 17:27:46 +02:00
mysql --host= db --user= root --password= ${ MYSQL_ROOT_PASSWORD } << EOF
use mysql;
GRANT SELECT ON time_zone_name TO '${MYSQL_USER}' @'%' ;
EOF
2020-08-06 18:26:12 +02:00
cd /var/www/glpi
2020-08-04 17:27:46 +02:00
php bin/console db:install --config-dir= ${ GLPI_CONFIG_DIR } -L fr_FR -H db -d ${ MYSQL_DATABASE } -u ${ MYSQL_USER } -p ${ MYSQL_PASSWORD } -n
php bin/console glpi:plugin:install -u glpi fusioninventory -n
php bin/console glpi:plugin:activate fusioninventory -n
rm install/install.php
2020-08-06 18:26:12 +02:00
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
2020-09-11 18:14:51 +02:00
patch -Np0 -i /root/glpi_ticket.class.php.patch
2021-05-19 22:10:05 +02:00
echo " ${ GLPI_VERSION } " > /etc/glpi/glpi_actual_version
echo " ${ FUSIONINVENTORY_VERSION } " > /etc/glpi/fusioninventory_actual_version
echo " ${ FIELDS_VERSION } " > /etc/glpi/fields_actual_version
echo " ${ DATAINJECTION_VERSION } " > /etc/glpi/datainjection_version
2020-08-06 16:20:43 +02:00
msglog green "Initialazing complete..."
2020-08-03 21:32:39 +02:00
else
2020-08-06 16:20:43 +02:00
msglog green "GLPI is already initialized"
2021-05-19 22:10:05 +02:00
GLPI_ACTUAL_VERSION = $( cat /etc/glpi/glpi_actual_version)
FUSIONINVENTORY_ACTUAL_VERSION = $( cat /etc/glpi/fusioninventory_actual_version)
FIELDS_ACTUAL_VERSION = $( cat /etc/glpi/fields_actual_version)
DATAINJECTION_ACTUAL_VERSION = $( cat /etc/glpi/datainjection_version)
if [ " ${ GLPI_ACTUAL_VERSION } " = " ${ GLPI_VERSION } " -a " ${ FUSIONINVENTORY_ACTUAL_VERSION } " = " ${ FUSIONINVENTORY_VERSION } " -a " ${ FIELDS_ACTUAL_VERSION } " = " ${ FIELDS_VERSION } " -a " ${ DATAINJECTION_ACTUAL_VERSION } " = " ${ DATAINJECTION_VERSION } " ] ; then
2020-08-06 16:20:43 +02:00
msglog green "GLPI already up2date"
2020-08-06 10:03:42 +02:00
exit
fi
2020-08-06 16:20:43 +02:00
msglog red " Updating GLPI from ${ GLPI_ACTUAL_VERSION } to ${ GLPI_VERSION } "
waiting_for_db
2021-05-19 22:10:05 +02:00
cd /var/www/glpi
2020-08-06 10:03:42 +02:00
php bin/console glpi:maintenance:enable -n
2021-05-19 22:10:05 +02:00
php bin/console glpi:plugin:deactivate --all -n
2020-08-06 18:26:12 +02:00
rm /var/www/glpi/install/install.php
2021-05-19 22:10:05 +02:00
php bin/console db:update --config-dir= ${ GLPI_CONFIG_DIR } -n && \
( echo " ${ GLPI_VERSION } " > /etc/glpi/glpi_actual_version ; \
echo " ${ FUSIONINVENTORY_VERSION } " > /etc/glpi/fusioninventory_actual_version ; \
echo " ${ FIELDS_VERSION } " > /etc/glpi/fields_actual_version ; \
echo " ${ DATAINJECTION_VERSION } " > /etc/glpi/datainjection_actual_version )
2020-08-06 10:03:42 +02:00
php bin/console glpi:maintenance:disable -n
2020-08-06 18:26:12 +02:00
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
2020-08-03 21:32:39 +02:00
fi