+ All Categories
Home > Technology > Node Classifier Fundamentals - PuppetConf 2014

Node Classifier Fundamentals - PuppetConf 2014

Date post: 22-Jun-2015
Category:
Upload: puppet-labs
View: 552 times
Download: 0 times
Share this document with a friend
Description:
Node Classifier Fundamentals - Dan Lidral-Porter, Puppet Labs
Popular Tags:
27
Presented by Introducing the Node Classifier Dan Lidral-Porter Software Engineer | Puppet Labs @aperiodic Node Manager
Transcript
Page 1: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Introducing theNode Classifier

Dan Lidral-PorterSoftware Engineer | Puppet Labs@aperiodic

Node Manager

Page 2: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Webservers

The Node Hierarchy

Debian Boxes

Default

Monitoring

Page 3: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Classification FieldsInherited FieldsValidated Fields

{id: “8fced701-3e3b-44c…”, name: “Spaceships”, parent: “00000000-0000…”, rule: [“=”, [“fact”,…] …], environment: “space”, variables: { “fleet”: “Starfleet” }, classes: { “warp-core”: {

“maximum-warp”: 9.7 } }}

environment: “space”, variables: { “fleet”: “Starfleet” }, classes: { “warp-core”: {

“maximum-warp”: 9.7 }

rule: [“=”, [“fact”,…] …],

variables: { “fleet”: “Starfleet” }, classes: { “warp-core”: {

“maximum-warp”: 9.7 } }

environment: “space”,

classes: { “warp-core”: {

“maximum-warp”: 9.7 } }

Node Groups

Page 4: Node Classifier Fundamentals - PuppetConf 2014

Presented by

“pressure-hull”: {}

classes: { “warp-drive”: {}, }

“pressure-hull”: {}

classes: { }

“pressure-hull”: {}

Spaceships

SpaceDwellings

Group Inheritance - Classes

Page 5: Node Classifier Fundamentals - PuppetConf 2014

Presented by

classes: { “pressure-hull”: { “decks”: 40,

}}

“pressure-hull”: { “layers”: 3 }

“pressure-hull”: { “layers”: 3 }

classes: {

}

“pressure-hull”: { “layers”: 3 }

Spaceships

SpaceDwellings

Group Inheritance - Classes

Page 6: Node Classifier Fundamentals - PuppetConf 2014

Presented by

“pressure-hull”: { “layers”: 3 }

classes: { “pressure-hull”: { “decks”: 40, “layers”: 3 }}

“pressure-hull”: { “layers”: 3 }

classes: {

“pressure-hull”: { “decks”: 10,

}}

StealthSpaceships

Spaceships

Group Inheritance - Classes

Page 7: Node Classifier Fundamentals - PuppetConf 2014

Presented by

variables: { “livery”: “United Earth”, }

“fleet”: “Starfleet”

variables: { “livery”: “United Federation of Planets”, “fleet”: “Starfleet”}

“fleet”: “Starfleet”

United Earth Spaceships

StarfleetSpaceships

Group Inheritance - Variables

Page 8: Node Classifier Fundamentals - PuppetConf 2014

Presented by

[“and” [“=” [“fact” “hull”] “pressurized”]

rule: [“=” [“fact” “engine”] “warp drive”]

rule: [“=” [“fact” “hull”] “pressurized”]

Warp Spaceships

Spaceships

Group Inheritance - Rules

Page 9: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Warp Spaceships

Spaceships

Group Inheritance - Nodes

Default

⊃ ⊃

Page 10: Node Classifier Fundamentals - PuppetConf 2014

Presented by

WebserversDebian Boxes

Default

Monitoring

Page 11: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Page 12: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Node Check-In Time

Page 13: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Composition Steps

●● Compose

● Find Leaves

if no conflicts!

● Match by Rules

● Inherit

Page 14: Node Classifier Fundamentals - PuppetConf 2014

Presented by

classes: { “pressure-hull”: { “layers”: 3, “decks”: 10 }}

classes: { “pressure-hull”: { “layers”: 3, “decks”: 40 }}

StealthSpaceshipsSpaceships

Composition Conflicts

Page 15: Node Classifier Fundamentals - PuppetConf 2014

Presented by

TomcatServers

Blue AppTomcatServers

Red App Tomcat Servers

classes: { tomcat: { threads: 4 }}

classes: { tomcat: { threads: 2 }}

threads: 4

threads: 2

Page 16: Node Classifier Fundamentals - PuppetConf 2014

Presented by

TomcatServers

Blue AppTomcatServers

Red App Tomcat Servers

classes: { tomcat: { threads: 4 }}

classes: { tomcat: { threads: 2 }}

Red App Tomcat Testing Servers

classes: { tomcat: { threads: 2 }}

threads: 2

threads: 2

Page 17: Node Classifier Fundamentals - PuppetConf 2014

Presented by

TomcatServers

Blue AppProduction

Default

Red App Production

env: “production”,env_trumps: true

Red AppStaging

Blue AppStaging

env: “production”,env_trumps: true

TomcatServers

env: “staging”,env_trumps: true

env: “staging”,env_trumps: true

Page 18: Node Classifier Fundamentals - PuppetConf 2014

Presented by

/v1/classified/nodes/:name/explanation

● matches

● leaves

● inherited

● merged or

● conflicts

{

}

Page 19: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Keep Functionality Separate

Page 20: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Role-BasedAccess Control

Page 21: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Page 22: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Permissions● View

● Edit Classification

● Set Environment

● Edit Child Rules

● Create, Delete, & Edit Children

Page 23: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Invisible

Visible

Hidden Valuesclasses: { postgres: { password: “secret” }}

classes: { postgres: { password: “redacted” }}

Page 24: Node Classifier Fundamentals - PuppetConf 2014

Presented by

{id: “8fced701-3e3b-44c…”, name: “Spaceships”, parent: “00000000-0000…”, rule: [“=”, [“fact”,…] …], environment: “space”, variables: { “fleet”: “Starfleet” }, classes: { “warp-core”: {

“maximum-warp”: 9.7 } }}

Change Functionality● View

● Edit Classification

{ name: “Spaceships”,

variables: { “fleet”: “Starfleet” }, classes: { “warp-core”: {

“maximum-warp”: 9.7 } }}

parent: “00000000-0000…”, rule: [“=”, [“fact”,…] …], environment: “space”,

Page 25: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Prescribed Subtree

View, Edit Classification,and Edit Child Rules

Sweet AppWebservers

Sweet AppStaging

Webservers

Sweet AppProduction

Webservers

Page 26: Node Classifier Fundamentals - PuppetConf 2014

Presented by

Freeform Subtree

View, Edit Classification, and Create Delete & Edit

Children

Sweet AppWebservers

Page 27: Node Classifier Fundamentals - PuppetConf 2014

Presented by


Recommended