Archives pour la catégorie Linux

Mettre à jour ses sites Worpdress en quelques minutes, en ligne de commande

L’utilitaire wp-cli.phar est le « drush » de Drupal : il permet de lancer tout un tas de commandes Wordress habituellement faites via l’interface Web, en ligne de commande.
C’est plus rapide et scriptable !

Personnellement, j’utilise un utilisateur Linux différent pour chacun de mes sites.
Afin de simplifier la chose, j’ai choisi une installation globale de wp. J’en dispose ainsi pour tous mes sites.
Il faut donc configurer sudo pour donner les permissions à chacun de ces utilisateurs d’exécuter WP :

  1. Installer wp en suivant la doc d’install, tout simplement. Vous devez ensuite avoir votre script dans /usr/local/bin/wp.
  2. La partie un peu pénible peut être de configurer SUDO, car c’est un peu capricieux parfois…
  3. N’oubliez pas de donner les droits d’exécution à votre script wp pour les utilisateurs qui vont l’utiliser (ou à « others », chmod  755 /usr/local/bin/wp)

Ajouter les lignes suivantes dans votre configuration SUDO, en adaptant selon vos besoins (users, etc.)

User_Alias      GROUP_WP = web_AAA, web_BBB, web_CCC

Cmnd_Alias      CMD_WP = /usr/local/bin/wp

# le groupe des users WP a le droit aux commandes CMD_WP
GROUP_WP       ALL = NOPASSWD: CMD_WP

Ca vous permet ensuite de lancer la commande « wp » comme suit, sachant que je respecte une norme commune pour tous mes sites : chaque DOCUMENT_ROOT est contenu dans le sous-répertoire « www » du HOMEDIR.

sudo -u web_AAA -i -- wp core update --path=/home/web_AAA/www

 

Vous pouvez pousser le bouchon en vous créant un bash pratique, afin de mettre à jour tous vos WordPress en masse :

#!/bin/bash
# WordPress users (name of their home directory)
users=('web_AAA' 'web_BBB' 'web_CCC')

for user in "${users[@]}"
do
  echo "Upgrading $user wordpress and its plugins"
  sudo -u $user -i -- wp core update --path=/home/$user/www
  sudo -u $user -i -- wp plugin update --all --path=/home/$user/www
  sudo -u $user -i -- wp theme update --all --path=/home/$user/www
done

Et voilà ! Enjoy 😀

Sauvegarder les configs de son serveur Linux

Comment stocker vos fichiers de configurations Linux sur un dépôt GIT ?

ATTENTION, c’est une approche simpliste : l’inconvénient majeur de cette technique est de ne pas pouvoir conserver les permissions de chaque fichier/répertoire. GIT n’est pas non plus une solution de backup hein (http://serverfault.com/questions/341199/git-as-a-backup-tool) … il y a bien des outils qui tentent de le faire, je ne les ai pas testé, l’idée est de rester simple.

Au départ, l’idée était de faire un repo GIT, mais donc le worktree serait « / ».
Le souci de cette technique est que le « git status » a tendance à planter, probablement en raison du trop grand nb de fichiers/répertoires que ça représente, voire parce qu’il y rencontre d’autres repos GIT qui le perturbent, etc.

Technique retenue :
Un bête script SH pour copier nos fichiers dans le dépôt GIT.

  1. Créer vous un compte sur https://bitbucket.org, celui-ci permettant de créer des « repositories » privés, gratuitement, contrairement à Github, qui nécessite un abonnement pour avoir des « repos » privés.
  2. Côté serveur, créer un projet GIT qui stockera votre repository GIT ainsi que d’autres fichiers si besoin, mais la plupart de vos fichiers seront en dehors de ce répertoire.
    cd /root && mkdir configs
    cd configs
    git init
    git remote add origin git@bitbucket.org:##username##/##repository-name##.git
  3. Ajouter votre script de sauvegarde backup.sh
    BACKUP_DIR=/root/config/backup
    
    # Votre liste de fichiers/répertoires à sauvegarder
    files=('/etc/automysqlbackup' '/etc/rkhunter.conf' '/etc/ntp.conf' '/etc/fail2ban' '/etc/apache2' '/etc/nginx' '/etc/network/interfaces' '/etc/proftpd' '/etc/mysql' '/etc/resolv.conf' '/home/droits.sh
    ' '/root/.bashrc' '/root/fwall-rules' '/root/.gitconfig' )
    
    echo "Purging..."
    rm -Rf $BACKUP_DIR
    mkdir $BACKUP_DIR
    
    echo "Backup"
    for i in "${files[@]}"
    do
      cp -r $i $BACKUP_DIR
    done
    
  4. Il ne reste qu’à ajouter, commiter et pusher vos éléments sur bitbucket.
    Vous pouvez même ajouter cette ligne dans votre backup.sh, avec un timestamp dans le commentaire du commit…
    Ou créer à chaque commit un tag git, pour retrouver vos versions, etc.

    git commit -a "My backup"

Terminal : ouvrez vos onglets via un script bash

Travaillant sur une application SPA , j’ai besoin de démarrer mon environnement chaque matin.

j’ai donc besoin de 3 onglets :

  1. application serveur Node.js (node start)
  2. application cliente (gulp)
  3. Shell MongoDB

Voici donc un script permettant d’ouvrir 3 onglets de terminal et de lancer les commandes respectives dans chaque onglet :

Continuer la lecture de Terminal : ouvrez vos onglets via un script bash 

La petite pause technique s’offre un hébergement dédié !

Eh oui, ras le bol de l’hébergement mutualisé chez online.net, c’est une misère de performance, et en plus, pour un bidouilleur qui aime toucher à tout, l’hébergement dédié et idéal !J’ai donc franchi le pas, d’autant que j’en utilise déjà au boulot…

Ce blog devrait donc être désormais beaucoup plus rapide qu’avant, sans page 404 ou 500 aléatoires, un wordpress qui se met à jour très simplement, et ce n’est qu’un tout petit aperçu des possibilités qu’offre du dédié.

A votre bon plaisir !

 

Installer Capistrano 2.x sur Ubuntu Desktop 11.04

Pour installer capistrano, rien de plus simple, même si on ne connait pas Ruby.

Il suffit d’utiliser les commandes suivantes, la variable d’environnement RUBYOPT est essentielle pour qu’il retrouve bien ses dépendances à l’exécution de « cap ».

sudo apt-get install rubygems1.8
export RUBYOPT=rubygems
export CAPISTRANO_HOME=/var/lib/gems/1.8/gems/capistrano-2.8.0/
export PATH=$PATH:$CAPISTRANO_HOME/bin

 

Ensuite, il vous faut étudier le fonctionnement de Capistano, en commençant par l’article suivant :

https://github.com/capistrano/capistrano/wiki/2.x-Getting-Started

 

A suivre prochainement : un script capistrano de déploiement Drupal 7.

Redimensionner un disque virtuel : virtualbox ou autre

Il est parfois utile de redimensionner le disque dur d’un machine virtuelle. Sous VMWare, il y a un outil en ligne de commande qui peut le faire, mais dans tous les cas, il faut ensuite utiliser un outil pour redimensionner la partition, car VMWare se content de redimensionner le disque dur (le matériel autrement dit).

Pour une solution plus universelle, qui fonctionne bien, il vaut mieux utiliser GParted, qui est un gestionnaire de partitions sous Linux. Il est très pratique car il se lance facilement depuis un liveCD : celui d’ubuntu, je ne sais plus s’il l’a par défaut, mais sinon, le site de GParted propose un liveCD très petit (160Mo) : http://sourceforge.net/projects/gparted/files/gparted-live-stable/

Ensuite, je vous conseille le blog suivant, qui ne peut être plus clair quant à la procédure à suivre : http://www.my-guides.net/en/component/jomcomment/trackback/122/com_content

C’est adapté à VirtualBox, mais peut être facilement tranposé à VMWare, pour l’avoir déjà fait dans le passé.

Note : je l’ai fait pour une VM VirtualBox Windows Server 2008 (je pense que c’est pareil pour Win7). Il faut faire attention par rapport au blog ci-dessus, car windows2008 crée 2 partitions, une « boot » et une normale pour le reste. Du coup, il faut copier/coller les 2 et rendre « bootable » la partition « boot » et non pas l’autre.

Partage WebDAV sous linux

Ma société utilisant un bureau à distance pour tout ce qui est bureautique, c’est bien utile de pouvoir envoyer des fichiers de son PC local vers le serveur de bureautique.

Et heureusement, ce serveur de bureautique fournit un partage WebDAV.

Pour s’y connecter, en principe le plus simple est de passer par Nautilus, qui normalement a WebDAV en natif, mais je n’ai pas réussi…

Continuer la lecture de Partage WebDAV sous linux 

Comment lancer un traitement unix et se déconnecter sans en provoquer l’arrêt ?

Solution 1

On peut être amené à lancer un traitement en ligne de commande sans attendre la fin du traitement pour se déconnecter.
Le problème est que la déconnexion entraine la fin du processus attaché à notre session.
Continuer la lecture de Comment lancer un traitement unix et se déconnecter sans en provoquer l’arrêt ?