DÉPLOIEMENT DE NIVEAU AVEC GIT, DRUSH ET FABRIC



Documents pareils
Gérer ses environnements de développement avec Vagrant RMLL 2012

Automatisation de l administration système

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

WDpStats Procédure d installation

Open Source Job Scheduler. Installation(s)

CASE-LINUX MAIL - ROUNDCUBE

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

Puppet - l infrastructure automatisée

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Déployer une application Web avec WebMatrix et Ma Plateforme Web

Gestion de configuration

WPKG Gestion de paquets pour Windows

Mise en œuvre de Rembo Toolkit

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

VAGRANT POUR LES DÉVELOPPEURS

Installation de Zabbix

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

Guide Installation Serveur Extensive Testing

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Profils d installation sous Drupal 7

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

WGW PBX. Guide de démarrage rapide

Synchronisation Mysql (Replication)

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

MYSQLDUMP & ZRM COMMUNITY

Guide Installation Serveur Extensive Testing

Etudiant Ella Fitzgerald

Tutoriel compte-rendu Mission 1

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Il est courant de souhaiter conserver à

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Documentation d'installation Plateforme femme actuelle

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

Installation d'un serveur FTP géré par une base de données MySQL

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

INTRODUCTION AUX SGBD/R LUW

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Imprimantes et partage réseau sous Samba avec authentification Active Directory

I. MySQL : Serveur et SGBD

BOUCHARD Nicolas. GENTILE Pierre

Documentation FOG. Déploiement d images de systèmes d exploitation à travers le réseau.

Open Source Job Scheduler

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Bon ben voilà c est fait!

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

Raspberry pi : Développer une petite application web sur Raspberry

REX gros projets Drupal. Drupal Camp Toulouse Novembre - +qdelance

GESTION D INFRASTRUCTURE AVEC PUPPET

Le Client/Serveur avec Enterprise Miner version 4

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Sauvegardes par Internet avec Rsync

Industrialiser la gestion des fichiers multimédia. Aurélien Navarre

BTS SIO Dossier BTS. PURCHLA Romain

Architecture de la plateforme SBC

sshgate Patrick Guiran Chef de projet support

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Les différentes méthodes pour se connecter

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

Gestionnaire de réseaux Linux et Windows

GOUTEYRON ALEXIS. SIO2 N candidat: UEpreuve E4. USituation professionnelle 2. serveurs de fichiers. Uen haute disponibilité

UwAmp. Serveur d'evaluation

La double authentification dans SharePoint 2007

Apprendre à gérer son serveur web grâce à Windows Server 2008 R2

Installation et Mise en œuvre de MySQL

EJBCA PKI Open Source

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Projet Administration Réseaux


PPE GESTION PARC INFORMATIQUE

Présentation. La société VFCS, offre un éventail très large de services couvrant vos besoins liés aux technologies actuelles de l'informatique.

MANUEL D INSTALLATION D UN PROXY

Automatisation de l administration système avec

Installer un serveur web de développement avec VirtualBox

Un serveur web léger et ouvert

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Genèse de l'installation Alban Peignier

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Sophos Endpoint Security and Control Guide de configuration pour réseaux étendus. Enterprise Console, version 3.1 EM Library, version 1.

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Guide d installation de Gael

Chapitre 1 Windows Server

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

PRODUCTION ASSOCIEE. Le réseau de la M2L est organisé VLANs et comporte des commutateurs de niveau 2 et des routeurs.

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

Transcription:

DÉPLOIEMENT Pierre Paul Lefebvre Pierre Buyle DE NIVEAU ENTREPRISE AVEC GIT, DRUSH ET FABRIC INTRO https://github.com/pierrepaul/drush git fabric dcmtl2012

https://github.com/pierrepaul/drush git fabric dcmtl2012 BUT ULTIME LE PROCESSUS DOIT ÊTRE AUTOMATISÉ? L'être humain est lent pas très fiable approximatifs doté de peu de mémoire Les ordinateurs sont rapides fiables precises dotés d'une excellente mémoire

NOS OUTILS Drush Git Fabric DRUSH

FONCTIONS DE DRUSH Télécharger des modules Activer/Désactiver des modules Déinstaller des modules Rouler les tests* Vider les cache Cron Gérer les utilisateurs Récupérer et changer les valeurs des variables de configuration... DRUSH EST EXENTENSIBLE Plus de 100 modules qui s'intêgrent avec Drush

Implementations de hooks pour définir ses propres commandes FONCTIONS DE DRUSH POURQUOI DRUSH EST IL IMPORTANT? Rapide Simple

Simple Complet Scriptable Automatisable COMMENT INSTALLER DRUSH PEAR pear channel discover pear.drush.org pear install drush/drush WINDOWS INSTALLER http://www.drush.org/drush_windows_installer GESTIONNAIRE DE PACKAGES sudo aptitude install drush COMMENT INSTALLER DRUSH (PEAR) Pear est la solution la plus simple pour avoir rapidement accès à la dernière version. Mais Pear est brisé sur MacOSX Mountain Lion sudo cp /private/etc/php.ini.default /private/etc/php.ini sudo php /usr/lib/php/install pear nozlib.phar

sudo php /usr/lib/php/install pear nozlib.phar pear config set php_ini /private/etc/php.ini pecl config set php_ini /private/etc/php.ini sudo pear upgrade all USAGE drush root=/path/to/drupal uri=dev.mydrupalsite.com status Drupal version : 7.15 Site URI : http://dev.mydrupalsite.com/ Database driver : mysql Database hostname : localhost Database username : drupal Database name : drupal Default theme : garland Administration theme : seven PHP configuration : /etc/php cli.ini Drush version : 5.7 Drush configuration : /home/fry/.drush/drushrc.php Drush alias files : /home/fry/.drush/aliases.drush.rc Drupal root : /path/to/drupal Site path : sites/default File directory path : sites/default/files CONFIGURATION DE DRUSH DRUSHRC.PHP ALIASES.DRUSHRC.PHP

$aliases['dev'] = array( 'root' => '/path/to/drupal', 'uri' => 'dev.mydrupalsite.com', ); $aliases['live'] = array( 'root' => '/other/path/to/drupal', 'uri' => 'mydrupalsite.com', 'remote host' => 'myprodserver.myisp.com', 'remote user' => 'publisher', ); drush @dev status FONCTIONS IMPORTANTES drush @dev sql dump > backup.sql drush sql sync @prod @dev drush rsync @dev @stage drush rsync./ @stage:%files/img drush @dev clear cache all drush @dev updatedb drush make mydrupalsite.make GIT

GIT Git est un logiciel de gestion de versions décentralisé. Permet de maintenir l'historique du versions de code. Support de nombreux workflow d'édition et de partage de code. Utilisé sur Drupal.org, requis pour contribué http://git scm.com/ http://try.github.com/ http://drupal.org/documentation/git BRANCHES

DEPLOYER LE CODE AVEC GIT Le déploiement se fait par mise à jour d'une dépot Git local au serveur sur lequel on déploie. PULL Récupérer les derniers changements dans un dépôt de code central depuis le serveur sur lequel on déploie. PUSH Envoyer les derniers changements dans un dépot local vers le serveur sur lequel on déploie. GITOLITE/GITOSIS

Permet de facilement gérer un serveur de dépôts de code centralisés avec un contrôle d'accès par utilisateurs et groupes d'utilisateurs. Gitosis est mort, longue vie à Gitosis! Dernier commit est en 2009. Gitolite est complet et fonctionne bien. FABRIC Librairie Python permettant d'automatiser des tâches sur un ou des serveurs distants. from fabric.api import run def host_type() run('uname s') $ fab H localhost,linuxbox host_type [localhost] run: uname s [localhost] out: Darwin [linuxbox] run: uname s [linuxbox] out: Linux Done. Disconnecting from localhost... done. Disconnecting from linuxbox... done. EXEMPLE FABRIC

Exemple de script pour pousser la DB sur un serveur distant from fabric.api import * env.use_ssh_config = True @task(default=true) def pushdb(env='local'): local('drush @via sql dump result file=/tmp/viadump.sql') db_connect = local('drush sql connect uri=http://supersite.' + env + '.drupalcampmontreal.org', True) local(db_connect + ' < /tmp/via dump.sql') CONFIG SSH Les dernieres versions peuvent lire dans la config SSH du client initiant les commandes. Host supersite.stage HostName 10.111.222.333 User deployuser Avec ce snippet dans votre configuration, vous pouvez vous connecter avec ssh supersite.stagesans spécifier le port, le user ou le mot de passe (si la clef SSH est authoriser). AUTRES OUTILS À CONSIDÉRER C'est une belle technique qui reste quand même simple et flexible, mais difficile à maintenir quand le nombre de serveurs dépassent une trentaine.

JENKINS Pour ceux qui veulent se rendre au prochain niveau, Jenkins est là. Jenkins vous permet de rouler les tests et peut être inséré dans le processus avant de faire un déploiement. C'est long rouler les tests. Il peut aussi être utiliser pour vérifier que les Coding Standards ont bien été suivis entre chacune des versions du site web. ANSIBLE CHEF ANSIBLE Belle solution python, probablement la plus simple. http://ansible.cc/ Le nouveau site web est beaucoup plus accessible et convivial. CHEF Belle solution ruby un peu plus complexe. Stable avec beaucoup de développement. http://wiki.opscode.com/display/chef/home Beaucoup de "cookbooks" sont développés par la communauté http://community.opscode.com/cookbooks Beaucoup d'autres solutions existent (cdist, puppet, bcfg2, etc) avec des niveaux de complexité variés.

complexité variés. http://en.wikipedia.org/wiki/comparison_of_open_source_configuration_management_software VAGRANT Vagrant permet de créer des environnements virtualisés pour reproduire les serveurs de productions, mais avec le développeur en tête. Le développeur peut lancer Vagrant pour avoir un environnement de développement identique à celui de la production. Plus jamais vous allez entendre "Mais ça marche sur ma machine!" QUESTIONS?