Installer BOA (Barracuda – Octopus – Aegir) sur un serveur OVH

Posted March 5th, 2013 in blog @fr

Quand vous avez réalisé quelques dizaines de sites sous Drupal pour divers clients / amis etc se pose souvent la question de la maintenance des sites et du serveur. BOA permet, très simplement, d’installer un serveur complet, sécurisé et optimisé pour les performances (Barracuda) contenant tous les outils dont vous avez besoin pour héberger sites et distributions Drupal (Octopus) et gérer les migrations et versions via une interface (Aegir).
L’installation et la mise à jour complète du système se fait en 1 ligne de commande…

Voyons comment ça se passe.

1. Choix du serveur

j’ai opté pour un serveur kimsufi (KS R-8G) qui me semble offrir un bon compromis puissance / espace / prix (mais n’importe quel autre serveur dédiés kimsufi ou ovh fera l’affaire ici…). Optez pour n’importe quelle configuration car la première tache sera de réinstaller le serveur…

2. Partitionnement

par défaut, sur le tera de disque dur du serveur, la plus grosse partition est sur /home.  Répertoire qui n’est quasi pas utilisé donc la première étape sera de repartitionner son serveur. Utiliser le tuto très bien fait qui va suivre en remplaçant la partition /var par /data car c’est là que BOA va installer sites et distributions. Partitionner son serveur OVH (de plus c’est debian 6 qui est recommandé par BOA…)

3. Configuration

notre serveur est donc correctement réinstallé, on va le préparer pour pouvoir installer BOA. La seule chose à faire est de modifier le hostname du serveur car l’installeur est sensible à la configuration DNS.

si notre serveur s’appelle ks123456.kimsufi.com on va le changer en master.ks123456.kimsufi.com

vi /etc/hosts

la ligne 99.999.99.99 ks123456.kimsufi.com

devient

99.999.99.99 master.ks123456.kimsufi.com ks123456.kimsufi.com master

ensuite

echo master.ks123456.kimsufi.com > /etc/hostname
service hostname.sh start

et on vérifie que les commandes

hostname
 hostname -f

retourne bien master.ks123456.kimsufi.com

4. installation de boa

wget -q -U iCab http://files.aegir.cc/BOA.sh.txt
bash BOA.sh.txt

on ajoute les lignes

_MY_OWNIP="99.999.99.99"
 _MY_HOSTN="ks123456.kimsufi.com"
 _MY_FRONT="master.ks123456.kimsufi.com"

au début du fichier BOA.sh.txt

boa in-stable public master.ks123456.kimsufi.com mon@adresse.mail o1

l’installation dure un certain temps (d’abord boa – le système puis octopus – les plateformes  qu’il faudra choisir d’installer une à une) et à la fin vous recevrez plusieurs mails à l’adresse que vous avez passée en paramètre vous expliquant comment administrer tout cela.

note : pour être certain d’accéder à master.ks123456.kimsufi.com, rajouter le dans le fichier hosts en local

note 1 : si l’installation échoue on peut aller modifier la configuration de base dans le fichier .barracuda.cnf

note 2: BOA peut gérer pour vous webmin, apache solr entre autre. Quand l’installation est terminée, ajouter la ligne
_XTRAS_LIST=”WMN SLR”
dans .barracuda.cnf
et lancer un update du système

barracuda up-stable

plus d’info sur le groupe drupal boa section Add any package like Collectd, chive at a later moment

Easily select nodes with EntityFieldQuery

Posted October 5th, 2011 in Uncategorized

Remember the old times in Drupal 6 when you needed to do complicated join to select nodes.

Now it’s (quite…) easy with EntityFieldQuery. But this is not much documented so I will provide some examples.

1. select the 50 latest news (that are node referenced)


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

then you can retrieve formatted result by using


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)


2. select all documents with title beginning with Management report belonging to ‘int’ and ‘both’


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)


3. check if 2 conditions are met (AND)


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)


4. 2 conditions with OR

or seems not to be supported :(

5. select users


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

then select them with


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)


6. select terms (‘projects’ vocabulary for current user)


GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

you can select files as well…


7. select when a field is not set (when the field is null: the corresponding entry in the field table doesn’t exist)

doesn’t work, you have to use the sql query :(


more technical info on Drupal API. some examples on the Drupal site

Hide input format and filter tips

Posted April 19th, 2011 in Uncategorized

When you are using the default Seven as your admin theme, it’s not convenient to hide the input format and filter tips because your custom theme css is not loaded at this point.

The trick is to load a css in a custom module and once your module will be enabled, the css will be integrated in the seven theme.
for instance:

GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

then you can easily overwrite the css of seven and hide the input format chooser and filter tips

.filter-wrapper {display: none;}

edit: sometimes, it’s not enough to only apply custom  css formatting to your admin theme, you need custom template files. The trick is to create a simple temlate with seven as base theme.

Create a new folder “myseven” with file myseven.info inside

GeSHi Error: GeSHi could not find the language drupal (using path /var/www/clients/client0/web1/web/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

and you have a new fully functionnal theme, identical to seven but ready to be customized.

Supprimer les messages d’erreur “Notice: Undefined index” de drupal 7

Posted March 23rd, 2011 in blog @fr

Dans drupal 7,  la configuration des erreurs du php.ini est écrasée par la séquence de bootstrap. Même une modification du niveau d’error reporting dans le .htaccess ne fonctionnera pas… drupal vous force à utiliser le niveau E_ALL, qui sera le standard de php 6.

On en est pas encore là et certains modules de la communauté (et peut être votre code ?) ne définissent pas toujours les variables – c’est d’ailleurs un côté pratique de php qui n’oblige pas à déclarer une variable et permet par là un code plus condensé. Résultat, des erreurs “Notice: Undefined index” ou “Notice: Undefined variables” s’affichent dans les messages sur votre site et les logs sont saturés.

Pour en revenir à l’ancienne configuration, la solution est d’ajouter la ligne

ini_set('error_reporting', 'E_ALL ^ E_NOTICE');
dans le fichier settings.php

Configurer l’interface backend

Posted October 7th, 2010 in blog @fr

Par défaut Drupal n’offre pas une interface facile à utiliser pour un débutant comme l’est généralement votre client. Heureusement, en installant quelques modules on peut facilement arriver à une interface agréable au niveau design et totalement configurable, en ne gardant que les éléments utiles et en enlevant les autres. Moins d’options dans une interface claire signifie que votre client va s’y retrouver plus facilement et mettra à jour son site avec moins d’appréhension…

étape 1 : installer un thème d’administration spécifique

admin module
vous pouvez installer la version 6.x.1.0 .Le thème sera activé dès installation du module mais vous aurez moins de contrôle sur celui-ci (ce n’est pas réellement un nouveau thème…). De plus, il modifie les éléments du menu admin donc attention surtout si vous comptez utiliser le module admin_menu !
la vesrion 6.x.2.0 querière l’installation de 2 (vrais…) thèmes : le rubik theme et le tao, rubik étant un enfant de tao. Vous devrez activé manuaellement ces 2 thème dans admin/build/themes/select et choisir rubik comme thème d’admin dans admin/settings/admin/theme.

Vous pouvez ajouter le module admin_theme si vous voulez que le thème soit affiché sur d’autres pages que admin/*. Vous pouvez donc cocher la case “Content editing” dans admin/settings/admin/theme.
Si vous avez besoin de plus de contrôle du thème, vous pouvez en créer un nouveau qui sera lui-même enfant de rubik (ajouter la ligne base theme = “rubik” dans le fichier .info). et donc y ajouter le template.php et d’autres fichiers .tpl tout en laissant intacts les fichiers de rubik, ce qui est toujours préférable.

N’oubliez pas de donner la permission “access admin theme” au rôle de votre client.

step 2 : better formats

this module helps you to control the input formats by settings defaults (and removing the format chooser in node, blocks and comments management)
install the module go to admin/settings/filters/defaults and choose the default input formats. Then on admin/user/permissions uncheck the boxes to remove format selection, tips and links (they are checked by default…)

step 3 : Form filter

If you have granted your user the “administer nodes” permission, the node/add and node/edit forms will show revision information, authoring information and publishing options (and other options provided by additional modules). These options are not always useful so if you want to remove it you can do it by code (hook_form_alter – btw I didn’t find an easier way than hide by css with $form[‘my_element’][#prefix] = ‘<div style=”display:none”>’ and $form[‘my_element’][#suffix] = ‘</div>’).
But you can do it also with the form filter module. Enable both formfilter module and formfilter ui. As administrator, 2 links will appear on the bottom of the node/add and edit pages.
You can click on “Filter all node forms” and check the 3 boxes “Hide Revision information“, “Hide Authoring information” and “Hide Publishing options“.

you can also choose a role with “view forms without filtering” permission.

step 4 : Menu per role

This is a quick and dirty way to hide menu elements for specific role. Be aware that this only hide the menu entry! the functionality will remain accessible by the url.  So it can be a security flaw… anyway, install the extension and choose a menu entry to customize.
Useful if you want to hide some admin menu links but step 6 is a better alternative…

step 5 : create custom administration pages with views

if you want to separate some items from admin/content/node to highlight it, use a view with
– style : table (with sortable fields in the style options)
– fields node: edit and node: delete link + exposed filter(s)
– access to your specific user role.
– add page display and a menu entry

step 6 : create a specific menu for admin purposes

with a link to content/list, content/add … and all others site specific needs.
show it only for your role.
useful if you don’t want to grant the “administer nodes” permission.

Tiesse di bwes

Posted July 1st, 2010 in portfolio, typo3 @fr

Restaurant à durbuy, possibilité de réservation en ligne et calcul d’itinéraire, bilingue avec sélection automatique de la langue du visiteur.

Kings & Queens

Posted July 1st, 2010 in drupal @fr, flash @fr, portfolio

Site full flash (AS3) qui occupe toute la fenêtre du navigateur. L’administrateur du site gère les textes, sons et images dans drupal.

le xml est reconstruit à chaque ajout / modification d’élément afin d’éviter le bootstrap de drupal et augmenter ainsi les performances

Agua Music

Posted June 24th, 2010 in drupal @fr, portfolio

site en 3 langues (anglais, français, néerlandais) avec des vidéos, des sons et des événements.

possibilité de souscrire à une newsletter au format html

Veranneman

Posted June 23rd, 2010 in portfolio, typo3 @fr

site multilingue (fr/nl) avec géolocalisation des magasins et moteur de recherche du magasin le plus proche. Les revendeurs ont accès à une partie réservée pour commander du matériel et télécharger des images.

Dorifor

Posted May 22nd, 2010 in custom php / framework @fr, portfolio

site recensant toutes les formations pour adultes à Bruxelles. un espace personnel permet de suivre un domaine de formation spécifique. les partenaires peuvent mettre à jour leur propres formations. Moteur de recherche corrigeant les fautes d’orthographe et bien d’autres fonctionnalités