Proxmox – Double authentification avec OTP

0

Bonjour à tous

Depuis quelque temps j’utilise Proxmox comme solution de virtualisation que ce soit chez moi ou sur mes serveurs OVH, et depuis peu pour des clients.

Ce dernier point m’a poussé à mettre en place une double authentification via OTP (One Time Password).

Rien de plus simple vu que déjà présent en natif dans la distribution Proxmox et que la mise place ne prends que deux minutes.

Dans un premier temps se connecter en SSH sur le serveur et lancer la commande suivante pour générer une clé :

root@Proxmox:~# oathkeygen
RXRYWAHMGO64C7JZ

Une fois cette clé générée il faut se rendre dans l’interface web du serveur, dans le menu Authentification et éditer la ligne PAM pour choisir dans le menu TFA : OATH.

proxmox-otp-001Une fois cette option activée il suffit d’aller renseigner la clé générée avant en ssh dans l’utilisateur, ici root

proxmox-otp-002Il ne reste plus qu’à se déconnecté et à la prochaine connections l’OTP sera nécessaire en plus du mot de passe habituel.

proxmox-otp-003

D’un point de vue application client pour la génération de l’OTP, j’utilise pour ma part Google Authentificator sur mon téléphone portable et sur mon iMac je préfère OTP Manager.

En cas de soucis, il est toujours possible en SSH de désactiver cette fonctionnalité via en commentant une ligne dans le fichier /etc/pve/domains.cfg :

nano /etc/pve/domains.cfg
#tfa type=oath

Bonne journée

GitLab – Mon premier projet et les commandes utiles

0

Bonjour

Dans l’article précédent nous avons vu comment installer son propre serveur Git sous GitLab, maintenant déployons notre premier projet.

Ces commandes sont valide pour un OS basé sur Débian dont Ubuntu 12.04 que j’utilise.

Il faut dans un premier temps installer git avec la commande :

apt-get install git

Ensuite nous allons passer à la configuration, avec un repository nécessitant une authentification ou simplement pour bien identifier votre identité lors de commit, vous pouvez définir votre nom et email de façon permanente (peut être modifié par la suite en retapant cette commande, mais vous évite de le faire à chaque commit) :

git config --global user.name "ThorAndCo"
git config --global user.email thorandco@domaine.fr

Ensuite nous allons voir les points suivants :

Gérer ses dépots

Dans les exemples suivants, je vous propose de se baser sur les valeurs suivantes :

  • Le répertoire local du projet : /home/git/monprojet
  • Le dépot distant est sur GitLab : http://git.domaine.fr
  • Le repo distant est accessible sur : git.domaine.fr/thorandco/monprojet.git

Créer un nouveau projet vide sur un dépot git vide

cd /home/git
mkdir monprojet
cd monprojet
git init
touch README
git add README
git commit -m 'Premier Commit'
git remote add origin git.domaine.fr/thorandco/monprojet.git
git push -u origin master

 Initialiser un projet git depuis un dépôt existant

cd /home/git
mkdir monprojet
cd monprojet
git init
git remote add git.domaine.fr/thorandco/monprojet.git
git pull -u origin master

Utilisation de git durant le développement

Ajouter un fichier au prochain commit

 git add monfichier.txt

Ajouter tous les fichiers créés ou modifiés au prochain commit

git add -A

Commiter sur le dépôt git local

La commande commitera les fichiers ajoutés précédemment avec un commentaire « Ajout du fichier monfichier.txt». Si besoin, il vous sera demandé de vous authentifier par la suite.

git commit -m "Ajout du fichier monfichier.txt"

Modifier le message du dernier commit

Cette commande ne fonctionnera que si vous n’avez pas encore pushé sur le serveur distant. Elle permet de changer le message joint au dernier commit.

git commit --amend -m "Ajout du fichier monfichier.txt pour le projet"

Ou simplement la commande suivante qui vous ouvrira votre éditeur de texte préféré pour modifier le texte :

git commit --amend

Voir l’historique des commits

git log

Annuler un commit

Avant un push, pour annuler tous les commits fait depuis la dernière synchronisation git avec le dépôt distant :

git reset HEAD

et de même, mais uniquement sur un fichier :

git reset HEAD nomdufichier.txt

Récupérer un fichier dans sa dernière version commitée

git checkout -- monfichier.txt

Récupérer les sources du dépôt distants

git fetch
git pull origin master

Gérer les conflits git lors d’une synchronisation

Si une erreur survient (conflit sur dse fichiers), vous pouvez au choix :

  • Faire un checkout local (ignore vos modification locales et les remplace par la source distante)
  • Stocker la version dans un autre répertoire (stash) pour la retravailler proprement
  • Fusionner les sources (merge)

Pusher ses commit sur le dépot distant

Pour pousser sur le depot origin, dans la branch master :

git push origin master

Annuler un commit en particulier déjà pushé

Dans un premier temps, vous récupérer l’id du commit à annuler, par exemple en consultant les logs :

git log

Puis, vous annulez le commit en question :

git revert XXX

ou XXX est l’id du commit à annuler.

Puis vous pushez proprement avec

git push

Annuler les N derniers commits déjà pushés

La même méthode est employée, mais vous pouvez utiliser la commande suivante qui annulera par exemple les 3 derniers commits. Il vous restera alors à pusher proprement.

git revert HEAD~3

Les branches

Nous allons dans notre exemple vouloir créer une branche dev pour tester des modifications

Créer un branche dev

git branch dev

et pour créer une branche et switcher directement dessus :

git checkout -b dev

Lister les branches

git branch -v

Changer la branche courante

git checkout dev

Supprimer une branche

git branch -d dev

Récupérer une branche du dépôt git distant en local

git checkout -b dev origin/dev

Merger (fusionner) une branche avec une autre

Par exemple, pour fusionner la branche « dev» avec la branche « master » :

git checkout master
git merge dev

Statistiques

Connaitre le nombre de commit git par utilisateur

git shortlog -sn

 

GitLab ou comment avoir son serveur Git auto-hébergé

0

Bonjour

Ca fait un certain temps que je me dis qu’il faudrait que je fasse du versionning de mes fichiers en particulier de mes scripts et tout centraliser dans un dépôt commun.

Après avoir testé par mal de chose comme :

  • GitHub (gratuit mais uniquement pour des repositories public) et ne voulant pas payer pour ça, je l’ai éliminé de la liste.
  • Venait ensuite Bitbucket que j’avais retenu dans ma short list mais bon ça reste externalisé.

Ce week end on m’a parlé de GitLab et j’ai donc été « forcé » de tester, et j’avoue que je l’ai adopté.

Avoir son propre serveur Git auto-hébergé ça n’a pas de prix.

Dans un premier nous allons voir l’installation qui est des plus simple, il suffit de vous rendre sur la page dédié à votre version d’OS pour moi Ubuntu 12.04 et de suivre les quelques lignes ci dessous :

wget https://downloads-packages.s3.amazonaws.com/ubuntu-12.04/gitlab_7.3.2-omnibus-1_amd64.deb
apt-get install openssh-server
apt-get install postfix # Select 'Internet Site', using sendmail instead also works, exim has problems
dpkg -i gitlab_7.3.2-omnibus-1_amd64.deb

Puis une fois ces commandes passées, il faut éditer le fichier /etc/gitlab/gitlab.rb pour rajouter l’adresse externe de votre serveur Git

nano /etc/gitlab/gitlab.rb
# Change the external_url to the address your users will type in their browser
external_url 'http://git.domaine.fr

Une fois ce fichier modifié on lance la configuration de l’application avec la commande :

gitlab-ctl reconfigure

Une fois la procédure de configuration terminé vous pouvez vous connecter à l’adresse suivante http://git.domaine.fr avec le compte par défaut qui est :

Utilisateur : root

Password : 5iveL!fe

Il ne vous reste plus qu’à configurer votre GitLab et créer votre premier projet.

Plan de sauvegarde et de réplication

1

Bonjour

Cela fait un bout de temps que je voulais faire cet article pour présenter le plan de sauvegarde et de replication de mes données.

J’ai voulu attendre de stabiliser mon architecture pour pouvoir tester et valider avant de vous en faire part.

Plusieurs sauvegardes sont parallélisées sur mon infrastructure LAN & WAN :

Pour la partie LAN, nous avons les sauvegardes suivantes :

Pour la partie WAN, nous avons les sauvegardes ci dessous :

  • Pour les deux serveurs dédiés chez OVH sous Proxmox, ils sont sauvegardés toutes les nuits vers le NAS Qnap TS-439 Pro, via un VPN monté à la demande.
  • Les deux serveurs Proxmox hébergent chacun des machines virtuelles. Celles ci sont sauvegardées à tour de rôles chaque nuit via des Snapshots. Ce roulement me permet en une semaine d’avoir une sauvegarde de chaque machine virtuelle et permet l’export dans la nuit via la sauvegarde des deux serveurs physiques.
  • De plus le dernier Snapshot de chaque serveurs Proxmox sont exportés vers l’autre serveur Proxmox pour pouvoir restaurer rapidement via le réseaux rapide d’OVH des machines en cas de crash total d’un serveur physique.

De plus il y a des sauvegardes entre le LAN & WAN :

  •  Chaque nuit les données importantes sont exportés via Rsync vers deux machines virtuelles hébergées chacune sur un des deux serveurs Proxmox de chez OVH.

Le « cloud » est aussi présent dans mon architecture via Dropbox et hubiC :

  • Certaines de mes données doivent être synchronisées sur toutes mes machines donc il y a des années j’ai ouvert un compte Dropbox que j’utilise tous les jours.
  • Ces données sont sauvegardées dans un premier temps dans les sauvegardes des machines connectées à Dropbox mais aussi synchronisées toutes les 30 minutes vers hubiC de chez OVH qui sera un jour le remplacement de Dropbox. Hélas à ce jour pas de possibilité de mettre un proxy avec identification, ce qui est bloquant sur pas mal de réseaux.
  • Dropbox est aussi synchronisé sur le NAS Qnap TS-439 Pro ce qui permet aussi d’avoir les données sur un Raid 5.

Au final une dernière sauvegarde existe vers un disque USB :

  • Ce disque USB de 1,5 To est sur mon bureau relié à mon iMac. Ce disque me suit partout lors de mes grands déplacements, par exemple dans la boite à gants de la voiture pour les vacances, celui si est divisé en deux partitions.
    • Une première partition pour un TimeMachine
    • Une seconde partition contenant les sauvegardes des données brutes de l’iMac via Rsync

Je pense n’avoir rien oublié, mais on ne sait jamais, bien-sur toutes ces sauvegardes sont automatisées.

Découverte et utilisation de GoAccess

0

Bonjour à tous,

Ca faisait un petit bout de temps que je n’avais rien publié comme article, le temps de me manque…

Je suis tombé sur une petite application hier, et fallait absolument que vous en parle : GoAccess Visual Web Log Analyzer

Rien de plus qu’un utilitaire d’analyse de log en temps réel pour serveurs web, mais avec une simplicité d’utilisation très appréciable.

GoAccess utilise les fichiers de logs de Nginx & Apache pour collecter les données. GoAccess affiche les statistiques dans la console. Les rapports générés comprennent:

  • Statistiques générales, bande-passante,…
  • Top Visiteurs
  • Fichiers demandés
  • Fichiers demandés statiques
  • Referrers URLs
  • 404 Not Found
  • Operating Systems
  • Browsers et Spiders
  • Hosts, Reverse DNS, IP
  • HTTP Status Codes
  • Sites Référant
  • Mots clés

Installation

Pour l’installer sur Ubuntu ou Debian, rien de plus simple, il suffit exécutez la commande

apt-get install goaccess

Ou alors à partir des sources :

wget http://downloads.sourceforge.net/project/goaccess/0.7.1/goaccess-0.7.1.tar.gz 
tar -xzvf goaccess-0.7.1.tar.gz 
cd goaccess-0.7.1/ 
./configure --enable-geoip --enable-utf8
make
make install

Et sinon la page d’instruction est très bien détaillée

Utilisation

Pour utiliser GoAccess, utilisez cette commande qui indique au passage le chemin du fichier de log du serveur :

goaccess -f /var/log/apache2/access_log
goaccess -f /var/log/nginx/access_log

goaccess,png

Pensez ensuite à utiliser les flèches de direction de votre clavier de haut en bas, pour visualiser l’ensemble des statistiques.

L’option -e permet d’exclure des IP de l’analyse.

D’autres options sont disponibles (consommation bande passante, User Agent…).
Pour plus d’infos :

man goaccess

Bonne lecture à tous et à très vite

Nespresso Christmas Tree

0

Special recipe for Christmas :

Ingredients :

240 Nespresso tubes
1 curtain rod
Few planks
Some scotch
1 computer
1 Rapsberry Pi
1 fairy lights

Directions :

– Put few geeks in a room
– Leave a paperboard and some pens
– Dispose carefully each ingredient on a table
– Give the computer and the Rapsberry to the one who seems to be the most clever

Let them together for few hours and the result of this recipe will be very amazing!!

We try it and here is what we discovered…..

A totally original Christmas Tree made with 240 Nespresso tubes with a fairy lights managed through voice command!!

Thanks to:
Nespresso : http://www.nespresso.com/
Raspberry PI : http://www.raspberrypi.org/
S.A.R.A.H. : http://encausse.wordpress.com/s-a-r-a-h/
DX : http://www.dx.com/
BricoDepot : http://www.bricodepot.com/

Let’s see the video demonstration and like the Facebook Page : https://www.facebook.com/sapinoo

Thanks…

Proxmox – Nouveau cluster en commande

0

Bonjour à tous

Ca fait un moment que mon cluster Proxmox est basé sur deux machines récupérées mais qui commencent à vieillir (plus de 5 ans).

Une offre intéressante sur Amazon, pour un serveur HP – 704941-421 – Proliant Micro serveur – G7 N54L NHP 250 Go , m’a attiré l’œil…

Bon au final, achat de deux serveurs avec un supplémentent de 4Go de ram pour chacun pour avoir deux nodes de mon cluster avec chacun 6Go de ram.

Ca va faire du bien à pas mal de niveau :

  • Consommation énergétique moins importante (divisé au moins par deux)
  • Matériel neuf et sous garantie
  • Plus de ram en passant de 2.5 Go et 3 Go à deux fois 6 Go
  • Gain de place
  • Évolutivité au niveau de baies disques durs

Enfin voila reste plus qu’à recréer un cluster, et récupérer les sauvegardes des machines virtuelles et une petite restauration dans la foulée.

Proxmox – Ajout de la fonction support – Erreurs dans les update

0

Bonjour à tous

Ce post express juste pour vous informer que Proxmox à rajouter une fonction de support payante (optionnelle) et a pousser de nouveau repository, qui posent problème lorsque l’on a pas souscrit à un support.

root@Proxmox-1:~# apt-get update
Hit http://ftp.fr.debian.org wheezy Release.gpg
Hit http://download.proxmox.com wheezy Release.gpg
Hit http://security.debian.org wheezy/updates Release.gpg
Hit http://download.proxmox.com wheezy Release
Hit http://security.debian.org wheezy/updates Release
Hit http://ftp.fr.debian.org wheezy Release
Hit http://download.proxmox.com wheezy/pve amd64 Packages
Hit http://security.debian.org wheezy/updates/main amd64 Packages
Hit http://security.debian.org wheezy/updates/contrib amd64 Packages
Hit http://ftp.fr.debian.org wheezy/main amd64 Packages
Hit http://security.debian.org wheezy/updates/contrib Translation-en
Hit http://security.debian.org wheezy/updates/main Translation-en
Hit http://ftp.fr.debian.org wheezy/contrib amd64 Packages
Hit http://ftp.fr.debian.org wheezy/contrib Translation-en
Ign https://enterprise.proxmox.com wheezy Release.gpg
Hit http://ftp.fr.debian.org wheezy/main Translation-en
Ign http://download.proxmox.com wheezy/pve Translation-en_US
Ign http://download.proxmox.com wheezy/pve Translation-en
Ign https://enterprise.proxmox.com wheezy Release
Err https://enterprise.proxmox.com wheezy/pve-enterprise amd64 Packages
The requested URL returned error: 401
Ign https://enterprise.proxmox.com wheezy/pve-enterprise Translation-en_US
Ign https://enterprise.proxmox.com wheezy/pve-enterprise Translation-en
W: Failed to fetch https://enterprise.proxmox.com/debian/dists/wheezy/pve-enterprise/binary-amd64/Packages  The requested URL returned error: 401
E: Some index files failed to download. They have been ignored, or old ones used instead.

Pour parer ce problème il suffit de désactiver les sources dédiées en ajoutant un # dans le fichier :

nano /etc/apt/sources.list.d/pve-enterprise.list
 
#deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

Ce petit changement vous rends votre serveur opérationnel comme avant.

root@Proxmox-1:~# apt-get update
Hit http://ftp.fr.debian.org wheezy Release.gpg
Hit http://security.debian.org wheezy/updates Release.gpg     
Hit http://ftp.fr.debian.org wheezy Release                                              
Hit http://security.debian.org wheezy/updates Release                                    
Hit http://security.debian.org wheezy/updates/main amd64 Packages                                              
Hit http://ftp.fr.debian.org wheezy/main amd64 Packages                                  
Hit http://security.debian.org wheezy/updates/contrib amd64 Packages            
Hit http://ftp.fr.debian.org wheezy/contrib amd64 Packages                      
Hit http://download.proxmox.com wheezy Release.gpg
Hit http://security.debian.org wheezy/updates/contrib Translation-en      
Hit http://download.proxmox.com wheezy Release                            
Hit http://security.debian.org wheezy/updates/main Translation-en         
Hit http://ftp.fr.debian.org wheezy/contrib Translation-en
Hit http://download.proxmox.com wheezy/pve amd64 Packages
Hit http://ftp.fr.debian.org wheezy/main Translation-en
Ign http://download.proxmox.com wheezy/pve Translation-en_US
Ign http://download.proxmox.com wheezy/pve Translation-en
Reading package lists... Done

De plus pour éviter le message au login sur l’interface web, il suffit d’éditer le fichier

nano/usr/share/pve-manager/ext4/pvemanagerlib.js

et de commenter les lignes suivantes

//              if (data.status == 'Active') {
//                  Ext.Msg.show({
//                      title: gettext('No valid subscription'),
//                      icon: Ext.Msg.WARNING,
//                      msg: PVE.Utils.noSubKeyHtml,
//                      buttons: Ext.Msg.OK,
//                      callback: function(btn) {
//                          if (btn !== 'ok') {
//                              return;
//                          }
//                          orig_cmd();
//                      }
//                  });
//              } else {
//                  orig_cmd();
//              }

Sans oublier de relancer le pvedaemon avec la commande :

/etc/init.d/pvedaemon restart

Bonne journée à tous

Mise à jour OpenMediaVault en 0.5

4

Bonjour

Suite à la sortie de la version 0.5 d’OpenMediaVault, je viens de mettre à jour mon serveur.

Voici la procédure :

apt-get update
apt-get upgrade
omv-release-upgrade

Jusque la rien de spécial, mais en me rendant sur la page d’administration j’ai eu le message erreur suivant :

 Error #0:
exception ‘Exception’ with message ‘Failed to open file js/omv/NavigationPanel.js.’ in /usr/share/php/openmediavault/htmlpage.inc:42
Stack trace:
#0 /usr/share/php/openmediavault/htmlpage.inc(49): OMVHtmlPage->scanFiles(‘js/omv/Navigati…’, Array)
#1 /usr/share/php/openmediavault/htmlpage.inc(70): OMVHtmlPage->scanFiles(‘js/omv/module/a…’, Array)
#2 /usr/share/php/openmediavault/htmlpage.inc(186): OMVHtmlPage->scanDir(‘js/omv/module/a…’, Array, true)
#3 /usr/share/php/openmediavault/htmlpage.inc(112): OMVWebGui->getJavascriptIncludes()
#4 /var/www/openmediavault/index.php(37): OMVHtmlPage->render()
#5 {main}

Après un peu de recherche, j’ai trouvé cette page avec un petit script qui résout le problème :

wget http://filebin.ca/skiDELUVNpl -O omv-0.5-upgrade-cleaning_v0.7.6.sh
chmod +x omv-0.5-upgrade-cleaning_v0.7.6.sh
./omv-0.5-upgrade-cleaning_v0.7.6.sh

Opération réalisé par ce script :

1. Remove all external plugins. (purgin website and omv-plugins.org)
2. Rename *.js-files in $OMV_DOCUMENTROOT_DIR/js/omv/module/ and admin/
3. Move all *.deb files and local.list in /var/cache/whatever
4. Move old-omvplugins.org-lists and jhmillers.list

Et tout est rentré dans l’ordre.

Bonne journée

flashcode-thorandco.fr

Demain la reprise du boulot – Bilan des vacances

0

Bonjour à tous…

Demain c’est reprise du boulot, faisons un rapide point sur ce que j’ai eu le temps de faire ou pas :

  • Changer de baie réseau : OK
  • Câbler et annoter tous les câbles réseaux : OK
  • Remplacer mon switch 24 ports par un 48 ports et modifier toute la supervision pour l’intégrer correctement : OK
  • Mettre en place mes sondes 1_Wire dans leur configuration cible : En cours, sisi ça avance…
  • Migrer de chez Online à OVH pour les serveurs dédiés : OK
  • Migrer le blog et la gallery photo : OK
  • Provisionner le site Infra-Expertise sur ce même nouveau serveur : OK
  • Migrer le site Infra-Expertise.com : Prévu pour septembre ou octobre… enfin quand j’aurais 5 minnutes…

Un autre projet à vu le jour, et va me prendre pas mal de temps les prochains mois, je vous en dirait plus dans un article dédié quand le projet sera un peu plus avancée.

Et sinon c’était aussi les vacances, donc sorties en famille, profiter tout simplement.

A plus…

Haut de page