of 36 /36
MEETUP ANSIBLE MEETUP ANSIBLE MEETUP ANSIBLE MEETUP ANSIBLE MEETUP ANSIBLE MEETUP ANSIBLE MONTRÉAL MONTRÉAL MONTRÉAL MONTRÉAL MONTRÉAL MONTRÉAL ADOPTION D'ANSIBLE AU SEIN D'UNE ÉQUIPE DE SYSADMINS mercredi 12 avril 2017, par Grégory Colpart

MEETUP ANSIBLE MONTRÉAL MMEEEETTUUPP …people.redhat.com/.../avril2017/meetup-ansible.pdf · MEETUP ANSIBLE MEETUP ANSIBLE MMOONNTTRRÉÉAALL MONTRÉAL MONTRÉAL ADOPTION D'ANSIBLE

  • Author
    others

  • View
    3

  • Download
    0

Embed Size (px)

Text of MEETUP ANSIBLE MONTRÉAL MMEEEETTUUPP …people.redhat.com/.../avril2017/meetup-ansible.pdf ·...

  • MEETUPANSIBLEMEETUPANSIBLEMEETUPANSIBLEMEETUPANSIBLEMEETUPANSIBLEMEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLE

    MEETUPANSIBLEMEETUPANSIBLE

    MONTRÉALMONTRÉALMONTRÉALMONTRÉALMONTRÉALMONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉAL

    MONTRÉALMONTRÉALADOPTIOND'ANSIBLE

    AUSEIND'UNEÉQUIPEDESYSADMINSmercredi12avril2017,parGrégoryColpart

    http://twitter.com/gcolpart

  • Infogérance/Hébergement/InfonuagiqueManagedHostingProviderLinux,infraweb,HA,Ansible,DockerUneéquipeàMontréal+enFrance(24/7)Clients:agencesweb,SaaS,médias

  • MÉTIERD'EVOLIXUnecentained'infraclientsUnàplusieursdizainesdeserveursparinfraTotald'environ700serveurshétérogènesinfogérésServeursDebian/BSDCultureSysAdmin:shell,100%outilslibres

  • HISTORIQUE:COMMENTINSTALLERUNSERVEUR?

    toutàlamaincopier/collerchecks(evocheck)scriptshellprivé(evolinuxv1)

  • AUTOMATION?(Tempsd'unetâche)×(nombred'exécution)VS

    Tempsd'automatisation

  • 2013:GESTIOND'UNEINFRACLIENTAVECPUPPET

  • 2014:PLAYBOOKANSIBLEPOURDESPETITESTÂCHESPONCTUELLES

    ajoutd'unenouvelleadresseIPsurtousnosserveurs

  • DÉCLICIMMÉDIAT...adoptionprogressiveparcertainsSysAdminsfacileàappréhender(modulecommand/shell)homogénéité,fiabilité,rapidité

  • ONL'ADOPTEPOUR:actionsurgentes(màjsécuritécommeopenssl)tâchesrépétitives(utilisateurs,firewall)

    demandesspécifiques(extensioncluster,instancesdeservices)

  • 2015:ADOPTIONOFFICIELLED'ANSIBLEinventorygénéréàpartirdenotreannuaireLDAPmigrationd'Ansible1.7vers2.0(sudo→become)

  • 2016:CRÉATIONSDERÔLESANSIBLEDANSUNDÉPÔTDÉDIÉ/PUBLIC

    conversiondenotrescriptshelld'installationenensembledeplaybooks/rôlesAnsible

  • 2016:INSTALLATIOND'INFRACLIENTCOMPLEXESCOMPLÈTEMENTORCHESTRÉESAVECANSIBLE

  • 2017:MIGRATIOND'ANSIBLE2.0VERSVERSION2.2

  • LESKILLERSFEATURESD'ANSIBLEconceptidempotenceagent-lesspermettantuneadoptionprogressive

  • CHOIXD'ORGANISATIONrôlesAnsiblepublics(déploiementencoursversAnsibleGalaxy)outillageAnsiblepublic:tasks,conventions,etc.outillageAnsibleprivé:vaultpourvariables,tasks,etc.scriptsdegestion:générationdesvariables(dialog),syncGit,etc.playbooksdansundépôtpartagéavecleclient

  • CONVENTIONSlastructuredesrôles(ansiblegalaxy,README.md)leformatYAML(pasdesyntaxecompacte)l'utilisationdelaprécédencedesvariablesutilisationducheckmodedépôtspublics:commentairesetdocsenanglais

  • mailto={{log2mail_alert_emailorgeneral_alert_email}}

  • CHOIXDENEPASUTILISERANSIBLETOWER

    100%librepasd'interfacegraphique

  • FOCUSSURL'INVENTORYinventoryviaLDAPpourlaprodinventoryparclient,notammentpourlestests

  • FOCUSSURLESMODULESIlexistedescentainesdemodules...

    CHOIXFIXEDECERTAINSMODULES+CONVENTIONSD'UTILISATION

    lineinfilevsblockinfilevscopy/template

  • CONVENTIONS(SUITE)utilisationdestagssecrets:vaultdansunrepositoryprivétestspourvérificationdel'applicationdesconventionsServeurscentraux...maisoptionnels

  • [defaults]inventory=$HOME/.ansible/hostsgathering=smart

    [ssh_connection]ssh_args=-oControlMaster=auto-oControlPersist=300spipelining=True

  • [defaults]inventory=$HOME/.ansible/hosts[ssh_connection]ssh_args=-oControlMaster=no-oControlPersist=no

  • ENJEUDETRANSMISSIONDUSAVOIRtoutlemondedoitêtredanslabarquelesdécouvertesdoiventêtretransmiseslesconventionsetbonnespratiquesprêchéesetrabachéesfaireducollectif/collaboratifetpasavoirunleaderetdessuiveurs

  • PAIR-PROGRAMMINGTRÈSEFFICACE

  • ADOPTIOND'ANSIBLEPOURUNEINFRAULTRA-HÉTÉROGÈNE

    quelquesserveursgérésad-hocquelquesinfrasglobaliséesmigrationtrèsprogressivedesinfraslegacymaintenancecomplexedansuncontextedeproduction

  • FOCUSSURLADOCUMENTATIONimportantpourfaciliterlatransmissionexplicitedusavoir,desbonnespratiques,desconventions.

  • TRAITERLESPLAYBOOKS/ROLESCOMMEDUCODE:desbonsmessagesdecommitsdescommentaireslàoùc'estpertinent(lepourquoi,paslequoi/comment)normerlesREADMEcentraliserlesinfosclés(conventions.md…)écriredestests

  • FOCUSSURLASÉCURITÉFaillesdesécurité,commeCVE-2016-9587

  • TESTSIndispensablescommepourducode«classique»

    testerlasyntaxelinttesterl'éxécutionsansbug,puistesterl'idempotence(viaKitchen)testerlerésultat(viaserverspeclancéparKitchen)

  • Seservirdestestscommechasseauxbugs,maisaussipourempêcherlesrégressionsLecodeAnsibleestcommeducodeclassique:ilévolue,serefactore…etilestfaciledecasserquelquechosequiaétévalidéprécédemment

  • QUELQUESDÉFAUTSD'ANSIBLELesmessagesdesortieenJSONsontconçuspourAnsibleTower,paspourdeshumainspasdegestiondesaccréditations,l'idéalseraitunagentfaçonSSHpourmotsdepassevault/sudo/sshladocumentationestuniquementorientéepourladernièreversion

  • NOTATIONENOCTALENYAMLmode:0755→Good!mode:755→Bad!mode:1777→Bad!mode:"0755"→Goodmode:"1777"→Good

  • CONCLUSIONAnsible,idéalpouruneadoptionprogressiveauseind'uneéquipedeSysAdminsÊtreattentifauchangementdeculturequecelaapporteaméliorations:+detestsetpushsurAnsiblegalaxy

  • POURENSAVOIRPLUS...RôlesAnsibleEvolix:

    WikiEvolix:Twitter:Mail:

    forge.evolix.org/projects/ansible-roleswiki.evolix.org

    @[email protected]

    https://forge.evolix.org/projects/ansible-roleshttps://wiki.evolix.org/https://twitter.com/evolixcanadamailto:[email protected]