Skip to content

Instantly share code, notes, and snippets.

@DaffyDuke
Last active March 5, 2017 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DaffyDuke/57e46f38e50bae9f6a41d6ce3858696c to your computer and use it in GitHub Desktop.
Save DaffyDuke/57e46f38e50bae9f6a41d6ce3858696c to your computer and use it in GitHub Desktop.
Notes Configuration Management Camp 2016

Ouverture

600 personnes, complet HoGent = univ. management

Mark Shuttleworth, Canonical

Magic if application modeling => stop cfgmgmt !, juste écrire des logiciels "on ne compile plus" on ne manage plus sa collection, on cherche de la musique, => cfg / "big software" Besoin d'un liant comme apt-get/rpm le fait pour les soft c++ & co => secr pour lier les briques openstack ? Beosin de définir un modèle de "liant" pas les machines, ni les configuration, mais le logiciel lui même Une appli = instal, config, scale, .... monito .... bench .... <= TOSCA ? il ne reste qu'à configuerer des interfaces avec des relations entre besoin logitiels juju encapsule les logiciels de cfg

Vault, security, secret management, hachicorp

secret vs sensitive credential, password vs DC location, social engineering, ... gestion des revocation et type d'encryptions config mgmt : no access control, no auditign no revocation, no key rolling pourquoi pas de consul ou zookeeper , pas pour des secrets, pas de chiffrement des données, pas d'audit when, where, what compromised password openssl commandline pour les cert (pas les CA, ni les CRL) Now, Vault dynamic secret (on demand password sur root par exemple), renew et CRL, autit, rich ACL(read,write,deny), 256bits AES in GCMm mode accessible par REST TLS 1?2 sans HSM ex : vault read secret/foo every secret has a lease backend audit et logging authent possible via token, githubn certificats, ..... haute dispo via consul (++), etcd, zookeeper, vault demande la clé d'encryption à chaque redémarrage protect encrypt key with master key puis split master key quorum de clé default N:5 T:3 Vault dans la vraie vie http+tls, CLI + consul vault client support : libs en go, ruby, etc .... gestion des informations sensibles (CC, eault. mail, ...) PII en transit via Vault 2 facter , versionnning "developpers don't need to understand security"pb de perf peut- etre CA, Vault peut faire CA, store CA, genere TLS keys => le cert est stocké DANS Vault Un Cert peut etre revoqué si la CRL est stockée à coté DANS Vault possibiloté de CA intermédiaires hashicorp/vault vaultproject.io

Moving to puppet4, spotify

Or how to get your act together : >10k nodes au début, un simple plugin cfengine, puis puppet 2.7, découverte puppet3 : nouveaux jouets, puppet4 : specifique orienté system

  1. besoin de se poser vraiment pour imaginer les nouvelles règles
  2. passer en 3.8 le code pour rendre compatible l'existant, puis mise à jour des modules (Vox Populli)
  3. configurer le parser à ne pas faire avant 3.7.4 Attention aux parenthèses dans les facts par exemple
  4. Alors la mise à jour est possible en puppet4 (attention à la version de ruby) Deux moyens :
  • partir d'un nouveau master
  • utiliser des comparateurs de catalogue comme "puppet catalogu differ", iis.gdcatalog_diff_viewer Deux semaines de préparation 3 jours de ménage, 0 incidents de production 1 an de revue de code préparatoire Vox Populli :60 modules, 50 admins

Securing Puppet

Peter Souter La base : show_sdiff = false voir le provider openstack puppetlabs pour une définition de type "maison" pour les passwords Nettoyer et factoriser le code, ne pas mettre de données en dur encoder les passwords trusted facts : http://docs.puppetlabs.com/puppet/3.7/reference/lang_facts_and_builtin_vars.html#trusted-facts policy based autosigning : https://docs.puppetlabs.com/puppet/latest/reference/ssl_autosign.html#policy-based-autosigning

https://puppetlabs.com/security

WINRM pour Ansible sous Windows

Ansible VM Lifecycle Management on Fedora

Toshaan Bharvani, System Orechstration Tool VanTosh.com utilisation de virt-install avec les paramètres "qui vont bien" et le playbook final yaml OK pour Linux (sauf ubuntu) et *BSD

Foreman & remote execution

basé sur des templates surtout pour provisionner possibiliter d'ordonnancer les tâches (deadline) A venir les notifications email, d'autres providers tels playbook ansible

Security & Compliance, automation with Foreman and OpenSCAP

problème de prononciation opeunesscap set of rules security compliance, by NIST open = implémentation https://www.youtube.com/watch?v=caSIW4-yhUk dernière version openscap proxy pour foreman possibilité d'uploader une policy "d'entreprise" possibilité de lancer un run de façon périodique (weekly, ....) foreman et proxy : 1.11 avec 0.5x plugin openscap

PXELess discovery and foreman

create hosts and baremetal application d'un template de hosts avec un template kexec (RHEL, CentOS, ...)

Managing Container Configuration with Metadata

Ganeth Rushgrove manifest pour décrire un dockerfile ajout de label par layer (vendor, date de release, lien, ...) acessible via des filtres de docker images, visible dans un inspect du container ou encore le slabels de kuberntes possibilité de gérer d udirectory listing ou documentation dans des metadatas attention aux noms des clés utilisées par le cli, correection de label via dli (docker label inspector sur github)

Choregraphy

Il existe des orchestrateurs tels HPOO, VMWare, ... L'orchestration est un code informatique vente d'un ordonnanceur hashicorp (atlas) Voir Theory of Promises Notion d'état d'arrivée et de départ, prévoir des "interfaces" pour les évaluer, et prévoir les échecs d'autre composants

Apified Monitoring with Icinga2

monitoring depuis 7 ans => pres de "revente" de icinga multithreadé et modlaire, en mode agent, pas de lien Nagios connexion à graphite pour les métriques sous forme de metadata (enable_send_metadata) graphing via TCP Attention ne pas migrer de Icinga vers Icinga2, mieux from scratch Notion de configuration language : assign, apply, if .... Demo : icinga2 daemon -x icinga console --connection...... => genère un get client Voir Icinga Studio : clickodrome pour configurer Icinga2 Mais accessibles via API en REST, authent. en certif ou login/pass api-users.conf : authent et rôles avec des filttreres sur les object (regexLinux par exemple Possibilité d'inscription d'objets à des évènements : utilisation de icinga-director Config API pour le configuration mgmt json avec export CSV, OK en PHP 5.3 connectable sur LDAP, kerberos

Better Together: Puppet and Ansible

Spencer Krum, IBM @nibalizer Bosse sur OpenStack chez IBM ask.openstack.org , zanata, elk .... OpenStack chez Bluebox, OVH ... Puppet pour config, ansible pour orchestration cacti pour les métriques puppetboard Start puppet 2.7 en passanger, Un seul repo puppet pour les modules Puis upgrae puppet 3 , openstack / apply-test.sh .... control repo indirector, utilisation de hiera => besoin do'rchestration à partir du provi pour passer du puppetmaster au host nouvellement créé cet accès a été permis par ansible puppet cert list -> ansible -> puppet agent --test puis inventaire openstack plutôt qu'un puppet cert list : utilisation de groupes ansible c'est ansible qui gère les mises à jour logicielles et exécute puppet run ansible checkout le git, récupère hiera puis run puppet => modification du facter_basename possible ainsi que puppet_environment Next steps : disable puppetmaster

SaltStack integration with Foreman

Stephen Benjamin @stbenjam rappel : provisionning, configuration, monitoring (dashboard, ABRT, OpenSCAP) possibilité de smart proxy salt via smart_proxy_salt ou foreman_salt gestion des minions, key management pillars via "external pillars", utilisation des external nodes pour fournir un YAML bouton "RUN SALT" depuis foreman récupération de foreman fact via des grains hammer salt-state list puppet inclus dans foreman initialement, on peut ne pas l'utiliser même si on est encore obligé de l'installer. New Host : Attention, notion d'environment pour puppet + de Salt environment DNS sous Bind, FreeIPA, etc ... vérifier la notion de "job cache" dans salt possible de mettre une notification "salt error" en cochant puppet notification avec pour sujet "puppet" :-) Ecriture de facts dans foreman : fact_short_name:os_family (salt) fascts.os_family (puppet) C'est upload_salt_report qui envoie dans foreman Comme dans SuseManager, possibilité d'exécuter des commandes arbitraires depuis Foreman

Hosts Lifecycle with Ansbile and Foreman - Daniel Lobato

Génération de rapport as usual Création d'un host depuis la GUI pour le provisionning Comprendre : LA METHODE de provi, c'est foreman et pas l'inscription auto dans foreman. C'est lui qui gère le cycle de vie, quel que soit le cfg mgmt en backend. http://theforeman.org/manuals/1.10/index.html#4.4.8.3Windows Aperçu des "Discovery Rules" Comme pour Salt, les fonctions Ansible sont accessibles via la GUI, on parle de "Jobs". Smart Variable parameter de foreman pas encore dispo dans Ansible

rkt and Kubernetes: What’s new with Container Runtimes and Orchestration - Jonathan Boulle

regarder etcd CoreOS common : unsigned images , insecure images, PID1 => à ne pas faire cependant avec rkt, on a une alternatrive container : https://github.com/coreos/rkt pas de démon, pas d'API, juste un process une appli = 1 process découpé en stages il existe un service en API donc exposé, en utilisateur non-root usage de rkt avec kubernetes => rktnetes

Remarques

Beaucoup de monde => besoin de faire de la "défragmentation de salle" Devops Unicorn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment