journée devops : puppet, un outil pour les installer tous

24
DevOps Day 2014 Puppet: Un outil pour les installer tous

Upload: xebia-france

Post on 11-May-2015

438 views

Category:

Software


2 download

DESCRIPTION

Vous n'avez pas pu assister à la journée DevOps by Xebia ? Voici la présentation de Mathieu Nantern à propos de Puppet.

TRANSCRIPT

Page 1: Journée DevOps : Puppet, un outil pour les installer tous

DevOps Day 2014

Puppet: Un outil pour les installer tous

Page 2: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 1Le mouvement DevOps

1

Page 3: Journée DevOps : Puppet, un outil pour les installer tous

Un projet informatique

3

Page 4: Journée DevOps : Puppet, un outil pour les installer tous

La faute de l’Agile

4

Page 5: Journée DevOps : Puppet, un outil pour les installer tous

La faute de l’Agile

5

Page 6: Journée DevOps : Puppet, un outil pour les installer tous

L’infrastructure est peu Agile

6

Page 7: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 2Pourquoi Puppet ?

2

Page 8: Journée DevOps : Puppet, un outil pour les installer tous

Pourquoi Puppet ?

Installer un projet ? !!!!

Diversité des plateformesA

C D

B

8

Cohérence des environnements

Un langage commun

Page 9: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 3Architecture

3

Page 10: Journée DevOps : Puppet, un outil pour les installer tous
Page 11: Journée DevOps : Puppet, un outil pour les installer tous

Un run Puppet

11

PuppetMaster

Puppet

1

2

34

Page 12: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 4Infrastructure as Code

4

Page 13: Journée DevOps : Puppet, un outil pour les installer tous

A

C

Un ensemble de ressources

D

B

Un paquet ? package{‘ntp’: ensure => present}

Un utilisateur ? user{‘bob’: ensure => present}

Un fichier ? file {‘/etc/profile’: ensure => present}

Un service ? service {‘apache’: ensure => ‘running’}

13

Page 14: Journée DevOps : Puppet, un outil pour les installer tous

Un module

14

class ntp{ package { 'ntp': ensure => present, before => File['/etc/ntp.conf'] } file { '/etc/ntp.conf': ensure => file, owner => 0, group => 0, mode => '0644', content => template("ntp/ntp_${::osfamily}.conf.erb"), } service { 'ntp': ensure => present, enable => true, subscribe => File['/etc/ntp.conf'] } }

Page 15: Journée DevOps : Puppet, un outil pour les installer tous

Assigner un module à une machine

15

node 'agent1.localdomain' { class{'ntp':} }

Page 16: Journée DevOps : Puppet, un outil pour les installer tous

Extensibilité

Ajout de ressources

Ajout de fonctions

Ajout de facts

!Et bien plus…

A

C

B

16

D

Page 17: Journée DevOps : Puppet, un outil pour les installer tous

Le développement appliqué à l’infrastructure

Tests unitaires Rspec-Puppet

Couverture de code Total resources:   12 Touched resources: 7 Resource coverage: 58.33% Untouched resources: !  Anchor[ntp::begin]   Anchor[ntp::end]   Class[Ntp::Params]   Package[ntp]   Service[ntp]

Tests d’intégration serverspec, beaker

A

C

B

17

Page 18: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 5Retour d’expérience

5

Page 19: Journée DevOps : Puppet, un outil pour les installer tous

La Poste

• Tri 60 millions d’enveloppes

par jour

• Reparti sur 30 centres de tri

• Plus de 1000 serveurs en

production !

19

Page 20: Journée DevOps : Puppet, un outil pour les installer tous

Infrastructure Puppet

• Un PuppetMaster

• 2 runs Puppet par jour

• Version 0.25…

• Un ENC

• Des machines vierges en

« stand-by »

20

Page 21: Journée DevOps : Puppet, un outil pour les installer tous

Boot

PXE

Run Puppet

ENC

\o/

Provisioning d’une nouvelle machine

21

Page 22: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 6Demo !

6

Page 23: Journée DevOps : Puppet, un outil pour les installer tous

Chapitre 7Questions ?

7

Page 24: Journée DevOps : Puppet, un outil pour les installer tous

Merci!