346 lines
10 KiB
Markdown
346 lines
10 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||
|
||
# Howto Migration Wheezy -> Jessie
|
||
|
||
Release Notes amd64 : <http://www.debian.org/releases/jessie/amd64/release-notes/>
|
||
|
||
Avant de mettre à jour penser à vérifier les paquets étiquetés et suspendus et modifier si besoin :
|
||
|
||
~~~
|
||
# apt-cache policy
|
||
# aptitude search "~ahold"
|
||
~~~
|
||
|
||
Éditer les dépôts dans /etc/apt/sources.list et /etc/apt/sources.list.d/*.list pour remplacer wheezy par jessie, puis mettre à jour la cache APT :
|
||
|
||
~~~
|
||
# apt-get update
|
||
~~~
|
||
|
||
Commencer par télécharger l'ensemble des paquets qui devront être installés (afin de limiter le temps effectif d'installation).
|
||
|
||
~~~
|
||
# apt-get dist-upgrade --download-only
|
||
~~~
|
||
|
||
Faire ensuite une mise à niveau "simple", pour appliquer les mises à jour triviales :
|
||
|
||
~~~
|
||
# apt-get upgrade
|
||
~~~
|
||
|
||
Enfin, appliquer les mises à jour non triviales (nécessitant des changements de paquets dépendants, des suppressions, ...) afin d'avoir un oeil plus précis sur ce qui sera fait, avant de valider :
|
||
|
||
~~~
|
||
# apt-get dist-upgrade
|
||
~~~
|
||
|
||
Bien vérifier que le noyau Linux a été mis à jour également :
|
||
|
||
~~~
|
||
# uname -a # version qui tourne actuellement
|
||
# dpkg -l |grep linux-image # version nouvellement installée
|
||
~~~
|
||
|
||
Si la carte ethernet est un Broadcom, vérifier également que le paquet firmware-bnx2 a été mis à jour.
|
||
|
||
Merger les nouvelles conf au cas par cas :
|
||
|
||
~~~
|
||
# find /etc -name "*.dpkg-*"
|
||
~~~
|
||
|
||
## VERSIONS
|
||
|
||
Passage de Wheezy à Jessie :
|
||
|
||
MySQL 5.5.31 -> 5.5.43
|
||
|
||
PHP 5.4.4 -> 5.6.7
|
||
|
||
Apache 2.2.22 -> 2.4.10
|
||
|
||
Tomcat 7.0.28 -> 7.0.56
|
||
|
||
Bind 9.8.4 -> 9.9.5
|
||
|
||
noyau Linux 3.2 -> 3.16
|
||
|
||
## systemd
|
||
|
||
Debian 8 utilise systemd par défaut. Pour passer effectivement en systemd (conseillé), il faut :
|
||
|
||
~~~
|
||
# apt install systemd-sysv
|
||
~~~
|
||
|
||
Informations de survie :
|
||
|
||
* lire <http://trac.evolix.net/infogerance/wiki/HowtoSystemd>
|
||
* Repasser en sysV (non conseillé/testé) : <http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian_jessie/sid_installation>
|
||
|
||
Attention, le passage a systemd est délicat avec le démarrage réseau ! En effet, si des scripts liés au réseau sont démarrés via /etc/network/if-*up*/ vous aurez un blocage complet du démarrage...
|
||
Exemple : si le paquet openntpd est désinstallé et non purgé, votre démarrage sera bloqué => *dpkg -P openntpd*
|
||
Il faut donc vérifier que tous les scripts liés au réseau sont bien d'actualité : ls -l /etc/network/if-*up*/
|
||
Plus de détails sur <http://trac.evolix.net/infogerance/wiki/HowtoSystemd#networking>
|
||
|
||
## Bind
|
||
|
||
Si vous utilisez un chroot et systemd, vous devez (installer pkg _bind9_) -> voir <http://trac.evolix.net/infogerance/wiki/HowtoBind#InstallationetconfigurationdeBind>
|
||
|
||
~~~
|
||
# cp -a /lib/systemd/system/bind9.service /etc/systemd/system/
|
||
~~~
|
||
|
||
Ajuster la section [Service] :
|
||
|
||
~~~
|
||
EnvironmentFile=-/etc/default/bind9
|
||
ExecStart=/usr/sbin/named -f $OPTIONS
|
||
~~~
|
||
|
||
Puis :
|
||
|
||
~~~
|
||
# systemctl daemon-reload
|
||
~~~
|
||
|
||
Autre information importante pour vos zones "slave" elles sont désormais binaires par défaut,
|
||
pour conserver les anciennes il faut donc ajouter l'option (par exemple dans /etc/bind9/named.conf.options) :
|
||
|
||
~~~
|
||
masterfile-format text;
|
||
~~~
|
||
|
||
## Redis
|
||
|
||
/run n'est plus persistant. Il faut préciser dans l'unit de redis le RuntimeDirectory pour que la création de /var/run/redis soit effectuée au démarrage (et placer la socket et le pid dans /var/run/redis).
|
||
|
||
~~~
|
||
# cp -a /lib/systemd/system/redis-server.service /etc/systemd/system/
|
||
~~~
|
||
|
||
Editer /etc/systemd/system/redis-server.service et ajuster la section [Service] :
|
||
|
||
~~~
|
||
RuntimeDirectory=redis
|
||
RuntimeDirectoryMode=700
|
||
~~~
|
||
|
||
Puis :
|
||
|
||
~~~
|
||
# systemctl daemon-reload
|
||
~~~
|
||
|
||
## Apache
|
||
|
||
* Il faut autoriser /home/ ou /srv dans /etc/apache2/apache2.conf !
|
||
|
||
~~~
|
||
[Wed Nov 25 16:40:33.466946 2015] [authz_core:error] [pid 17204] [client XX.XX.XX.XX:48740] AH01630: client denied by server configura
|
||
tion: /home/XXX/www/YYY/ZZZ
|
||
~~~
|
||
|
||
~~~
|
||
<Directory /home/>
|
||
Options Indexes FollowSymLinks
|
||
AllowOverride None
|
||
Require all granted
|
||
</Directory>
|
||
~~~
|
||
|
||
* Il faut s'assurer que les fichiers dans /etc/apache2/sites-* se terminent en .conf en les renommant. (Ou modifier la directive dans apache2.conf. **Non conseillé car cela casse a2{en,dis}site.**)
|
||
|
||
~~~
|
||
# cd /etc/apache2/sites-available/
|
||
# for file in *; do if ! [[ "$file" =~ ".conf" ]]; then mv "$file" "${file}.conf"; fi; done
|
||
# cd /etc/apache2/sites-enabled/
|
||
# for file in *; do if ! [[ "$file" =~ ".conf" ]]; then mv "$file" "${file}.conf"; fi; done
|
||
# for file in *; do rm "$file"; ln -s "../sites-available/$file" "$file"; done
|
||
~~~
|
||
|
||
|
||
* Il faut supprimer la directive :
|
||
|
||
~~~
|
||
AH00526: Syntax error on line 89 of /etc/apache2/apache2.conf:
|
||
Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration
|
||
~~~
|
||
|
||
* Il faut supprimer les directives :
|
||
|
||
~~~
|
||
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf:8
|
||
~~~
|
||
|
||
* Il faut remplacer ...
|
||
|
||
~~~
|
||
AH00526: Syntax error on line 5 of /etc/apache2/conf/ssl-evolix.conf:
|
||
SSLSessionCache: 'shm' session cache not supported (known names: default,shmcb). Maybe you need to load the appropriate socache module (mod_socache_shm?).
|
||
~~~
|
||
|
||
par
|
||
|
||
~~~
|
||
SSLSessionCache shmcb:/var/log/apache2/ssl_gcache_data(512000)
|
||
~~~
|
||
|
||
* Les directives Options doivent avoir + ou -.
|
||
|
||
~~~
|
||
AH00526: Syntax error on line 27 of /etc/apache2/sites-enabled/app:
|
||
Either all Options must start with + or -, or no Option may.
|
||
|
||
# sed -i 's/Options ExecCGI -MultiViews/Options +ExecCGI -MultiViews/g' /etc/apache2/sites-available/*
|
||
~~~
|
||
|
||
* RewriteLog et RewriteLogLevel n'existent plus, à supprimer
|
||
|
||
~~~
|
||
AH00526: Syntax error on line 61 of /etc/apache2/sites-enabled/app:
|
||
Invalid command 'RewriteLog', perhaps misspelled or defined by a module not included in the server configuration
|
||
|
||
# cd /etc/apache2/sites-available/
|
||
# sed -i '/RewriteLog/d' *
|
||
# sed -i '/RewriteLogLevel/d' *
|
||
~~~
|
||
|
||
*Il ne faut plus utiliser les directives MaxClients mais MaxRequestWorkers ! *
|
||
|
||
### ModSec
|
||
|
||
* deprecated:
|
||
|
||
~~~
|
||
ModSecurity: WARNING Using transformations in SecDefaultAction is deprecated (/etc/apache2/conf.d/mod-security2.conf:19
|
||
~~~
|
||
|
||
Il faut mettre :
|
||
|
||
~~~
|
||
SecDefaultAction "log,auditlog,deny,status:406,phase:2"
|
||
~~~
|
||
|
||
* id
|
||
|
||
~~~
|
||
ModSecurity: Rules must have at least id action
|
||
~~~
|
||
|
||
Il faut rajouter des id aux rules.
|
||
|
||
~~~
|
||
# File name
|
||
SecRule REQUEST_FILENAME "modsecuritytest1" "id:1"
|
||
# Complete URI
|
||
SecRule REQUEST_URI "modsecuritytest2" "id:2"
|
||
SecRule REQUEST_FILENAME "(?:n(?:map|et|c)|w(?:guest|sh)|cmd(?:32)?|telnet|rcmd|ftp)\.exe" "id:3"
|
||
~~~
|
||
|
||
## Squid
|
||
|
||
Attention Squid3 semble non compatible avec le kernel 3.2 de Wheezy, il faut bien rebooter sur le nouveau kernel pour que Squid soit fonctionnel.
|
||
|
||
Pour installer le nouveau kernel, parfois nécessaire de préciser l'installation du kernel, en indiquant le package concerné : _linux-image-xx_
|
||
|
||
* APT UPDATE ne marche plus, et certains sites sont innaccessible (timeout):
|
||
|
||
-> vérifier que tcp_outgoing_address est présent dans la conf de _Squid_
|
||
-> mettre à jour `init.d/minifirewall`
|
||
-> restart minifirewall
|
||
|
||
### Mettre à jour minifirewall
|
||
|
||
Pour que squid fonctionne, il faut que la version de minifirewall soit récente. Auquel cas le message d'erreur suivant peut apparaître dans cache.log et squid ne démarre pas.
|
||
|
||
|
||
~~~
|
||
2016/06/30 00:37:26 kid1| sendto FD 11: (1) Operation not permitted
|
||
2016/06/30 00:37:26 kid1| ipcCreate: CHILD: hello write test failed
|
||
~~~
|
||
|
||
Il manque une règle ip6tables. Cela a été corrigé via [ce commit](https://forge.evolix.org/projects/minifirewall/repository/revisions/705c4683a2d7214c3f9664577955f1dd32cfdf54/diff/minifirewall).
|
||
|
||
*Il faut donc mettre à jour le script d'init minifirewall* !
|
||
|
||
## Elasticsearch
|
||
|
||
Le fichier /etc/default/elasticsearch doit contenir les informations de configuration (il ne les a pas forcément par défaut !!) :
|
||
|
||
~~~
|
||
LOG_DIR=/var/log/elasticsearch
|
||
DATA_DIR=/var/lib/elasticsearch
|
||
WORK_DIR=/tmp/elasticsearch
|
||
CONF_DIR=/etc/elasticsearch
|
||
CONF_FILE=/etc/elasticsearch/elasticsearch.yml
|
||
ES_HOME=/usr/share/elasticsearch
|
||
ulimit -n 65535
|
||
sysctl -q -w vm.max_map_count=262144
|
||
~~~
|
||
|
||
Sinon, vous aurez notamment des erreurs du type :
|
||
|
||
~~~
|
||
elasticsearch[6821]: Failed to configure logging...
|
||
elasticsearch[6821]: org.elasticsearch.ElasticsearchException: Failed to load logging configuration
|
||
~~~
|
||
|
||
Il faut apparemment forcer l'activation au démarrage :
|
||
|
||
~~~
|
||
# systemctl enable elasticsearch
|
||
~~~
|
||
|
||
## Spamassassin
|
||
|
||
SA peut gueuler, voir le package sa-compile qui n'arrive pas à s'installer.
|
||
Sans doute Razor plugin qui râle, donc vérifier le chargement de celui-ci :
|
||
|
||
~~~
|
||
grep -ri razor /etc/spamassassin/local_evolix.cf
|
||
~~~
|
||
|
||
-> commenter _razor_timeout_ (autre solution?)
|
||
|
||
## MySQL
|
||
|
||
Penser à ajouter la valeur par défaut à _secure-file-priv_ dans la config de MySQL (premier trouvé par ordre de préférence) :
|
||
|
||
* /etc/mysql/conf.d/evolinux.cnf
|
||
* /etc/mysql/conf.d/evolix.cnf
|
||
* /etc/mysql/my.cnf
|
||
* /etc/mysql/conf.d/000-evolinux-defaults.cnf
|
||
|
||
~~~
|
||
[mysqld]
|
||
secure-file-priv = ""
|
||
~~~
|
||
|
||
## Redmine
|
||
|
||
Lors de la migration, le package peut avoir été désinstallé. Regarder dans les logs dpkg:
|
||
|
||
~~~
|
||
grep redmine /var/log/dpkg.log
|
||
~~~
|
||
|
||
Réinstaller le package, et s'assurer du PassengerDefaultUser pour www-data dans le mod apache2:
|
||
|
||
~~~
|
||
$ vi /etc/apache2/mods-available/passenger.conf
|
||
PassengerDefaultUser www-data
|
||
~~~
|
||
|
||
Si besoin, changer _adapter_ de mysql vers mysql2 (avec package à installer si non présent) : `/etc/redmine/default/database.yml`
|
||
|
||
## Evoadmin et web-add
|
||
|
||
À cause de Apache 2.4 en Jessie, ils ne sont pas compatibles. Il faut installer la version de la branche Jessie.
|
||
Idéalement relancer le module evolinux jessie pour evoadmin (supprimer le vhost 'evoadmin' puis relancer evolinux en faisant grandement attention à ne valider que seulement l'installation de evoadmin-web).
|
||
|
||
## rbenv
|
||
|
||
Attention, une mise-à-jour majeure (tout comme une mise-à-jour majeure d'ailleurs) va casser les compilations (sauf coup de chance).
|