72
Rudder FrOScon 2016

Rudder - FrOSCon...Plugins: Cobbler, Rundeck, Ansible ... Rudder. Workflows Rudder. Workflows Rudder. Workflows Rudder. Workflows Rudder. Workflows Rudder. Workflows Rudder. Workflows

  • Upload
    others

  • View
    99

  • Download
    0

Embed Size (px)

Citation preview

Rudder

FrOScon 2016

ConfigurationManagementfortheMasses!

GeschichteinSlidesundDemos.

Rudder

Unix-Admin/Consultant

Schulungen.Beratung.TroubleshootinginjederForm.Prozesseplanen(Excel)undNetzwerkeneuverkabeln(Axt).

„Handbuchleser“

Rudder

Wer bin ich?

1995 2016Delix-

SUSE----- -- ---------FreeBSD-------------------------------------------------

RedHat-- --- ----------- ---Irix-----------

HP-UX ------------------------------AIX-------------------

Reliant-- - - - ---Solaris----- ------------Tru64-------

AlpineLinux!!!

Rudder

Portable?

AlpineLinux Rudder!FreeBSD OpenNebulaCheck_MK BaculaCobbler Xen

Rudder

OSS? J

1993

CFEnginewirdveröffentlicht.EsgehtnurnochumGeschmacksrichtungen.(ISConf,bcfg2,puppet,chef,fabric,salt,ansible,...)Automatisierungistjetztverfügbar.

Rudder

Evolution?

1995

MorganStanleydokumentiertIhrAuroraSystem.

(undwird15JahrespätermitdenInfosgehackt)

Bestpracticessindjetztverfügbar.

Rudder

Evolution?

1999

Automatisierung istverfügbar.Aberwirmachenallesmanuell.SkriptenkannehnurderM.

„DenScriptingHostschaltenwireinfachab,wennwirdenIloveyouentfernen.DamüssenwirjaehandenRechner!“

Rudder

Evolution?

2001

Automatisierung istverfügbar.Aberwirdürfenallesnurmanuellmachen.

„LiebervielekleineFehleralseinenKompletten!“

Rudder

Evolution?

2005-2010

Automatisierung istverfügbar.Wirsetzenjetztalle2JahreaufeinneuesTool!

„Wennichauf200HostseinRPMdeploye,kipptdasOracleum.“„DumusstdenRolloutinG-R-U-P-P-E-N machen!“

Rudder

Evolution?

2011-2015

Automatisierung istverfügbar.„WirhabendafürdamalsunsereigenesTool

massgeschneidert,daskanndasambesten.“

InPython.MitSed.OderinXML.MitPerl.Odermitallem,wasdawar.Gleichzeitig.DerEntwickleristweg.Esfunktionierthintenundvornenicht.

Rudder

Evolution?

2016DieToolswerdenbesser,aber...MankanneinenvollenOS-Rolloutbrauchen,umAdmin-UserzuverteilenMankann eineDatenbank“truth.truth“nennen.EinfalschesKommakönnte einlandesweitesDeploymentkaputtmachen.JedesToolkannwirklich gut kaputteConfigserzeugen.

Rudder

Wie läuft’s?

2016DieToolswerdenbesser,aber...aucheinfacher.Füruns!

Aber...müsstensieauchfürandere einfacherwerden?

Rudder

Wie läuft’s?

Do not edit – managed by Puppet!Do not edit Managed by SpacewalkDO NOT EDIT: MANAGED BY SALT!DO NOT EDIT! Managed by ChefDO NOT EDIT MANAGED BY BND MAVEN LIFECYCLE PLUGINThis file is managed by systemd-resolved(8). Do not edit.

Besser:# Generated by NetworkManager# Ansible managed file, do not edit directly

Rudder

Knigge?

unddann...

Rudder

###ManagedbyRudder,editwithcare###

DieEinstellunggefälltmir!

Rudder

OSS,Frankreich,2010

StandardsLeichteNutzbarkeitMehrSichtbarkeitNichtnureinneuesRaderfinden

Rudder

Wiedrübergestolpert– vorzweiJahrensollteichsuchen...

HilfevonMariusDucea(Chef-User)dankLOPSA

„Esmusshaltbittealles können.“

Rudder

WovorichAngst hatte:

- Eigenbauten - habeichschonDREImalgesehen- "DONOTEDITTHISFILE"- "WennDeinProblemnichtzuunseremToolpasst,hastDudasfalsche

Problem“- „Lassliegen,dasmachtderX“- „ChangeManagement?KennstDuServerSpec?“

Rudder

Webinterface

Rudder

CLI

Rudder

Skalierbar1 Master

Aufteilbar (DB,LDAP,Syslog)

0....N Relays (Webserver, SyslogReflektor)

0....2000 Nodes (Clients)proRelay

Masterknapp2GBHeapje1000Clients

Rudder

Besonderheiten

NurStandardsoftware

KleinerAgent(outofBandManagement)

Schnell

KeinlokalesRubyetc.,maximalPerl

JederNodeistautark

Policieskönnensichdynamisch anpassen

Rudder

DatenflussNodessendenInfos(OCS/Fusion)

NodesholensichPolicy

NodessendenBerichte(Syslog)

MastererrechnetSOLL/IST->Compliance

InventarinfoskönnenEinflusshaben

Berichtenicht

Masterhatkeinen ZugriffaufNodes

Rudder

Wie?

Rudder

Demosrelativ„echte“Umgebung

2VMhosts,~30VMs

4verschiedeneOS

Autopatching

SysloganELK

Monitoring

Rudder

DemosNodeaufnehmen

ToolAufbau

sudo(StandardTechnique)

Suchenachlfd.Apache(NutzbarmitGruppen)

Deploymentviarekurs.Kopie?

neuerHostaufnehmen, DynGroups

ChangeManagement

API(Externalproperties,Nodelisto.ae.)

AnsiblemitRudderInventory

Rudder

Wie?

Rudder

Nodes acceptenNodegeneriertsichseinePriv/Pubkeys

NodessendenInfos(OCS/Fusion)

XMLFilemit„Inventory“

ServerprüftInventory

Admin(oderAPI)mussannehmen

Key,Client-UUIDundRelaywerdenverknüpft

Rudder

Node Infos

Rudder

Node Details

Rudder

Node Details

Leichtlesbar/strukturiert

Stammdaten

UUID

PubKey

HardwareInfos

Filesysteme,Prozesse,Envvars

Rudder

Node Compliance

Rudder

Node Compliance

AlledenHostbetreffendenSettings

Status,keineHistorie

VolleDetailtiefe

GutfürDebuggingoderEinzelauskunft

Rudder

Gruppen

Rudder

GruppendynamikStatischeGruppensindfix(Hostnamenetc.)

DynamischeGruppenentstehenausSuchen

nachAttributenimInventar

nachKey-Value,viaAPIgesetzt

AND/OR,Regex

automatischaktualisiert

NeueSystemelandenohneZutun inGruppen

Rudder

Direktiven

Rudder

DirektivenAdmin/DeverstellenpassendeStandardmethoden

Benutzerfreundlich

1st/2ndLevelkannsieproblemlosverwenden

versioniert,upgradebar

Inputvalidierungetc.

Tooltips...

Javascript...

Rudder

Rules

Rudder

RulesDirektiven*Gruppen

GruppenkönnenalsEXCLUDErein

CompliancewirdaufRule-Basisgerechnet

DirektivensindnurmittelsRulesaktiv

GruppensindnurmittelsRulesaktiv

DasistdiePolicy!

Rudder

ReportingJedeerstellteRegelbedeuteteinen„SOLL“-Report

DieAusführungdesAgentensendetdiePolicy-

VerarbeitungzumServer(„IST“-Report)

RuddererrechnetanhandeingehenderMeldungen

ProzentsatzSystememitIST=SOLL

Ergebnis:ComplianceStatus

Rudder

RulesStatusistfürjedeDirektivedarstellbar

StatusistfürjedenHostderGruppendarstellbar

Änderungsrate istsichtbar

KeineÄnderungen->AlsoStabil->Alsosuper

Rudder

Rules

Rudder

Rules

Rudder

ComplianceJedeRulehat„Gesamtstatus“

KannStatusjederDirektiveineinerRulesehen

KannStatusjedesEinzelsettingsinDirektivesehen

KannStatusjedes(vonderRulebetroffenen)Nodes

sehen

Debugging,Statusauskunft

Rudder

NCF Editor

Rudder

NCF-EditorSpassübersetzung:OurCodeworks

NCF:FrameworkvollerStandardmethoden

ErgänztmitPointandClickWebinterface

Dependenciesetc.

UnitTestsproMethode

WirdbeimSpeichernfürRudderlesbargemacht

Gehtnatürlichaucheinfachpervi:-)

Rudder

sys.knowledgeLadbareDaten

OS-Abstration(sshd vs.openssh vs.openssh-server)

Infrastrukturdaten

BrauchtContributions!!!

Rudder

DesignZuallenObjektklassengibtesCategories

ErlaubtSortierung

VariablenhabenPrioritäten,könnensichüberlagern

GUISuche leistungsfähig

Namenskonventionenhelfen

Rudder

DesignReporting/CompliancewertezurPriorisierung

Change-RatenvonPolicieszurPriorisierung

„Wassollteichzuerstrichten“

Rudder

DesignUpdatesbrauchenAuditlog-Eintrag

Alles hatDescription-Felder

AuchdieDescriptions sindperAPIzugreifbar

Rudder

DesignSyslogmeldungensindgutgrepbar

Complianceproblemewerdengelogged

Weiterleitbar– andereToolsanbinden

HealthAPI- andere

Rudder

Andere ToolsComplianceLogssindweiterleitbar(z.b.Logstash)

API– Nodehealthabfragbar

API– Nodeinventoriesabfragbar

Plugins:Cobbler,Rundeck,Ansible...

Rudder

Workflows

Rudder

Workflows

Rudder

Workflows

Rudder

Workflows

Rudder

Workflows

Rudder

Workflows

Rudder

WorkflowsTrackinginDBparallelzuAuditlogs

Unterbaugit(wiemeistens:)

PerAPIverwaltbar

ValidatorRolekannkomplettanderesTeamsein

Lektion:Oberflächezählt,derUnterbaureichtnicht.

Rudder

Properties

FremddateninRudderladen

PerAPIverwaltbar

InGruppenverwendbar,baldauchimCodeselbst

CMDB-Status

Anwendungsteams

Freeze/offenfürÄnderungen

Rudder

Properties

Rudder

Searches

ApacheProzesse,dielaufen

Cross-OS

ApacheInstallationen,dienicht laufen

Rudder

Searches

Rudder

Searches

Rudder

Audit logs

Rudder

CFE Integration

Rudder kommtnormalmitCFEngine3Community-Version

Normation,dieFirmahinterRudder istCFEngine Partnerund hat

eigeneC-Entwickler,hilftsehrfürschnelleWorkaroundsbei

CFEngine Bugs

Rudder

Ansible Plugin

Rudder

Ansible Plugin

ÜbergabepunktConfigurationManagementgen

Orchestration

24x7managementvsadhoc/jenkins

Kannauchgather_facts:noundgenauereGruppen

liefern

Rudder

TakeawayIchkannPolicyrichtigdesignen

GUIundCLIhelfenbeimPolicynachvollziehen

Rudderistbequemfürmich

DurchReportinghabeichmehrEinsichten

Rudder

Links!www.rudder-project.org

https://www.rudder-project.org/rudder-api-doc/

https://www.rudder-project.org/doc-

3.2/_installation.html

freenode:#rudder

@FlorianHeigl1

Rudder

Florian Heigl

_mobil +49 (0) 175 120 25 28_mail [email protected]