Vous êtes sur la page 1sur 8

Administration Systme Automatise

Pierre Gambarotto
INPT/Enseeiht
pierre.gambarotto@enseeiht.fr
Rsum
Le nombre de serveurs qu'un mme administrateur est amen ! grer a grandement augment dans "es
derni#res annes$ notamment depuis "'arrive de nouve""es te%hno"ogies %omme "a virtua"isation et "a
gnra"isation des app"i%ations &eb. L'organisation de "'automatisation des t'%hes d'insta""ation$ de
%onfiguration et de supervision permet de rpondre au dfi qui est de grer %orre%tement %e nombre
grandissant de serveurs.
L'ob(e%tif de %et arti%"e est doub"e ) prsenter diffrentes te%hno"ogies r%entes d'administration s*st#me$
qui permettent en "es %ombinant d'arriver une automatisation %omp"#te du provisionning$ et investiguer "a
%onsquen%e sur "'organisation d'un servi%e informatique.
Mots clefs +dministration ,*st#me$ Puppet$ Provisionning
1 Automatiser l'administration systme
L'administration s*st#me a beau%oup vo"u en -. ans. Le s%hma de base reste identique )
insta""ation initia"e d'un s*st#me d'e/p"oitation 0
intgration du s*st#me dans "e par% ) %onfiguration rseau$ 1N, 2
insta""ation de "ogi%ie"s et %onfiguration 0
mise ! (our s*st#me et "ogi%ie"s au %ours de "a vie de "a ma%hine 0
3ertaines de %es tapes ont t simp"ifies par "a monte en puissan%e des distributions GN4/Linu/ qui a
apport des s*st#mes de gestions de paquetages "ogi%ie"s assurant "'insta""ation et "a mise ! (our d'un
"ogi%ie" et de ses dpendan%es 5apt/*um6.
7ais para""#"ement ! %ette simp"ifi%ation$ "e nombre de servi%es et don% de serveurs a fortement
augment. Les ar%hite%tures s*st#mes ont gnra"is "'uti"isation de "a supervision et "a sauvegarde$ qui
a""ongent d'autant "'intgration d'un nouveau s*st#me dans "e par% e/istant.
La virtua"isation permet d'e/p"oiter rationne""ement "es ressour%es matrie""es tout en "imitant "e nombre
de servi%es hbergs sur un seu" s*st#me$ mais augmente par "! mme "e nombre de s*st#mes du par%.
+u niveau gestion$ i" est frquent de d"guer "'uti"isation d'un 8, une fois insta"" et %onfigur ! une
tier%e personne$ que %e soit un poste de travai" ou un serveur. Par e/emp"e$ dans "e %as d'une app"i%ation
&eb$ "'administrateur du s*st#me insta""e "es "ogi%ie"s n%essaires 5apa%he et mod9php$ ngin//passenger$
tom%at/(ava6 et permet ensuite "'insta""ation de "'app"i%ation proprement dite ! un tiers. 3e%i a un impa%t
sur "a s%urit intrins#que de "a ma%hine ainsi gre.
L'administrateur de par% est don% au(ourd'hui en fa%e du %ha""enge suivant )
p"us de s*st#mes ! grer 0
p"us de personnes ave% qui interagir 0
:-/:./-.:: :/; <=E, -.::
%omp"e/ifi%ation de "'intgration d'un nouveau s*st#me au par% e/istant.
L'ob(e%tif d'une automatisation %omp"#te de "'administration s*st#me est de re"ever "e gant$ en proposant
"es %ara%tristiques suivantes )
insta""ation %omp"#te d'un s*st#me $ de "'8, (usqu'! "a %onfiguration en produ%tion 0
Pas de gestion dire%te d'un s*st#me iso" ) si un prob"#me survient sur un s*st#me$ i" doit tre
%orrig au niveau de tout "e par%$ "'e/emp"e t*pique tant "a fai""e de s%urit d'un serveur >TTP.
Pouvoir revenir ! un tat stab"e ! tout instant ) i" ne faut pas %raindre "a mise ! (our.
I" est p"us fa%i"e de re(ouer "e pro%essus automatis d'insta""ation que de rparer.
Les membres de votre quipe doivent pouvoir parti%iper.
2 Panorama des solutions existantes
3ette partie re%ense diffrentes so"utions d'automatisation "ies ! "'administration d'un s*st#me
d'e/p"oitation. Le but n'est pas de faire une "iste e/haustive$ mais de fournir des %rit#res permettant de
%"asser et d'va"uer %e genre de produits. Nous distinguons ? niveau/ en fon%tion du servi%e rendu.
:. Initia"isation du s*st#me
-. 3onfiguration du s*st#me
?. 1p"oiement et %onfiguration d'app"i%ation
2.1Initialisation du systme
Le but de %es so"utions est de permettre "e premier boot de "a ma%hine et "'insertion dans "e rseau. 8n
peut s%inder %es so"utions en - sous groupes$ suivant que "a ma%hine sur "aque""e "e s*st#me va tre
insta"" est re""e ou virtue""e )
7a%hine re""e ) so"utions par dp"oiement par image disque 53"one@i""a ou autre %"one du vnrab"e
Ghost6 ou par automatisation du pro%essus d'insta""ation 5<umpstart$ Ai%Bstart$ C+I$ 3ob"er6.La
%onfiguration rseau dans %e %as "! reste %"assique$ manue""e ou par 1>3P.
7a%hine virtue""e ) soit on g#re soit mme "e so%"e 58penDE$ DmFare$ GEN$ AD76 soit on fait appe" ! une
infrastru%ture dans "e nuage 5+F, d'+ma@on$ Eu%a"*ptus en openHsour%e6. La %onfiguration rseau dans
%e %as "! doit au moins en partie tre assure au niveau du so%"e.
L'arti%"e ne va pas dtai""er de so"utions te%hniques appartenant ! %e premier niveau$ "es so"utions ! base
de dp"oiement d'images et "es so"utions bases sur des s*st#mes de virtua"isations a*ant d(! t
abordes dans des ditions passes des <=E,.
3e servi%e n'est norma"ement uti"is qu'une fois par s*st#me. 3es so"utions permettent nanmoins de
fournir asse@ simp"ement "a sauvegarde du s*st#me une fois insta""$ par e/emp"e pour grer des %as de
disaster re%over*.
3e"a peut paraItre sduisant de %ontinuer %e pro%essus au %ours de "a vie du s*st#me$ mais %e"a entraIne
une drive des sauvegardes qui rduit "a ruti"isation ) si J instan%es proviennent de "a mme sour%e mais
ont vo"u indpendamment$ "es J instan%es seront ! mettre ! (our sparment.
:-/:./-.:: -/; <=E, -.::
2.2 configuration du systme
Le postu"at de base de %es so"utions est de disposer d'un %ompte administrateur sur "e s*st#me !
%onfigurer. Le but est de sp%ifier "'uti"isation des outi"s disponib"es sur "e s*st#me pour insta""er des
%omposants "ogi%ie"s ou "es mettre ! (our.
L'intrt de %es so"utions rside dans "a possibi"it de ruti"iser une mme %onfiguration sur p"usieurs
s*st#mes.
3ontrairement au premier niveau 5initia"isation du s*st#me6$ "es so"utions de %onfiguration ont vo%ation !
tre uti"ise tout au "ong de "a vie du s*st#me$ assurant non seu"ement "a %onfiguration initia"e$ mais aussi
"es mises ! (our. Le but est d'automatiser au ma/imum "es oprations une fois que "a %onfiguration du
s*st#me a t d%rite.
Par e/emp"e$ si une mise ! (our de s%urit d'un %omposant "ogi%ie" parait$ e""e doit pouvoir tre app"ique
automatiquement.
4n des intrts ma(eurs des so"utions de %e niveau est d'entraIner une %entra"isation du sto%Bage de "a
des%ription des diffrents s*st#mes d'un par%$ et ainsi de fa%i"iter un travai" de rationa"isation.
3es produits sont souvent moins %onnus que "es produits du premier niveau$ on peut %iter parmi "es p"us
uti"iss ) Puppet$ 3hef$ %fEngine$ ,martCrog
2.3dloiement et configuration d'alication
I" est thoriquement possib"e de tout faire ave% une so"ution du pr%dent niveau. 8n arrive %ependant
souvent ! %es - "imites )
on veut d"guer "'e/p"oitation de "a ma%hine ! un tiers$ sans "ui donner "es droits administrateurs.
"a sour%e du %omposant "ogi%ie" ! insta""er/%onfigurer est interne$ et "'uti"isation des outi"s fournis
par "e s*st#me n'est pas adquate.
3as t*pique ) un administrateur s*st#me K rseau d'un "aboratoire fournit ! une quipe de re%her%he un
serveur prH%onfigur$ et un %ompte uti"isateur . L'quipe de re%her%he veut dp"o*er sur %e serveur un
%omposant "ogi%ie" dve"opp en interne$ et va renouve"er p"usieurs fois %ette opration au fur et !
mesure de "'avan%ement de "eur pro(et.
La pro%%upation dans %ette optique est d'avoir un environnement %ib"e stab"e$ et de pouvoir bas%u"er des
%omposants "ogi%ie"s d'un s*st#me sour%e 5ma%hine d'un dve"oppeur$ dpLt subversion/git6 vers "e
s*st#me %ib"e$ de modifier "a %onfiguration du "ogi%ie" sur "e s*st#me %ib"e$ et optionne""ement de pouvoir
re"an%er un des programmes rsidents pour prendre en %ompte "a nouve""e version.
Le but des so"utions de %e ?
e
niveau est don% de fa%i"iter %es oprations$ voire de "es automatiser dans "e
%adre d'un pro%essus d'intgration %ontinue. I" e/iste de nombreu/ produits dans %e domaine$ du s%ript
empiriquement %onstruit et e/%ut par ssh$ en passant par des sur%ou%hes de ssh %omme 3apistrano ou
Cabri%$ (usqu'! des produits p"us vo"us %omme 7%o""e%tive.
3 Puet
Puppet est un produit opensour%e 5GPL puis +pa%he depuis "a version -.M..6 de "a so%it Puppet Labs 5e/
=edu%tive Labs6.
Puppet fournit une ar%hite%ture %"ient/serveur pour d%rire$ grer et distribuer des des%riptions de
%onfiguration. La %onfiguration de %haque %"ient est d%rite dans un "angage sp%ifique$ sto%Be sur "e
serveur$ et app"ique sur %haque %"ient ave% "es privi"#ges administrateur ! "a demande du %"ient 5pu""6.
:-/:./-.:: ?/; <=E, -.::
3.1Arc!itecture et "ision glo#ale du roduit
Puppet repose sur une ar%hite%ture %"ient/serveur. ,ur "e serveur %entra" "e dmon puppetmasterd
attend sur "e port ;:J. "es %onne/ions des %"ients sur "esque"s tourne "e dmon puppetd.
Le dia"ogue %"ient/serveur se fait par un &ebHservi%e 5proto%o"e en%apsu" dans >TTP6 et %hiffr par des
%ertifi%ats ,,L$ %haque %"ient est identifi de mani#re unique par un %ertifi%at asso%i ! son nom 1N,.
L'outi" puppetca permet de grer sur "e serveur "es %ertifi%ats %"ients.
Les %"ients se %onne%tent priodiquement 5toutes "es ?. minutes par dfaut6 au serveur$ remontent au
serveur une %o""e%tion de faits renvo*s par "a %ommande facter 5@IP$ hostname$ @7+3 26 qui
permettent au serveur d'instan%ier "a %onfiguration d%rite pour %e %"ient. La %onfiguration est ensuite
app"ique au %"ient. Le serveur puppetmasterd fait ga"ement offi%e de serveur de fi%hier %entra" pour
tous "es %"ients.
La dpendan%e prin%ipa"e de Puppet est "e "angage rub*$ au%une %ompi"ation n'est n%essaire pour
insta""er puppet "uiHmme. Le p"us simp"e reste nanmoins d'uti"iser "es paquetages disponib"es de "a
distribution GN4/Linu/ uti"ise.
3.2$angage de descrition de configuration
La %onfiguration d'un s*st#me est d%rite dans un "angage sp%ia"is. La brique de base est "a ressour%e )
%haque ressour%e dispose d'un t*pe$ et de %ertains param#tres dpendant du t*pe qui vont permettre de
ra"iser "a ressour%e.
Doi%i que"ques t*pes de ressour%e parmi "es p"us uti"es ) Exec$ qui permet d'e/%uter un s%ript$ File qui
permet de dfinir "e %ontenu d'un fi%hier$ User qui permet de dfinir un uti"isateur$ Service qui assure "e
dmarrage et "e fon%tionnement d'un servi%e$ et Package qui permet d'insta""er un paquetage "ogi%ie".
Pour instan%ier une ressour%e$ i.e sp%ifier que %ette ressour%e va devoir tre ra"ise sur "e s*st#me
%ib"e$ i" faut donner une va"eur au/ diffrents param#tres fi/s par "e t*pe de "a ressour%e$ ainsi qu'un
nom unique. Par e/emp"e pour ra"iser "e fi%hier /etc/passwd )
file { "/etc/passwd": # nom unique donn la ressource
owner => root, # paramtre owner, valeur donne : root
group => root,
mode => 644
}
Par dfaut$ %'est puppet qui d%ide de "'ordre de ra"isation des ressour%es sur un %"ient$ mais on peut
pr%iser manue""ement des dpendan%es entre "es ressour%es. En p"us des ressour%es$ Puppet fournit "es
outi"s %"assiques d'un "angage ) variab"e$ %onditionne""e$ gestion des %haInes de %ara%t#res et des
tab"eau/. Les faits %o""e%ts par facter sur "e s*st#me %"ient sont disponib"es sous forme de variab"e$ et
permettent ainsi d'adapter une re%ette. Doi%i un e/emp"e r%apitu"atif %omment asse@ %omp"et de %es
fon%tionna"its )
Nssh O Noperationgs*stem P Q R Noperatings*stem ) remont par fa%ter
5redhatSfedora6 OT 'opensshHserver'$
5debianSubuntu6 OT 'ssh'$
defau"t OT 'openssh'
U
pa%Bage Q Nssh) R Nssh est "a variab"e dfinie %iHdessus
ensure OT insta""ed$
U
:-/:./-.:: J/; <=E, -.::
fi"e Q '/et%/ssh/sshd9%onfig')
sour%e OT 'puppet)///modu"es/sshd/ sshd9%onfig'$ R on r%up#re "e %ontenu du fi%hier sur "e serveur
o&ner OT 'root'$
group OT 'root'$
mode OT 'VJ.'$
notif* OT ,ervi%eW'sshd'X$ R redmarage de sshd apr#s %hangement de %e fi%hier
require OT Pa%BageWNsshX$ R on for%e "'ordre de rso"ution$ "e paquetage avant "e fi%hier de %onfiguration
U
servi%e Q 'sshd')
ensure OT running$
enab"e OT true$ R a%tif au boot de "a ma%hine
hasstatus OT true$
hasrestart OT true$
U
Pour organiser "e %ode$ "e "angage fournit des stru%tures supp"mentaires )
node 'ma%hine.domaine.t"d' Q R restri%tion de "a ra"isation de ressour%es ! un s*st#me sp%ifique U
%"ass Nom3"asse Q R 1finit un espa%e de nommage U
in%"ude Nom3"asse R ra"isation des ressour%es dfinies dans "a %"asse
define mon9t*pe5Nvar:$ Nvar-6 Q R dfinition d'une %o""e%tion de ressour%es uti"isant var: et var- U
mon9t*pe Q nom ) R ra"isation du t*pe personna"is mon9t*pe
var: OT va"eur$
var- OT va"eur
U
La des%ription de "a %onfiguration d'un produit %omp"et se %ompose d'un ensemb"e de %"asses et de t*pes
personna"iss dfinissant une %o""e%tion de ressour%es$ et d'un ensemb"e de fi%hiers rfren%s par "es
ressour%es de t*pe File 5attribut source6 ou des temp"ates qui vont permettre de paramtrer "a
gnration de %ontenus de fi%hiers.
Puppet permet de rassemb"er %es "ments en modu"e$ %e qui permet de distribuer ou de r%uprer "es
prin%ipes d'insta""ation et de %onfiguration d'un produit %omp"et$ par e/emp"e un serveur +pa%he et un site
virtue"$ un serveur de base de donnes et une base$ un serveur "dap maItre et un serveur "dap es%"ave.
4n modu"e puppet peut don% tre %onsidr %omme une pro%dure d'insta""ation et de %onfiguration d'un
produit.
Les imp"i%ations sont parti%u"i#rement intressantes )
Y "a do%umentation de "a pro%dure d'insta""ation est "a pro%dure e""e mme
Y "a mise ! (our de "a pro%dure permet "a mise ! (our de tous "es serveurs sur "esque"s e""e est
emp"o*e.
Y %ara%t#re openHsour%e ) "a %ommunaut redistribue des dfinitions %omp"#tes de modu"es.
La derni#re %ara%tristique de Puppet ! sou"igner provient de son %Lt %entra"is. Le serveur reZoit "a
%onne/ion de tous "es %"ients du par% gr$ et a don% %onnaissan%e de "'ensemb"e des s*st#mes. Pour
profiter de %ette %entra"isation$ i" est possib"e dans une re%ette puppet de sp%ifier qu'une ressour%e
que"%onque est e/porte$ i.e sauvegarde sur "e serveur. 3omme "es re%ettes sont %a"%u"es sur "e
serveur avant d'tre app"iques sur un %"ient$ %e"a permet de dfinir "a %onfiguration d'un %"ient puppet en
fon%tion de %ara%tristiques d'un autre %"ient.
:-/:./-.:: [/; <=E, -.::
1onnons un e/emp"e %on%ret ) pour tab"ir "a rp"i%ation dans un domaine Berberos$ i" faut que "e serveur
maItre %onnaisse "e nom des serveurs es%"aves. Pour %e"a$ on va e/porter un fi%hier %ontenant %es
informations sur %haque %"ient puppet %orrespondant ! un serveur es%"ave Berberos )
@@fi"eQ\/et%/Brb[Bd%/Nrea"m9rea"/servers/Nfqdn\)
tag OT \Berberos9Nrea"m9rea"\$ R tag pour reprer %es ressour%es p"us tard
U
,ur "e %"ient puppet %orrespondant au serveur maItre Berberos$ on va instan%ier "es ressour%es e/portes
par "es %"ient )
Ci"e ]]S tag OO \Berberos9Nrea"m9rea"\ STT R ra"isation des ressour%es %orrespondant au tag
7aintenant que "'information se trouve sur "e serveur Berberos 5"e nom des serveurs es%"aves6$ i" suffit de
"es uti"iser dans un s%ript pour mettre en p"a%e "a rp"i%ation Berberos. 1#s qu'un es%"ave Berberos va tre
ra(out$ "a %onfiguration du maItre va s'adapter en prenant en %ompte %ette nouve""e information.
1e mani#re p"us gnra"e$ %e m%anisme de sto%Bage d'information par e/port de ressour%es va
permettre de dfinir des %onfigurations non p"us uniquement au niveau d'un s*st#me iso"$ mais !
"'%he""e d'un par% tout entier. Puppet et son serveur %entra"is permettent ainsi d'automatiser
"'insta""ation et "a %onfiguration de "ogi%ie"s d'infrastru%tures te"s que des so"utions de supervision$ o^ un
serveur %entra" de %o""e%te a besoin des informations des s*st#mes survei""s$ et %haque s*st#me survei""
a besoin d'information %on%ernant "e serveur de %o""e%te.
% &aistrano
3apistrano est une "ibrairie rub* qui permet de d%rire et d'e/%uter des s%ripts sur p"usieurs ma%hines$ et
est t*piquement emp"o* pour %onfigurer "es diffrentes %omposantes d'une app"i%ation &eb 5serveur de
base de donnes$ frontend http$ ba%Bend6. 4ne re%ette 3apistrano est %onstitue de diffrentes t'%hes
interdpendantes 5%omme dans un maBefi"e6 %rites en rub*. L'e/%ution d'une mme re%ette s'effe%tue
sur p"usieurs serveurs.
3on%eptue""ement$ %'est un quiva"ent ! maBe 5gestion de t'%hes dpendantes6 %oup" ! une sur%ou%he
de ssh$ qui permet ainsi de manipu"er p"usieurs s*st#mes %ib"es.
Premi#re %onsquen%e$ i" faut disposer des droits suffisants de %onne/ion sur "es s*st#mes %ib"es$
t*piquement par une distribution pra"ab"e de %"efs ssh.
La %onfiguration de dp"oiement se d%rit dans un fi%hier Capfile, dont voi%i un e/trait %omment )
ro"e )db$ 'postgres.domain.t"d' R dfinition de serveurs ave% "eur rL"e asso%i
ro"e )app$ 'ba%Bend.domain.t"d'
ro"e )&eb$ 'frontend.domain.t"d'
set )user$ \pierre\ R dfinition de variab"e
des% \1es%ription de "a t'%he\ R dfinition d'une t'%he
tasB )m*9tasB$ )ro"es OT)app$)&eb do R restri%tion de "a t'%he au/ serveurs remp"issant "es rL"es sp%ifis
run \e%ho RQuserU fait des %hoses T /tmp/e/amp"e\
end
after5\another9tasB$ \m*9tasB\6 R ordonnan%ement des t'%hes
Pour e/%uter "a t'%he ainsi sp%ifie )
%ap m*9tasB
:-/:./-.:: V/; <=E, -.::
3apistrano va a"ors e/%uter "a %ommande sp%ifie par run sur "es serveurs dont "es rL"es sont sp%ifis
dans "a dfinition de "a t'%he mytask!
3apistrano est fourni par dfaut ave% un ensemb"e de t'%hes %ib"ant "e dp"oiement d'une app"i%ation dont
"e %ode est dans un gestionnaire de %onfiguration 5,376 t*pe subversion ou git.
%ap dep"o*)setup R initia"isation ) %ration de rpertoire
%ap dep"o*)update R dp"oiement du %ode ! partir de "a derni#re version du ,37
%ap depo"*)start$ stop$ restart R %ontrL"e de "'e/%ution de "'app"i%ation
%ap dep"o*)revert R retour ! "a version pr%dente
I" suffit pour profiter de %ette %onfiguration de base de sp%ifier "e nom des serveurs de dp"oiement$
"'identit ! uti"iser sur "es serveurs$ "e nom des rpertoires pour "a destination du %ode$ et de renseigner
"es %oordonnes du ,37 uti"is.
' Place dans l'organisation d'un ser"ice informati(ue
Nous a""ons maintenant regarder "es rper%ussions de "'uti"isation de %es outi"s sur "'organisation d'un
servi%e informatique.
Tout d'abord$ "'uti"isation de produits du premier niveau 5insta""ation initia"e du s*st#me6 abaisse "e %o_t
d'insta""ation d'une ma%hine$ et permet une uti"isation optimise des ressour%es matrie""es.
+u "ieu d'insta""er N servi%es sur un mme s*st#me$ i" est aussi fa%i"e d'insta""er N s*st#mes ave% un seu"
servi%e par s*st#me. 8n obtient ainsi moins de %oup"ages entre "es diffrents servi%es insta""s. I" devient
fa%i"e de faire vo"uer un servi%e indpendamment des autres.
Le %o_t du provisionning d'un nouveau s*st#me est grandement abaiss.
3haque s*st#me est p"us simp"e$ et i" est don% p"us fa%i"e de "e d%rire ave% un produit %omme Puppet.
La %entra"isation des des%riptions permet de travai""er en un mme point pour modu"ariser "es
%onfigurations et permettre une mei""eure ruti"isation ) quand (e d%ris un serveur &eb$ i" * a une partie
fi/e 5%onfiguration du s*st#me$ paquetage apa%he$ %onfiguration basique du serveur6 et une partie
variab"e 5modu"es apa%he ! uti"iser$ des%ription des hLtes virtue"s6. I" devient intressant de produire une
des%ription ref"tant %e d%oupage pour fa%i"iter "a ruti"isation$ voire de r%uprer un modu"e d(! %rit
par "a %ommunaut. 8n se %onstruit ainsi petit ! petit une bib"ioth#que des %omposants "ogi%ie"s que "'on
uti"ise dans son par%$ ave% sa des%ription asso%ie$ ainsi que des e/emp"es %on%ret d'uti"isation.
L'ensemb"e %onstitue ga"ement une do%umentation de qua"it.
Le %o_t initia" de ra"isation de "a des%ription est don% amorti au fi" du temps$ %ar ruti"ise.
Les produits du niveau : permettent de gagner du temps immdiatement$ "es produits du niveau -
%onsomment "e temps ainsi gagn en "'investissant dans "a ra"isation des des%riptions. Le %o_t en temps
effe%tif pass sur un s*st#me est don% sensib"ement in%hang au premier abord$ et baisse fortement au
fur et ! mesure de "a %onstru%tion de sa bib"ioth#que de des%riptions. Le %o_t re" est don% %onstitu par
"'investissement en formation ! "'uti"isation %oordonne de %es produits.
3onsidrons maintenant par un e/emp"e "e dia"ogue n%essaire entre un administrateur s*st#me et un
dve"oppeur pour "a mise en p"a%e %oordonne d'un so"ution pour dp"o*er fa%i"ement "'app"i%ation du
dve"oppeur )
Le dve"oppeur doit d'abord fournir "es sp%ifi%ations du s*st#me %ib"e$ par e/emp"e ) une app"i%ations
Php ! dp"o*er sur un environnement L+7P 5Linu/ +pa%he 7*sq" Php6. I" va ga"ement fournir sa %"ef
pub"ique ssh.
L'administrateur s*st#me va ra"iser "a des%ription de %ette %onfiguration ave% Puppet en ruti"isant des
modu"es d(! %rit$ ventue""ement en en %rant un rassemb"ant tous "es "ments pour "e %as ! grer s'i"
:-/:./-.:: M/; <=E, -.::
pense que "'investissement est rentab"e et que "e %as de figure va se reprsenter. I%i$ "a %onfiguration
%onsiste en ) insta""ation par paquetage d'apa%he$ de mod9php$ de m*sq"$ %ration d'un uti"isateur$ d'une
base de donnes et des identifiants pour s'* %onne%ter$ %ration d'un rpertoire devant abriter "e %ode du
produit$ et "a %onfiguration de "'hLte virtue" apa%he pour uti"iser "e rpertoire.
I" fournit a"ors "es %oordonnes de "a ma%hine$ "e nom de "'uti"isateur ! uti"iser pour "a %onne/ion ssh$ "es
identifiants pour se %onne%ter ! m*sq"$ "e %hemin du rpertoire a%%essib"e en %riture.
Le dve"oppeur va a"ors %onfigurer 3apistrano ave% %es informations$ et "'uti"iser pour dp"o*er son
app"i%ation.
L'administrateur s*st#me est en %harge d'assurer "a disponibi"it du serveur$ et d'assurer sa s%urit. Le
dve"oppeur ne s'o%%upe que du %Lt app"i%atif.
3ette e/emp"e montre que "es outi"s prsents dans "'arti%"e permettent don% une %oopration entre
administrateur et dve"oppeur tout au "ong de "a vie d'une app"i%ation$ du dve"oppement ! "a mise en
produ%tion.
) &onclusion et ersecti"es
3ette arti%"e vous a prsent une %"assifi%ation des so"utions te%hniques permettant d'aboutir ! une
automatisation %omp"#te de "a gestion d'un s*st#me$ et un fo%us sur Puppet et 3apistrano.
L'emp"oi de %es outi"s te%hniques est fortement stru%turant$ et s'i" est d(! intressant de "es uti"iser seu"$
i"s prennent toute "eur p"nitude dans une organisation %oordonne.
L'insertion de %es produits dans votre pratique peut se ra"iser de - mani#res diffrentes ) dans une
appro%he partant de "a base$ %omme "'e/emp"e de %o""aboration entre un administrateur s*st#me et un
dve"oppeur 5voir se%tion [6$ on %her%he ! uti"iser en %ommun des produits qui permettent "a %o""aboration
entre des mtiers diffrents. 3ette appro%he est porte par "e mouvement 1ED8P,$ qui `uvre !
rappro%her "es 1EDe"oppeurs des 8prationnne",.
En fon%tion de votre organisation et de sa po"itique$ vous re%her%he@ peut tre une appro%he des%endante
p"us stru%ture. ITIL et 377IHdev d%rivent des pro%essus ! mettre en p"a%e pour une abonneb gestion$ et
sont des appro%hes requrant une forte vo"ont po"itique. ITIL$ dont "e fo%us initia" est "'organisation d'un
servi%e informatique 5avant "a version ?6$ met "'a%%ent sur un s*st#me de gestion de %onnaissan%e parmi
"es %omposantes n%essaires. 4n produit te" que Puppet fournit une base de %onnaissan%e sur "es servi%es
insta""s$ qui peut servir de base pour dve"opper une dmar%he ITIL. ITILv? ou 377IHdev en%adrent
ga"ement "a %ration de nouveau/ servi%es$ et dans %e %adre "e dp"oiement des servi%es au fur et !
mesure de "eur vie ) dve"oppement$ test$ produ%tion$ mise ! (our. L'uti"isation %on(ointe d'un produit de
niveau - te" que Puppet et d'un produit de niveau ? te" que 3apistrano permet de fi/er une pro%dure
prenne de dp"oiement du servi%e$ qui s'adapte au/ diffrents environnements 5dve"oppement$ test et
produ%tion6$ do%umente et fiab"e.
:-/:./-.:: ;/; <=E, -.::