SlideShare a Scribd company logo
AUTOMATION USING
PUPPET
By Fahmie Bahweris
WHY AUTOMATION IS IMPORTANT?
• Process is time consuming.
• Process is complex or multiple steps.
• Human are error prone.
• Configuration not consistent or standardized.
• Task can be handled by junior system admin.
• Provide tools to non-technical people to handle.
• Infrastructure become agile and can change rapidly according to demand.
WHY PUPPET?
IT automation for discovering, configuring, and managing your infrastructure
• Productivity / Efficiency - IT management solutions deliver efficiencies that
enables 100s and even 1000s of nodes per sysadmin.
• Responsiveness To Business Needs - dramatically reduced the time it takes them
to deliver applications into production.
• Eliminate Configuration Drift - your nodes remain in the state you set for them,
dramatically improving service availability, reliability, scalability, and performance.
• Visibility - provides rich data sets not only of infrastructure configuration but also
of any changes to that infrastructure.
• Some things that Puppet Can Do as example:
• Wipe and reinstall two servers in 40 minutes - that would have taken close to a full day
of work without puppet
• Set up 3 new database servers in 52 minutes completely from scratch - that would have
taken well over a day without puppet
PUPPET COMPONENT
• Core Services
• Puppet Agent
• Puppet Master
• Puppet Server
• Puppet Apply
• Administrative Tools
• Puppet Cert
• Puppet Module
• Puppet Resource
• Puppet Config
PUPPET ARCHITECTURE
BASIC AGENT CONFIG
• /etc/puppet/puppet.conf
• Server value
• Report = true
• Retrieve ad-hoc catalog:
# puppet agent -t
LANGUAGE BASIC
• file: The resource type
• ntp.conf: The title
• path: An attribute
• '/etc/ntp.conf': A value; in this case, a string
• template('ntp/ntp.conf'): A function call that returns
a value; in this case, the template function, with the
name of a template in a module as its argument
LANGUAGE BASIC (CONT.)
• Two resources using the before and subscribe
relationship metaparameters (which accept
resource references).
• before - Causes a resource to be applied
before the target resource.
• subscribe - Causes a resource to be applied
after the target resource. The subscribing
resource will refresh if the target resource
changes.
LANGUAGE BASIC (CONT.)
• You can create relationships between two
resources or groups of resources using the ->
and ~> operators.
• -> (ordering arrow)
Causes the resource on the left to be applied
before the resource on the right. Written with
a hyphen and a greater-than sign.
• ~> (notification arrow)
Causes the resource on the left to be applied
first, and sends a refresh event to the resource
on the right if the left resource changes.
Written with a tilde and a greater-than sign.
LANGUAGE BASIC (CONT.)
• Variable names are prefixed with a $ (dollar
sign).
• Values are assigned to them with the = (equal
sign) assignment operator.
• Any value of any of the normal (i.e. non-regex)
data types can be assigned to a variable
(including array and hash-key).
• Can append to the received value with the +=
(plus-equals) appending assignment operator.
LANGUAGE BASIC (CONT.)
• A class definition, which makes a class available for
later use.
• three different ways of declaring class: include
function, require function, and the resource-like syntax
LANGUAGE BASIC (CONT.)
• The general form of a node definition is:
• The node keyword
• The name of the node
• An opening curly brace
• Any mixture of class declarations, variables,
resource declarations, collectors, conditional
statements, chaining relationships, and functions
• A closing curly brace
• Regular expressions (regexes) can be used as
node names.
• This is another method for writing a single node
statement that matches multiple nodes.
LANGUAGE BASIC (CONT.)
• “If” statements take a boolean condition and an arbitrary block of Puppet code, and will
only execute the block if the condition is true. They can optionally include elsif and else
clauses.
LANGUAGE BASIC (CONT.)
• Case statements choose one of several
blocks of arbitrary Puppet code to
execute. They take a control expression
and a list of cases and code blocks, and
will execute the first block whose case
value matches the control expression.
• Selector statements are similar to case
statements, but return a value instead of
executing a code block.
LANGUAGE BASIC (CONT.)
PUPPET RESOURCE
• Assist to list resources existing in the system.
• Common type of resources are package, service and user.
• Example of command:
# puppet resource package
# puppet resource service
# puppet resource user
# puppet resource yumrepo
FACTER
• collections of normalized system information used by Puppet.
• Information can be retrieved like, hostname, ip adress, cpu type, no. of cpu core,
memory size, OS family and many more. This facter information can be used for
conditional rules in puppet catalog.
• Command to retrieve system facts:
# facter
PUPPET MODULES & FORGE
• Modules are self-contained bundles of code and data.
• Write your own modules or you can download pre-built modules from the Puppet
Forge (https://forge.puppet.com/).
• Using modules:
• Modules are how Puppet finds the classes and defined types it can use.
• It automatically loads any class or defined type stored in its modules.
• To make a module available to Puppet, place it in one of the directories in Puppet’s
modulepath.
PUPPET MODULE
• Building your own puppet module:
# puppet module generate <USERNAME>-<MODULE NAME>
FOREMAN HOST ASSIGNING
• Managing puppet via foreman
FOREMAN HOST ASSIGNING (CONT.)
• Choose hostgroup to be assigned and then submit.
FOREMAN DIRECT PUPPET CLASS
ASSIGNMENT
FOREMAN IMPORT NEW PUPPET
CLASS
REFERENCES
• Official documentation of Puppet: https://docs.puppet.com/puppet/3.8/reference/index.html
• Puppet repository module: https://forge.puppet.com
• The foreman documentation: https://theforeman.org/documentation.html
• Installer of puppet can be found at: https://yum.puppetlabs.com/el/6/products/x86_64/ for
Redhat based,
https://apt.puppetlabs.com/ for debian based
and https://downloads.puppetlabs.com/windows/ for windows based.
• Slide from ”System Administration Automation” by Sharuzzaman Ahmat Raslan.
• Foreman and puppet classes by Norhafiz Yaacob.

More Related Content

What's hot

Apache SOLR in AEM 6
Apache SOLR in AEM 6Apache SOLR in AEM 6
Apache SOLR in AEM 6
Yash Mody
 
Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)
Erik Hatcher
 
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEMadaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
therealgaston
 
Solr 4
Solr 4Solr 4
Solr 4
Erik Hatcher
 
Python library
Python libraryPython library
Python library
ToniyaP1
 
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
Anusha Chickermane
 
JVM languages "flame wars"
JVM languages "flame wars"JVM languages "flame wars"
JVM languages "flame wars"
Gal Marder
 
Search at Twitter
Search at TwitterSearch at Twitter
Search at Twitter
lucenerevolution
 
Mule Cache Scope
Mule Cache ScopeMule Cache Scope
Mule Cache Scope
Ankush Sharma
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
DuraSpace
 
Scaling search in Oak with Solr
Scaling search in Oak with Solr Scaling search in Oak with Solr
Scaling search in Oak with Solr
Tommaso Teofili
 
Solr Black Belt Pre-conference
Solr Black Belt Pre-conferenceSolr Black Belt Pre-conference
Solr Black Belt Pre-conference
Erik Hatcher
 
Passing java arrays in oracle stored procedure from mule esb flow
Passing java arrays in oracle stored procedure from mule esb flowPassing java arrays in oracle stored procedure from mule esb flow
Passing java arrays in oracle stored procedure from mule esb flow
Priyobroto Ghosh (Mule ESB Certified)
 
Writing Galaxy Tools
Writing Galaxy ToolsWriting Galaxy Tools
Writing Galaxy Tools
pjacock
 
MuleSoft ESB scatter-gather and base64
MuleSoft ESB scatter-gather and base64MuleSoft ESB scatter-gather and base64
MuleSoft ESB scatter-gather and base64
akashdprajapati
 
Synthetic models
Synthetic modelsSynthetic models
Synthetic models
Zoran Nikolovski
 
DSpace 4.2 Transmission: Import/Export
DSpace 4.2 Transmission: Import/ExportDSpace 4.2 Transmission: Import/Export
DSpace 4.2 Transmission: Import/Export
DuraSpace
 
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
Perforce
 
Mule mel 5_tips
Mule mel 5_tipsMule mel 5_tips
Mule mel 5_tips
kunal vishe
 
Hive data migration (export/import)
Hive data migration (export/import)Hive data migration (export/import)
Hive data migration (export/import)
Bopyo Hong
 

What's hot (20)

Apache SOLR in AEM 6
Apache SOLR in AEM 6Apache SOLR in AEM 6
Apache SOLR in AEM 6
 
Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)Lucene's Latest (for Libraries)
Lucene's Latest (for Libraries)
 
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEMadaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
 
Solr 4
Solr 4Solr 4
Solr 4
 
Python library
Python libraryPython library
Python library
 
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
 
JVM languages "flame wars"
JVM languages "flame wars"JVM languages "flame wars"
JVM languages "flame wars"
 
Search at Twitter
Search at TwitterSearch at Twitter
Search at Twitter
 
Mule Cache Scope
Mule Cache ScopeMule Cache Scope
Mule Cache Scope
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
Scaling search in Oak with Solr
Scaling search in Oak with Solr Scaling search in Oak with Solr
Scaling search in Oak with Solr
 
Solr Black Belt Pre-conference
Solr Black Belt Pre-conferenceSolr Black Belt Pre-conference
Solr Black Belt Pre-conference
 
Passing java arrays in oracle stored procedure from mule esb flow
Passing java arrays in oracle stored procedure from mule esb flowPassing java arrays in oracle stored procedure from mule esb flow
Passing java arrays in oracle stored procedure from mule esb flow
 
Writing Galaxy Tools
Writing Galaxy ToolsWriting Galaxy Tools
Writing Galaxy Tools
 
MuleSoft ESB scatter-gather and base64
MuleSoft ESB scatter-gather and base64MuleSoft ESB scatter-gather and base64
MuleSoft ESB scatter-gather and base64
 
Synthetic models
Synthetic modelsSynthetic models
Synthetic models
 
DSpace 4.2 Transmission: Import/Export
DSpace 4.2 Transmission: Import/ExportDSpace 4.2 Transmission: Import/Export
DSpace 4.2 Transmission: Import/Export
 
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own[Nvidia] Extracting Depot Paths Into New Instances of Their Own
[Nvidia] Extracting Depot Paths Into New Instances of Their Own
 
Mule mel 5_tips
Mule mel 5_tipsMule mel 5_tips
Mule mel 5_tips
 
Hive data migration (export/import)
Hive data migration (export/import)Hive data migration (export/import)
Hive data migration (export/import)
 

Viewers also liked

Fotosíntesis
FotosíntesisFotosíntesis
Fotosíntesis
rociocudeno
 
康俪家广告计划
康俪家广告计划康俪家广告计划
康俪家广告计划Sean Song
 
Agua
AguaAgua
Presentacion ingenieria
Presentacion  ingenieriaPresentacion  ingenieria
Presentacion ingenieria
yiansa
 
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337Max reger sonate pour-clarinette-et-piano-op-49-no2-31337
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337joansoco
 
Slids
SlidsSlids
Slids
netinha8
 
Maxtelecom
MaxtelecomMaxtelecom
Maxtelecom
Milena Savcheva
 
Ardillitas
ArdillitasArdillitas
Ardillitas
ANDREAYENI
 
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
Frédéric Donier
 
Analisis data kualitatif
Analisis data kualitatifAnalisis data kualitatif
Analisis data kualitatif
M Ridho Taqwa
 
Css stuffs #2
Css   stuffs #2Css   stuffs #2
Css stuffs #2
Diego La Monica
 
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
Tecla
 
Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)
Afonso Gomes
 
Treball setmana santa
Treball setmana santaTreball setmana santa
Treball setmana santajllamasa
 
Aprender HTML (UFCD0152 e UFCD0153) v2
Aprender HTML (UFCD0152 e UFCD0153) v2Aprender HTML (UFCD0152 e UFCD0153) v2
Aprender HTML (UFCD0152 e UFCD0153) v2
Afonso Gomes
 
Tutorial do Polyvore por Bianca Holanda
Tutorial do Polyvore por Bianca HolandaTutorial do Polyvore por Bianca Holanda
Tutorial do Polyvore por Bianca Holanda
Turbotex
 
Automação Residencial com Python e Arduino - PySM 2015
Automação Residencial com Python e Arduino - PySM 2015Automação Residencial com Python e Arduino - PySM 2015
Automação Residencial com Python e Arduino - PySM 2015
Relsi Maron
 

Viewers also liked (20)

Fotosíntesis
FotosíntesisFotosíntesis
Fotosíntesis
 
康俪家广告计划
康俪家广告计划康俪家广告计划
康俪家广告计划
 
Agua
AguaAgua
Agua
 
Presentacion ingenieria
Presentacion  ingenieriaPresentacion  ingenieria
Presentacion ingenieria
 
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337Max reger sonate pour-clarinette-et-piano-op-49-no2-31337
Max reger sonate pour-clarinette-et-piano-op-49-no2-31337
 
Lup tjörn
Lup tjörnLup tjörn
Lup tjörn
 
Slids
SlidsSlids
Slids
 
Maxtelecom
MaxtelecomMaxtelecom
Maxtelecom
 
ภารกิจการเรียนรู้
ภารกิจการเรียนรู้ภารกิจการเรียนรู้
ภารกิจการเรียนรู้
 
Ardillitas
ArdillitasArdillitas
Ardillitas
 
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
Palestra Frédéric Donier - keynote speaker KM Brasil2008 - 29.08.08 inteligên...
 
Analisis data kualitatif
Analisis data kualitatifAnalisis data kualitatif
Analisis data kualitatif
 
Css stuffs #2
Css   stuffs #2Css   stuffs #2
Css stuffs #2
 
Nueva
NuevaNueva
Nueva
 
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
Digital Buy: Automatizzare la supply chain per garantire la soddisfazione del...
 
Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)Aprender PHP e mySQL (UFCD0155)
Aprender PHP e mySQL (UFCD0155)
 
Treball setmana santa
Treball setmana santaTreball setmana santa
Treball setmana santa
 
Aprender HTML (UFCD0152 e UFCD0153) v2
Aprender HTML (UFCD0152 e UFCD0153) v2Aprender HTML (UFCD0152 e UFCD0153) v2
Aprender HTML (UFCD0152 e UFCD0153) v2
 
Tutorial do Polyvore por Bianca Holanda
Tutorial do Polyvore por Bianca HolandaTutorial do Polyvore por Bianca Holanda
Tutorial do Polyvore por Bianca Holanda
 
Automação Residencial com Python e Arduino - PySM 2015
Automação Residencial com Python e Arduino - PySM 2015Automação Residencial com Python e Arduino - PySM 2015
Automação Residencial com Python e Arduino - PySM 2015
 

Similar to Automation using Puppet 3

20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
garrett honeycutt
 
Puppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutesPuppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutes
Alessandro Franceschi
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
Alessandro Franceschi
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
Shimi Bandiel
 
Cassandra
CassandraCassandra
Cassandra
exsuns
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
Harikrishnan C
 
Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014
Bryan Bende
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
Puppet
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...
Yury Bushmelev
 
Kafka zero to hero
Kafka zero to heroKafka zero to hero
Kafka zero to hero
Avi Levi
 
Apache Kafka - From zero to hero
Apache Kafka - From zero to heroApache Kafka - From zero to hero
Apache Kafka - From zero to hero
Apache Kafka TLV
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
Smitha Padmanabhan
 
Introduction to Design Patterns in Javascript
Introduction to Design Patterns in JavascriptIntroduction to Design Patterns in Javascript
Introduction to Design Patterns in Javascript
Santhosh Kumar Srinivasan
 
API-Testing-SOAPUI-1.pptx
API-Testing-SOAPUI-1.pptxAPI-Testing-SOAPUI-1.pptx
API-Testing-SOAPUI-1.pptx
amarnathdeo
 
Kubeflow.pptx
Kubeflow.pptxKubeflow.pptx
Kubeflow.pptx
dhaferbenali1
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
Oro Inc.
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Robert Nelson
 
Puppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsPuppet Keynote by Ralph Luchs
Puppet Keynote by Ralph Luchs
NETWAYS
 
Puppet quick start guide
Puppet quick start guidePuppet quick start guide
Puppet quick start guide
Suhan Dharmasuriya
 

Similar to Automation using Puppet 3 (20)

20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
 
Puppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutesPuppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutes
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
 
Cassandra
CassandraCassandra
Cassandra
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014Real-Time Inverted Search NYC ASLUG Oct 2014
Real-Time Inverted Search NYC ASLUG Oct 2014
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...
 
Kafka zero to hero
Kafka zero to heroKafka zero to hero
Kafka zero to hero
 
Apache Kafka - From zero to hero
Apache Kafka - From zero to heroApache Kafka - From zero to hero
Apache Kafka - From zero to hero
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
 
Introduction to Design Patterns in Javascript
Introduction to Design Patterns in JavascriptIntroduction to Design Patterns in Javascript
Introduction to Design Patterns in Javascript
 
API-Testing-SOAPUI-1.pptx
API-Testing-SOAPUI-1.pptxAPI-Testing-SOAPUI-1.pptx
API-Testing-SOAPUI-1.pptx
 
Kubeflow.pptx
Kubeflow.pptxKubeflow.pptx
Kubeflow.pptx
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
 
Puppet Keynote by Ralph Luchs
Puppet Keynote by Ralph LuchsPuppet Keynote by Ralph Luchs
Puppet Keynote by Ralph Luchs
 
Puppet quick start guide
Puppet quick start guidePuppet quick start guide
Puppet quick start guide
 

Recently uploaded

"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 

Recently uploaded (20)

"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 

Automation using Puppet 3

  • 2. WHY AUTOMATION IS IMPORTANT? • Process is time consuming. • Process is complex or multiple steps. • Human are error prone. • Configuration not consistent or standardized. • Task can be handled by junior system admin. • Provide tools to non-technical people to handle. • Infrastructure become agile and can change rapidly according to demand.
  • 3. WHY PUPPET? IT automation for discovering, configuring, and managing your infrastructure • Productivity / Efficiency - IT management solutions deliver efficiencies that enables 100s and even 1000s of nodes per sysadmin. • Responsiveness To Business Needs - dramatically reduced the time it takes them to deliver applications into production. • Eliminate Configuration Drift - your nodes remain in the state you set for them, dramatically improving service availability, reliability, scalability, and performance. • Visibility - provides rich data sets not only of infrastructure configuration but also of any changes to that infrastructure. • Some things that Puppet Can Do as example: • Wipe and reinstall two servers in 40 minutes - that would have taken close to a full day of work without puppet • Set up 3 new database servers in 52 minutes completely from scratch - that would have taken well over a day without puppet
  • 4. PUPPET COMPONENT • Core Services • Puppet Agent • Puppet Master • Puppet Server • Puppet Apply • Administrative Tools • Puppet Cert • Puppet Module • Puppet Resource • Puppet Config
  • 6. BASIC AGENT CONFIG • /etc/puppet/puppet.conf • Server value • Report = true • Retrieve ad-hoc catalog: # puppet agent -t
  • 7. LANGUAGE BASIC • file: The resource type • ntp.conf: The title • path: An attribute • '/etc/ntp.conf': A value; in this case, a string • template('ntp/ntp.conf'): A function call that returns a value; in this case, the template function, with the name of a template in a module as its argument
  • 8. LANGUAGE BASIC (CONT.) • Two resources using the before and subscribe relationship metaparameters (which accept resource references). • before - Causes a resource to be applied before the target resource. • subscribe - Causes a resource to be applied after the target resource. The subscribing resource will refresh if the target resource changes.
  • 9. LANGUAGE BASIC (CONT.) • You can create relationships between two resources or groups of resources using the -> and ~> operators. • -> (ordering arrow) Causes the resource on the left to be applied before the resource on the right. Written with a hyphen and a greater-than sign. • ~> (notification arrow) Causes the resource on the left to be applied first, and sends a refresh event to the resource on the right if the left resource changes. Written with a tilde and a greater-than sign.
  • 10. LANGUAGE BASIC (CONT.) • Variable names are prefixed with a $ (dollar sign). • Values are assigned to them with the = (equal sign) assignment operator. • Any value of any of the normal (i.e. non-regex) data types can be assigned to a variable (including array and hash-key). • Can append to the received value with the += (plus-equals) appending assignment operator.
  • 11. LANGUAGE BASIC (CONT.) • A class definition, which makes a class available for later use. • three different ways of declaring class: include function, require function, and the resource-like syntax
  • 12. LANGUAGE BASIC (CONT.) • The general form of a node definition is: • The node keyword • The name of the node • An opening curly brace • Any mixture of class declarations, variables, resource declarations, collectors, conditional statements, chaining relationships, and functions • A closing curly brace • Regular expressions (regexes) can be used as node names. • This is another method for writing a single node statement that matches multiple nodes.
  • 13. LANGUAGE BASIC (CONT.) • “If” statements take a boolean condition and an arbitrary block of Puppet code, and will only execute the block if the condition is true. They can optionally include elsif and else clauses.
  • 14. LANGUAGE BASIC (CONT.) • Case statements choose one of several blocks of arbitrary Puppet code to execute. They take a control expression and a list of cases and code blocks, and will execute the first block whose case value matches the control expression. • Selector statements are similar to case statements, but return a value instead of executing a code block.
  • 16. PUPPET RESOURCE • Assist to list resources existing in the system. • Common type of resources are package, service and user. • Example of command: # puppet resource package # puppet resource service # puppet resource user # puppet resource yumrepo
  • 17. FACTER • collections of normalized system information used by Puppet. • Information can be retrieved like, hostname, ip adress, cpu type, no. of cpu core, memory size, OS family and many more. This facter information can be used for conditional rules in puppet catalog. • Command to retrieve system facts: # facter
  • 18. PUPPET MODULES & FORGE • Modules are self-contained bundles of code and data. • Write your own modules or you can download pre-built modules from the Puppet Forge (https://forge.puppet.com/). • Using modules: • Modules are how Puppet finds the classes and defined types it can use. • It automatically loads any class or defined type stored in its modules. • To make a module available to Puppet, place it in one of the directories in Puppet’s modulepath.
  • 19. PUPPET MODULE • Building your own puppet module: # puppet module generate <USERNAME>-<MODULE NAME>
  • 20. FOREMAN HOST ASSIGNING • Managing puppet via foreman
  • 21. FOREMAN HOST ASSIGNING (CONT.) • Choose hostgroup to be assigned and then submit.
  • 22. FOREMAN DIRECT PUPPET CLASS ASSIGNMENT
  • 23. FOREMAN IMPORT NEW PUPPET CLASS
  • 24. REFERENCES • Official documentation of Puppet: https://docs.puppet.com/puppet/3.8/reference/index.html • Puppet repository module: https://forge.puppet.com • The foreman documentation: https://theforeman.org/documentation.html • Installer of puppet can be found at: https://yum.puppetlabs.com/el/6/products/x86_64/ for Redhat based, https://apt.puppetlabs.com/ for debian based and https://downloads.puppetlabs.com/windows/ for windows based. • Slide from ”System Administration Automation” by Sharuzzaman Ahmat Raslan. • Foreman and puppet classes by Norhafiz Yaacob.