SlideShare a Scribd company logo
1 of 15
Download to read offline
Essential application management
with Tiny Puppet
Presented by Alessandro Franceschi @alvagante

Founder and CTO example42 GmbH

at #cfgmgmtcamp 2016
1
not only files...
• CfgMgmt is not only about Files
• We (try to) manage the entire infrastructure
• There are modules for everything
2
but also files
• Still sometimes we just have to manage packages,
services and files
• And we do quick local modules, reinventing simple
wheels
• Or we search for public ones, sometimes overkill for our
needs, or not compatible, or need fixes
• Different modules, different usage patterns, conventions,
dependencies
3
meet Tiny Puppet
• A Puppet module

puppet module install example42/tp
• It let us manage packages, services, and files

in the way we want
• It supports potentially any application

on any operating systems
• It let us concentrate on

how to shape our configurations
4
tp usage: install an application
• Install an application and start its service
tp::install { 'nginx': }
• Tiny Puppet takes care of dependencies and resources'
names on different Operating Systems
5
tp usage: manage files
• Manage the main configuration file with a erb template
based on a custom options hash
tp::conf { 'nginx':
template => 'site/nginx/nginx.conf.erb',
options_hash => hiera_hash('nginx_options',
}
6
tp usage: manage files, more
• Manage a virtual host , this time using an epp template
and a different base dir
tp::conf { 'nginx::example.com.conf':
base_dir => 'confd',
epp_template => 'site/nginx/vhost.epp',
options_hash => $vhost_params,
}
7
tp usage: manage dirs
• Manage entire directories, from fileserver, vcs repos...
tp::dir { 'nginx::www.example42.com:
base_dir => 'data',
source => 'git@example42.com/site/',
vcsrepo => 'git',
}
8
Essential testing
• To be able to test an app (alternatives)
tp::test { 'redis': }

tp::install { 'redis':
test_enable => true,

test_template => 'site/test/nginx.erb',
}
• This creates the script /etc/tp/test/redis

which can be used for integration tests, monitoring...
9
Essential acceptance tests
• TP be able to test an app (alternatives)


git clone https://github.com/example42/tp-acceptance
cd tp-acceptance
r10k puppetfile install
vagrant status
# Test munin on all supported OS
bin/test_app.sh munin all acceptance
# Test all apps on a specific OS
bin/test_app.sh all Centos7 acceptance
# Test all appas on all supporte OS

bin/test_app.sh all all acceptance
Compatibility Matrix
10
It's all about Tiny Data
• Data to manage apps on different OS is on separated tinydata
module
• Here we have a directory for each supported application where
the relevant data, for different OS, is stored in YAML files with an
Hiera-like approach:
---
redis::settings:
package_name: 'redis'
service_name: 'redis'
config_file_path: '/etc/redis/redis.conf'
config_dir_path: '/etc/redis'
tcp_port: '6379'
pid_file_path: '/var/run/redis.pid'
log_file_path: '/var/log/redis.log'
log_dir_path: ''
process_user: 'redis'
process_group: 'redis'
11
Usage cases
• When we have to configure applications that

we know how to configure
• In glue code, profiles, wrappers...
• Tiny Puppet can coexist with component modules and
replace or complement them (stdlib is the only
dependency)
12
When is better a dedicated module
• When application setup is elaborated or complex
• When there is more to manage than just packages,
services and files
• When it hides the complexity of the application
configuration
13
Future steps
• New defines based on the same Tiny Data
tp::instance { 'memcached': }
tp::monitor { 'redis': }
tp::firewall { 'redis': }
tp::netinstall { 'rails': }
• Use Tiny data in other tools (tiny-ansible, tiny-chef...?)
14
Where
• Tiny Puppet website: http://www.tiny-puppet.com
• Tp module: https://github.com/example42/puppet-tp/
• Tiny Data module: https://github.com/example42/tinydata/
• TP Playground: https://github.com/example42/tp-playground
• TP Acceptance tests: https://github.com/example42/tp-acceptance
• Puppet Forge example42/tp
15

More Related Content

What's hot

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppet
Habeeb Rahman
 

What's hot (20)

Intro to-puppet
Intro to-puppetIntro to-puppet
Intro to-puppet
 
Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
Our Puppet Story (Linuxtag 2014)
Our Puppet Story (Linuxtag 2014)Our Puppet Story (Linuxtag 2014)
Our Puppet Story (Linuxtag 2014)
 
Introduction to Puppet Scripting
Introduction to Puppet ScriptingIntroduction to Puppet Scripting
Introduction to Puppet Scripting
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Puppet - Configuration Management Made Eas(ier)
Puppet - Configuration Management Made Eas(ier)Puppet - Configuration Management Made Eas(ier)
Puppet - Configuration Management Made Eas(ier)
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
 
Scalable Systems Management with Puppet
Scalable Systems Management with PuppetScalable Systems Management with Puppet
Scalable Systems Management with Puppet
 
Pro Puppet
Pro PuppetPro Puppet
Pro Puppet
 
Puppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesPuppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in Modules
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
 
Puppetizing Your Organization
Puppetizing Your OrganizationPuppetizing Your Organization
Puppetizing Your Organization
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppet
 
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test EverythingPortland PUG April 2014: Beaker 101: Acceptance Test Everything
Portland PUG April 2014: Beaker 101: Acceptance Test Everything
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Auto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag StyleAuto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag Style
 

Viewers also liked

Older than Humanity! - Gale Crater | Mars
Older than Humanity! - Gale Crater | MarsOlder than Humanity! - Gale Crater | Mars
Older than Humanity! - Gale Crater | Mars
Freyk John Geeris
 
151110 - Global Environmental Management
151110 - Global Environmental Management151110 - Global Environmental Management
151110 - Global Environmental Management
Daniel Bartel
 
RESUME OF AJOY 2015 update april 2016
RESUME OF AJOY  2015 update april 2016RESUME OF AJOY  2015 update april 2016
RESUME OF AJOY 2015 update april 2016
ajoy das
 

Viewers also liked (19)

Running Puppet In Stand Alone Mode
Running Puppet In Stand Alone ModeRunning Puppet In Stand Alone Mode
Running Puppet In Stand Alone Mode
 
Un-broken Logging - TechnologyUG - Leeds - Matthew Skelton
Un-broken Logging - TechnologyUG - Leeds - Matthew SkeltonUn-broken Logging - TechnologyUG - Leeds - Matthew Skelton
Un-broken Logging - TechnologyUG - Leeds - Matthew Skelton
 
Older than Humanity! - Gale Crater | Mars
Older than Humanity! - Gale Crater | MarsOlder than Humanity! - Gale Crater | Mars
Older than Humanity! - Gale Crater | Mars
 
Co vše "umí" otázka
Co vše "umí" otázkaCo vše "umí" otázka
Co vše "umí" otázka
 
Harmodius&Aristogeiton
Harmodius&AristogeitonHarmodius&Aristogeiton
Harmodius&Aristogeiton
 
Wikipedia Diversity
Wikipedia Diversity Wikipedia Diversity
Wikipedia Diversity
 
151110 - Global Environmental Management
151110 - Global Environmental Management151110 - Global Environmental Management
151110 - Global Environmental Management
 
Abstract IRAP
Abstract  IRAPAbstract  IRAP
Abstract IRAP
 
Introduction to Configuration Management
Introduction to Configuration ManagementIntroduction to Configuration Management
Introduction to Configuration Management
 
RESUME OF AJOY 2015 update april 2016
RESUME OF AJOY  2015 update april 2016RESUME OF AJOY  2015 update april 2016
RESUME OF AJOY 2015 update april 2016
 
Green and Healthy Buildings:Energy and IEQ Factors for High Performance Results
Green and Healthy Buildings:Energy and IEQ Factors for High Performance ResultsGreen and Healthy Buildings:Energy and IEQ Factors for High Performance Results
Green and Healthy Buildings:Energy and IEQ Factors for High Performance Results
 
Roman triclinium presentation.
Roman triclinium presentation.Roman triclinium presentation.
Roman triclinium presentation.
 
Skyeng Бесплатный вебинар "Как отдыхать на 15% дешевле со знанием английского...
Skyeng Бесплатный вебинар "Как отдыхать на 15% дешевле со знанием английского...Skyeng Бесплатный вебинар "Как отдыхать на 15% дешевле со знанием английского...
Skyeng Бесплатный вебинар "Как отдыхать на 15% дешевле со знанием английского...
 
Apache con big data 2015 - Data Science from the trenches
Apache con big data 2015 - Data Science from the trenchesApache con big data 2015 - Data Science from the trenches
Apache con big data 2015 - Data Science from the trenches
 
Open Badges for Individuals and Organisations
Open Badges for Individuals and Organisations Open Badges for Individuals and Organisations
Open Badges for Individuals and Organisations
 
Doing Business in Colombia 2015
Doing Business in Colombia 2015Doing Business in Colombia 2015
Doing Business in Colombia 2015
 
BBVA: Global Risk Management - UBS European Conference 2015
BBVA: Global Risk Management - UBS European Conference 2015BBVA: Global Risk Management - UBS European Conference 2015
BBVA: Global Risk Management - UBS European Conference 2015
 
Βασικές περίοδοι του αρχαίου ελληνικού κόσμου - Ιστορία του Αρχαίου Κόσμου Α'...
Βασικές περίοδοι του αρχαίου ελληνικού κόσμου - Ιστορία του Αρχαίου Κόσμου Α'...Βασικές περίοδοι του αρχαίου ελληνικού κόσμου - Ιστορία του Αρχαίου Κόσμου Α'...
Βασικές περίοδοι του αρχαίου ελληνικού κόσμου - Ιστορία του Αρχαίου Κόσμου Α'...
 
Roles and Responsibility of Community Health Nurse
Roles and Responsibility of Community Health NurseRoles and Responsibility of Community Health Nurse
Roles and Responsibility of Community Health Nurse
 

Similar to Essential applications management with Tiny Puppet

Similar to Essential applications management with Tiny Puppet (20)

Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!Tiny Puppet Can Install Everything. Prove me wrong!
Tiny Puppet Can Install Everything. Prove me wrong!
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Wissbi osdc pdf
Wissbi osdc pdfWissbi osdc pdf
Wissbi osdc pdf
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOS
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suite
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Devops
DevopsDevops
Devops
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Managing Postgres with Ansible
Managing Postgres with AnsibleManaging Postgres with Ansible
Managing Postgres with Ansible
 
Ansible at FOSDEM (Ansible Dublin, 2016)
Ansible at FOSDEM (Ansible Dublin, 2016)Ansible at FOSDEM (Ansible Dublin, 2016)
Ansible at FOSDEM (Ansible Dublin, 2016)
 
Creating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with ChaperoneCreating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with Chaperone
 
Microservices
MicroservicesMicroservices
Microservices
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
 
Twelve Factor App @ PHPCon 2015
Twelve Factor App @ PHPCon 2015Twelve Factor App @ PHPCon 2015
Twelve Factor App @ PHPCon 2015
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
 
Ansible.pdf
Ansible.pdfAnsible.pdf
Ansible.pdf
 

More from Alessandro Franceschi

More from Alessandro Franceschi (13)

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
 
DevOps - Evoluzione della specie - DevOps Heroes.pdf
DevOps - Evoluzione della specie - DevOps Heroes.pdfDevOps - Evoluzione della specie - DevOps Heroes.pdf
DevOps - Evoluzione della specie - DevOps Heroes.pdf
 
ReUse Your (Puppet) Modules!
ReUse Your (Puppet) Modules!ReUse Your (Puppet) Modules!
ReUse Your (Puppet) Modules!
 
Ten years of [Puppet] installations. What now?
Ten years of [Puppet] installations. What now?Ten years of [Puppet] installations. What now?
Ten years of [Puppet] installations. What now?
 
Puppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitPuppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction Kit
 
Raise the bar! Reloaded
Raise the bar! ReloadedRaise the bar! Reloaded
Raise the bar! Reloaded
 
Raise the bar!
Raise the bar!Raise the bar!
Raise the bar!
 
Anatomy of a reusable module
Anatomy of a reusable moduleAnatomy of a reusable module
Anatomy of a reusable module
 
Puppet modules for Fun and Profit
Puppet modules for Fun and ProfitPuppet modules for Fun and Profit
Puppet modules for Fun and Profit
 
Puppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachPuppet modules: An Holistic Approach
Puppet modules: An Holistic Approach
 
Spaghetti devops
Spaghetti devopsSpaghetti devops
Spaghetti devops
 
Puppi. Puppet strings to the shell
Puppi. Puppet strings to the shellPuppi. Puppet strings to the shell
Puppi. Puppet strings to the shell
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
 

Recently uploaded

一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理
AS
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
AS
 
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
AS
 
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
AS
 
一比一原版帝国理工学院毕业证如何办理
一比一原版帝国理工学院毕业证如何办理一比一原版帝国理工学院毕业证如何办理
一比一原版帝国理工学院毕业证如何办理
F
 
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
AS
 
一比一原版澳大利亚迪肯大学毕业证如何办理
一比一原版澳大利亚迪肯大学毕业证如何办理一比一原版澳大利亚迪肯大学毕业证如何办理
一比一原版澳大利亚迪肯大学毕业证如何办理
SS
 
一比一原版贝德福特大学毕业证学位证书
一比一原版贝德福特大学毕业证学位证书一比一原版贝德福特大学毕业证学位证书
一比一原版贝德福特大学毕业证学位证书
F
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
F
 
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
AS
 
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
ayvbos
 

Recently uploaded (20)

Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理一比一原版英国格林多大学毕业证如何办理
一比一原版英国格林多大学毕业证如何办理
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
一比一原版(毕业证书)新西兰怀特克利夫艺术设计学院毕业证原件一模一样
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
一比一定制(Waikato毕业证书)新西兰怀卡托大学毕业证学位证书
 
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
一比一原版(毕业证书)新加坡南洋理工学院毕业证原件一模一样
 
一比一原版帝国理工学院毕业证如何办理
一比一原版帝国理工学院毕业证如何办理一比一原版帝国理工学院毕业证如何办理
一比一原版帝国理工学院毕业证如何办理
 
Washington Football Commanders Redskins Feathers Shirt
Washington Football Commanders Redskins Feathers ShirtWashington Football Commanders Redskins Feathers Shirt
Washington Football Commanders Redskins Feathers Shirt
 
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
一比一原版(Wintec毕业证书)新西兰怀卡托理工学院毕业证原件一模一样
 
一比一原版澳大利亚迪肯大学毕业证如何办理
一比一原版澳大利亚迪肯大学毕业证如何办理一比一原版澳大利亚迪肯大学毕业证如何办理
一比一原版澳大利亚迪肯大学毕业证如何办理
 
一比一原版贝德福特大学毕业证学位证书
一比一原版贝德福特大学毕业证学位证书一比一原版贝德福特大学毕业证学位证书
一比一原版贝德福特大学毕业证学位证书
 
Loker Pemandu Lagu LC Semarang 085746015303
Loker Pemandu Lagu LC Semarang 085746015303Loker Pemandu Lagu LC Semarang 085746015303
Loker Pemandu Lagu LC Semarang 085746015303
 
Abortion Pills In Jeddah+966572737505 & Get cytotec Jeddah
Abortion Pills In Jeddah+966572737505 & Get cytotec JeddahAbortion Pills In Jeddah+966572737505 & Get cytotec Jeddah
Abortion Pills In Jeddah+966572737505 & Get cytotec Jeddah
 
一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理一比一原版奥兹学院毕业证如何办理
一比一原版奥兹学院毕业证如何办理
 
HUMANIZE YOUR BRAND - FREE E-WORKBOOK Download Now
HUMANIZE YOUR BRAND - FREE E-WORKBOOK Download NowHUMANIZE YOUR BRAND - FREE E-WORKBOOK Download Now
HUMANIZE YOUR BRAND - FREE E-WORKBOOK Download Now
 
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
一比一原版(Polytechnic毕业证书)新加坡理工学院毕业证原件一模一样
 
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
一比一原版(USYD毕业证书)悉尼大学毕业证原件一模一样
 
APNIC Updates presented by Paul Wilson at CaribNOG 27
APNIC Updates presented by Paul Wilson at  CaribNOG 27APNIC Updates presented by Paul Wilson at  CaribNOG 27
APNIC Updates presented by Paul Wilson at CaribNOG 27
 

Essential applications management with Tiny Puppet

  • 1. Essential application management with Tiny Puppet Presented by Alessandro Franceschi @alvagante
 Founder and CTO example42 GmbH at #cfgmgmtcamp 2016 1
  • 2. not only files... • CfgMgmt is not only about Files • We (try to) manage the entire infrastructure • There are modules for everything 2
  • 3. but also files • Still sometimes we just have to manage packages, services and files • And we do quick local modules, reinventing simple wheels • Or we search for public ones, sometimes overkill for our needs, or not compatible, or need fixes • Different modules, different usage patterns, conventions, dependencies 3
  • 4. meet Tiny Puppet • A Puppet module
 puppet module install example42/tp • It let us manage packages, services, and files
 in the way we want • It supports potentially any application
 on any operating systems • It let us concentrate on
 how to shape our configurations 4
  • 5. tp usage: install an application • Install an application and start its service tp::install { 'nginx': } • Tiny Puppet takes care of dependencies and resources' names on different Operating Systems 5
  • 6. tp usage: manage files • Manage the main configuration file with a erb template based on a custom options hash tp::conf { 'nginx': template => 'site/nginx/nginx.conf.erb', options_hash => hiera_hash('nginx_options', } 6
  • 7. tp usage: manage files, more • Manage a virtual host , this time using an epp template and a different base dir tp::conf { 'nginx::example.com.conf': base_dir => 'confd', epp_template => 'site/nginx/vhost.epp', options_hash => $vhost_params, } 7
  • 8. tp usage: manage dirs • Manage entire directories, from fileserver, vcs repos... tp::dir { 'nginx::www.example42.com: base_dir => 'data', source => 'git@example42.com/site/', vcsrepo => 'git', } 8
  • 9. Essential testing • To be able to test an app (alternatives) tp::test { 'redis': }
 tp::install { 'redis': test_enable => true,
 test_template => 'site/test/nginx.erb', } • This creates the script /etc/tp/test/redis
 which can be used for integration tests, monitoring... 9
  • 10. Essential acceptance tests • TP be able to test an app (alternatives) 
 git clone https://github.com/example42/tp-acceptance cd tp-acceptance r10k puppetfile install vagrant status # Test munin on all supported OS bin/test_app.sh munin all acceptance # Test all apps on a specific OS bin/test_app.sh all Centos7 acceptance # Test all appas on all supporte OS
 bin/test_app.sh all all acceptance Compatibility Matrix 10
  • 11. It's all about Tiny Data • Data to manage apps on different OS is on separated tinydata module • Here we have a directory for each supported application where the relevant data, for different OS, is stored in YAML files with an Hiera-like approach: --- redis::settings: package_name: 'redis' service_name: 'redis' config_file_path: '/etc/redis/redis.conf' config_dir_path: '/etc/redis' tcp_port: '6379' pid_file_path: '/var/run/redis.pid' log_file_path: '/var/log/redis.log' log_dir_path: '' process_user: 'redis' process_group: 'redis' 11
  • 12. Usage cases • When we have to configure applications that
 we know how to configure • In glue code, profiles, wrappers... • Tiny Puppet can coexist with component modules and replace or complement them (stdlib is the only dependency) 12
  • 13. When is better a dedicated module • When application setup is elaborated or complex • When there is more to manage than just packages, services and files • When it hides the complexity of the application configuration 13
  • 14. Future steps • New defines based on the same Tiny Data tp::instance { 'memcached': } tp::monitor { 'redis': } tp::firewall { 'redis': } tp::netinstall { 'rails': } • Use Tiny data in other tools (tiny-ansible, tiny-chef...?) 14
  • 15. Where • Tiny Puppet website: http://www.tiny-puppet.com • Tp module: https://github.com/example42/puppet-tp/ • Tiny Data module: https://github.com/example42/tinydata/ • TP Playground: https://github.com/example42/tp-playground • TP Acceptance tests: https://github.com/example42/tp-acceptance • Puppet Forge example42/tp 15