Installation de Redmine

La procédure suivante à pour but l’installation de Redmine sur un nouveau système (par exemple une VM dédiée à Redmine).

L’instance est accessible en HTTPS (avec utilisation d’un certificat autosigné, mais celui-ci peux être adapté au besoin).

Un vhost par défaut est également créé afin de sécuriser l’installation et éviter tout duplicate content.

en root :

# apt-get update && apt-get upgrade
# apt-get remove ruby
# apt-get install apache2 apache2-dev curl imagemagick libapr1-dev libaprutil1-dev libcurl4-openssl-dev libmagickwand-dev libmysqlclient-dev mysql-client mysql-server vim-nox zsh 
# ln -s /etc/mysql/debian.cnf /root/.my.cnf
# cd /opt/
# git clone https://github.com/kimengumi/kclie.git
# kclie/configure
# /opt/kclie/sbin/mysql_create_local_user redmine

Garder les infos du fichier .my.cnf affiché à l’écran pour utilisation ultérieur.

# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# curl -sSL https://get.rvm.io | bash -s stable --rails
# rvm install 2.3.4
# rvm --default use ruby-2.3.4
# useradd -s /bin/false -mg www-data redmine
# usermod -aG rvm redmine
# usermod -aG rvm www-data
# mkdir /opt/redmine
# chown redmine:www-data /opt/redmine
# sudo -u redmine zsh
$ cd 
$ vim .my.cnf

Coller le contenu du fichier .my.cnf précédent

$ mysql -e 'CREATE DATABASE redmine_production CHARACTER SET utf8;'

S’il sagit d’une instance à restaurer ou d’une migration d’après un backup :

$ mysql redmine_production < /tmp/backup.sql

Utilisation d’une branche stable de Redmine :

Se rendre sur https://svn.redmine.org/redmine/branches/, puis aller sur la dernière branche stable en date.

Récupérer la branche (exemple) dans /opt/redmine :

$ svn co https://svn.redmine.org/redmine/branches/3.3-stable /opt/redmine

Préparer la configuration :

$ cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
$ vim /opt/redmine/config/database.yml

Compléter le paragraphe production comme suit :

production:
adapter: mysql2
database: redmine_production
host: localhost
username: redmine
password: « XXXXXXX » (Celui du fichier .my.cnf précédent)
encoding: utf8

Installer les dépendances :

$ cd /opt/redmine
$ gem install bundler
$ gem install rmagick
$ bundle install --without development test
$ bundle exec rake generate_secret_token

S’il s’agit d’une nouvelle installation :

$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake redmine:load_default_data

S’il s’agit d’une restauration d’une ancienne instance archivée :

$ mysql redmine_production < /chemin-vers-votre-dump.sql
$ RAILS_ENV=production bundle exec rake db:migrate

Suite commune :

$ RAILS_ENV=production bundle exec rake redmine:plugins:migrate 
$ RAILS_ENV=production bundle exec rake tmp:cache:clear tmp:sessions:clear 
$ gem install passenger
$ exit
# zsh
# passenger-install-apache2-module

A la fin de l’installation, le script affiche à l’écran la configuration Apache à mettre en place :

LoadModule passenger(…)
<IfModule mod_passenger(…)
(…)
</IfModu(…)

Dans une deuxième console en root :

# vim /etc/apache2/mods-available/passenger.load

Coller la la configuration pour apache de la première console.

Fermez la 2° console.

Puis appuyiez « enter » sur la première console pour terminer l’installation de passenger.

Configuration Apache :

# mkdir /var/www/default
# touch /var/www/default/index.html
# echo "User-Agent: *\nDisallow: /" > /var/www/default/robots.txt
# vim /etc/apache2/sites-available/0000-dummy-default.conf

Insérer le contenu suivant :

ServerName default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory ~ « \.svn »>
Order allow,deny
Require all denied
</Directory>
<Directory ~ « \.git »>
Order allow,deny
Require all denied
</Directory>
<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error-ssl.log
LogLevel warn
CustomLog /var/log/apache2/access-ssl.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch « \.(cgi|shtml|phtml|php)$ »>
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch « MSIE [2-6] » nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch « MSIE [17-9] » ssl-unclean-shutdown
</VirtualHost>
</IfModule>

# vim /etc/apache2/sites-available/redmine.conf

Insérer le contenu suivant :

<VirtualHost *:80>
ServerName votre.nom.de.domaine
Redirect permanent / https://votre.nom.de.domaine/
</VirtualHost>

<VirtualHost *:443>
ServerName votre.nom.de.domaine

LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined

DocumentRoot /opt/redmine/public
<Directory /opt/redmine/public>
SetEnv HTTPS 1
RailsBaseURI /redmine
RailsEnv production
PassengerResolveSymlinksInDocumentRoot on
PassengerUser redmine
PassengerGroup www-data

AllowOverride all
Options -MultiViews

Require all granted
</Directory>
</VirtualHost>

# a2enmod ssl passenger
# a2dissite 000-default
# a2ensite 0000-dummy-default redmine
# service apache2 restart

Voilà votre instance Redmine est disponible sur https://votre.nom.de.domaine/ !

TV Orange en pleine fenêtre

Orange permet aux abonnés de regarder la télévision sur son ordinateur via le site http://chaines-tv.orange.fr/. Malheureusement l’ergonomie sur site n’est pas du tout adaptée à une utilisation « multitache », comme par exemple regarder une émission tout en consultant ses emails.

La faute au cadre noir, qui prends une place démesuré, qui force soit à avoir un timbre de poste, soit avoir la fenetre du site Orange qui prends pratiquement tout l’écran

orangetv_avant

La manipulation que je vous propose est de passer par une extension de votre navigateur favori pour surcharger les fichiers de rendu du site (fichiers CSS) et passer l’affichage en pleine fenêtre comme ceci :

orangetv_apres

Plusieurs extensions sont disponible selon vos préférences ou votre navigateur. Quelques exemples :

Dans tout les cas, le but et d’utiliser l’extension préalablement installée pour injecter du contenu CSS supplementaire lors de la consulation du site.

Le code CSS à insérer :
.wptv.homePage .lightBox .container {
top: 0;
height:100%;
}
.wptv.homePage .lightBox .container .header,
.wptv.homePage .lightBox .container .playerAndArrows .rightArrow,
.wptv.homePage .lightBox .container .playerAndArrows .leftArrow {
display: none;
}
.wptv.homePage .lightBox .container .playerAndArrows .playerContainer {
width: 100vw;
height: 56.25vw;
max-height: 100vh;
max-width: 177.78vh;
}

Exemple de mise en place dans chrome avec l’extensions Web Override

Etape 1 :

Installer l’extension Web Override pour Chrome

Etape 2 :

Créer un nouvel Override

ornagetv_config1

Etape 3 :

Configurer le nouvel Override.
L’URL à saisir est : http://chaines-tv.orange.fr

ornagetv_config2

Etape 4 :

Allez dans l’onglet CSS, et coller le code cité plus haut.

ornagetv_config3

Etape 5 :

Enregistrer le modèle est profitez !

A tout moment, le menu orange reste complètement accessible et fonctionnel en passant simplement la souris sur la vidéo.

orangetv_apres_avec_menu

Migrer les bases de données d’un serveur Mysql

Que ce soit pour changer de version majeure de Mysql, changer de système ou de serveur physique, il y a différentes raisons de vouloir migrer un serveur Mysql.

La procédure ci-dessous propose de migrer toutes les bases, utilisateurs et droits d’accès d’un serveur Mysql vers un autre.
Nous nous concentrerons ici sur cette tache (et non sur l’installation/tunning de Mysql).

Version Mémo

En root, sous Debian ou Ubuntu

Sur l’ancien serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"
for BASE in $(mysql ${USER} -Bse 'show databases') ; do
    echo "sauvegarde de ${BASE}"
    mysqldump ${USER} -f ${BASE} --routines --triggers > ${BASE}.sql
done
rm information_schema.sql mysql.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql user > mysql_user.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql db > mysql_db.sql
Sur le nouveau serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"
for FIC in *.sql ; do
    BASE=`echo ${FIC} | sed -e "s/\.sql//g"`
    echo "import de ${BASE}"
    mysql ${USER} -Bse "CREATE DATABASE \`${BASE}\`"
    mysql ${USER} -f ${BASE} < ${FIC}
done
mysql -f ${USER} mysql < mysql_user.sql
mysql -f ${USER} mysql < mysql_db.sql

Version Longue, avec explication de texte

En root, sous Debian ou Ubuntu, dans un répertoire vide de préférence.

Etape 1, Sur l’ancien serveur
USER="--defaults-extra-file=/etc/mysql/debian.cnf"

Nous utiliserons le compte « debian-sys-maint » créé à l’installation par Debian / Ubuntu pour éviter de passer un login/pass en paramètre.

for BASE in $(mysql ${USER} -Bse 'show databases') ; do
    echo "sauvegarde de ${BASE}"
    mysqldump ${USER} -f ${BASE} --routines --triggers > ${BASE}.sql
done

On itère sur toutes les bases pour les dumper.
Des erreurs pourrons éventuellement être affichés pendant le dump des bases « information_schema » et « mysql », ce n’est pas grave, nous n’en avons pas besoins sous cette forme.
Nous allons d’ailleurs supprimer les dumps de ces bases:

rm information_schema.sql mysql.sql

Nous allons maintenant dumper les comptes mysql & droits :

mysqldump ${USER} --no-create-info --complete-insert --replace mysql user > mysql_user.sql
mysqldump ${USER} --no-create-info --complete-insert --replace mysql db > mysql_db.sql

Pour ce dump, on crée un fichier non intrusif, qui ne supprime pas les tables existantes au préalable et qui utilise une syntaxe sql « complète », permettant d’éviter le piège de la table user, dont l’ordre & les colonnes diffèrent souvent d’une version à l’autre.

Etape 2, Transfert des fichiers & installation Mysql sur le nouveau serveur

Tout les dumps ont été générés dans le répertoire courant sur l’ancien serveur.
Utilisez votre mode de transfert favori (scp, ftp, nfs ou autre) pour les déplacer vers le nouveau.

Lancez l’installation de Mysql sur le nouveau serveur, et procédez à la config et/ou tunning selon votre besoin.

Etape 3, Sur le nouveau serveur

Allez dans le répertoire où vous avez rapatrié les fichiers.

USER="--defaults-extra-file=/etc/mysql/debian.cnf"

Même technique que précédent pour se connecter.

for FIC in *.sql ; do
    BASE=`echo ${FIC} | sed -e "s/\.sql//g"`
    echo "import de ${BASE}"
    mysql ${USER} -Bse "CREATE DATABASE \`${BASE}\`"
    mysql ${USER} -f ${BASE} < ${FIC}
done

On itère sur tout les fichier pour créer les bases et les importer.

mysql -f ${USER} mysql < mysql_user.sql
mysql -f ${USER} mysql < mysql_db.sql

On importe des comptes utilisateurs, ainsi que les droits.

!Attention! Suite à cette import, le mot de passe du compte root du nouveau serveur est maintenant celui de l’ancien serveur.

Installer Netbeans x86 sur une Ubuntu x64

Depuis la version 8.1, NetBeans embarque son propre environnement Java, indépendant du système. Il est donc beaucoup plus aisé d’avoir un NetBeans utilisant un interpréteur Java en x86, qui à l’avantage d’être bien consommateur en Mémoire.

Pour cela, nous allons installer NetBeans avec l’installeur standard, et non les paquets fournis par Ubuntu.

Installation préalable des librairies requises pour une éxecutions x86 sur Ubuntu x64 :
sudo apt-get install libxtst6:i386 libxrender1:i386 libxi6:i386

Une fois les librairies installées, il ne vous reste plus qu’à télécharger NetBeans en x86 :
https://netbeans.org/downloads/start.html?platform=linux&lang=fr&option=php&bits=x86

puis à lancer l’installation (assistant graphique « next next next finish« ).

chmod 755 netbeans-8.1-php-linux-x86.sh
sudo ./netbeans-8.1-php-linux-x86.sh

Voilà, NetBeans est disponible dans le lanceur Unity, et sera (relativement) moins gourmant en RAM !

Chroot Linux « complet » depuis LiveCD / LiveUSB

Préparatifs

Ouvrir un terminal en root sur le liveCD.

Astuce LiveCD Ubuntu
sudo bash

Déterminez la partition root de votre système
blkid

/dev/sda1: UUID="0A2B3C4D5E6F7A8B" TYPE="ntfs"
(...)
/dev/sda4: UUID="a0b1c2d3-e4f5-a6b7-c8d9-e0f1a2b3c4d5" TYPE="ext4"

Monter l’environnement chroot

mkdir linux
mount /dev/sdXY linux/
mount --bind /dev linux/dev/
mount --bind /dev/pts linux/dev/pts
mount --bind /run linux/run/
mount -t proc /proc linux/proc/
mount -t sysfs /sys linux/sys/
chroot linux /bin/bash

Utiliser l’environnement chroot

Exemple / cas classique : restaurer GRUB
update-grub
grub-install /dev/sdX

Quitter l’environnement chroot

exit
umount linux/dev/pts
umount linux/dev
umount linux/run
umount linux/proc
umount linux/sys
umount linux

Mémo Git

Créer une clef SSH

Dans un terminal Linux ou Mac OS X ou « Git Bash » / « Bash pour windows » / Cygwin / Babun sous Windows
ls -lha ~/.ssh/id_rsa.pub
Si le fichier n’existe pas :
ssh-keygen -t rsa -b 4096
Laisser les options par défaut pour le fichier.
La passphare est optionnelle : si vous en mettrez une, elle vous sera demandé à chaque push ou pull.

Afficher la clef :
cat ~/.ssh/id_rsa.pub

Facultatif si vous avez nommé la clé autrement que id_rsa
vim ~/.ssh/config
Ajoutez le contenu suivant :
Host [addresse du serveur git]
HostName [addresse du serveur git]
User git
IdentityFile ~/.ssh/[Nom de clef saisie prédéement]

Configuration intiale client Git

Toujours dans le même terminal
git config --global user.name "Prénom Nom"
git config --global user.email votre@email.fr
git config --global push.default simple

Cloner un repo Git dans un répertoire contenant déjà des fichiers

git init
git remote add origin [adresse du repo]
git fetch
git checkout -t origin/master --force

Forcer la copie locale à revenir au niveau du repo

équivalent « svn revert »

Pour toute la copie locale :
git reset --hard origin/master

Pour un fichier spécifique :
git checkout -- [monfichier]

VPN Site à Site Cisco – Linux

La gestion d’IPSEC par le noyau de linux, permet encore une fois de plus d’inclure linux comme solution viable dans le monde des réseaux, en tant que routeur IPSEC. Gràce à l’utilisationde linux, on peut faire grandement baisser les coûts en utilisan, par exemple, des serveurs dédiés à bas prix sous linux, pour en faire un point centralisant les connexions vpn.
Lire la suite »

VPN Site à Site Cisco – Cisco

Avec la généralisation du dégroupage et de l’Adsl 2+, il est possibles d’accéder à très bas coût à des connexions internet proposant des débits montants relativement honnêtes (1mb/s). Grâce à ces débits il devient tout a fait envisageable à de petites PME/PMI possédant plusieurs sites, d’inter connecter les réseaux via un VPN. Cette solution est d’ailleurs de plus en plus plébiscité par les entreprises, principalement grâce à son coût très faibles, et les débits « élevés », surtout vis à vis des solutions vieillissantes tels que RNIS(Numéris).
Lire la suite »

Double Connexion Internet sous Linux

Avec la baisse des prix des connexions haut débit, et l’arrivée massive de l’adsl dégroupé, il est aujourd’hui tout a fait imaginable d’avoir une haut disponibilité d’Internet en combinant 2 ou plusieurs connexions « grand public ».

Le but n’est pas de « booster » une connexion, mais plutôt d’assurer une redondance, vis à vis, dans le carde d’un serveur web par exemple,ou pour l’accès à Internet, lorsque cela est crucial pour l’entreprise.
Lire la suite »

Installation de Redmine

La procédure suivante à pour but l’installation de Redmine sur un nouveau système (par exemple une VM dédiée à Redmine). L’instance est accessible en HTTPS (avec utilisation d’un certificat autosigné, mais celui-ci peux être adapté au besoin). Un vhost par défaut est également créé afin de sécuriser l’installation et éviter tout duplicate content. en root […]

TV Orange en pleine fenêtre

Orange permet aux abonnés de regarder la télévision sur son ordinateur via le site http://chaines-tv.orange.fr/. Malheureusement l’ergonomie sur site n’est pas du tout adaptée à une utilisation « multitache », comme par exemple regarder une émission tout en consultant ses emails. La faute au cadre noir, qui prends une place démesuré, qui force soit à avoir un […]

Migrer les bases de données d’un serveur Mysql

Que ce soit pour changer de version majeure de Mysql, changer de système ou de serveur physique, il y a différentes raisons de vouloir migrer un serveur Mysql. La procédure ci-dessous propose de migrer toutes les bases, utilisateurs et droits d’accès d’un serveur Mysql vers un autre. Nous nous concentrerons ici sur cette tache (et […]

, , , , ,

Installer Netbeans x86 sur une Ubuntu x64

Depuis la version 8.1, NetBeans embarque son propre environnement Java, indépendant du système. Il est donc beaucoup plus aisé d’avoir un NetBeans utilisant un interpréteur Java en x86, qui à l’avantage d’être bien consommateur en Mémoire. Pour cela, nous allons installer NetBeans avec l’installeur standard, et non les paquets fournis par Ubuntu. Installation préalable des […]

, , , , ,

Chroot Linux « complet » depuis LiveCD / LiveUSB

Préparatifs Ouvrir un terminal en root sur le liveCD. Astuce LiveCD Ubuntu sudo bash Déterminez la partition root de votre système blkid /dev/sda1: UUID= »0A2B3C4D5E6F7A8B » TYPE= »ntfs » (…) /dev/sda4: UUID= »a0b1c2d3-e4f5-a6b7-c8d9-e0f1a2b3c4d5″ TYPE= »ext4″ Monter l’environnement chroot mkdir linux mount /dev/sdXY linux/ mount –bind /dev linux/dev/ mount –bind /dev/pts linux/dev/pts mount –bind /run linux/run/ mount -t proc /proc linux/proc/ mount […]

, , , ,

Mémo Git

Créer une clef SSH Dans un terminal Linux ou Mac OS X ou « Git Bash » / « Bash pour windows » / Cygwin / Babun sous Windows ls -lha ~/.ssh/id_rsa.pub Si le fichier n’existe pas : ssh-keygen -t rsa -b 4096 Laisser les options par défaut pour le fichier. La passphare est optionnelle : si vous en […]

,

VPN Site à Site Cisco – Linux

La gestion d’IPSEC par le noyau de linux, permet encore une fois de plus d’inclure linux comme solution viable dans le monde des réseaux, en tant que routeur IPSEC. Gràce à l’utilisationde linux, on peut faire grandement baisser les coûts en utilisan, par exemple, des serveurs dédiés à bas prix sous linux, pour en faire […]

, , ,

VPN Site à Site Cisco – Cisco

Avec la généralisation du dégroupage et de l’Adsl 2+, il est possibles d’accéder à très bas coût à des connexions internet proposant des débits montants relativement honnêtes (1mb/s). Grâce à ces débits il devient tout a fait envisageable à de petites PME/PMI possédant plusieurs sites, d’inter connecter les réseaux via un VPN. Cette solution est […]

Double Connexion Internet sous Linux

Avec la baisse des prix des connexions haut débit, et l’arrivée massive de l’adsl dégroupé, il est aujourd’hui tout a fait imaginable d’avoir une haut disponibilité d’Internet en combinant 2 ou plusieurs connexions « grand public ». Le but n’est pas de « booster » une connexion, mais plutôt d’assurer une redondance, vis à vis, dans le carde d’un […]