SlideShare a Scribd company logo
1 of 20
Download to read offline
Alessandro Franceschi / Con
fi
g Management Camp 2023 Ghent
Tiny Puppet (tp)
can install
everything
Prove me wrong!
A GOOD PUPPET MODULE
• Well-documented
• Reusable
• Tested
• Idempotent
• Cross OS
• Performance optimised
• Bolt tasks
• Manages one and only one app
• Well-documented
• Reusable
• Tested
• Idempotent
• Cross OS
• Performance optimised
• Bolt tasks
• Manages one and only one app
TINY PUPPET puppet module install example42-tp
Really, every app on every OS (Linux, Mac, Windows)
that’s not new, it has done that for years
NOW there’s more…
YOU CAN
TP INSTALL
EVERY APP
• Via native OS packages
• Using upstream repositories
• Downloading release binaries or tarballs
• Compiling source code
• Via a Docker image
tp install epel
tp install vagrant upstream
tp install blender file
tp install apache source
tp install prometheus image
IN EVERY WAY
• User decides how (source, template, content…)
• Con
fi
gs as data
• root or normal user con
fi
g
fi
les
• Automatic validation of con
fi
guration
fi
les
CONFIGURE IT
MANAGE DIRS
• Full control on app dirs
• Source can be a git repo
tp::dirs:
redis:
source: puppet:///modules/profile/redis/
apache::site
path: /var/www/html
vcsrepo: git
source: https://git.example.com/site
ensure: latest
Out of the box tests
Application speci
fi
c tests
Easily add custom tests
TEST IT
on terminal CLI
via remote Bolt tasks
in CI/CD
on demand
Whenever you need to know
if the app is working
tp test
tp test gitlab
• Show INFO
• LOG in real time
• DEBUG process
• Show the real VERSION
• Download the SOURCE
TROUBLESHOOT IT
tp log
tp log crowdsec
tp info crowdsec
tp debug crowds
tp version
tp source spiderfoot
ALL THIS
• As code
• As data
• Via command line
• Via a Bolt task
tp::install { nuclei: }
tp::installs:
- nuclei
tp install nuclei
bolt task run tp::install app=nuclei
AS DATA Yaml
tp::installs:
nuclei:
install_method: file
vagrant:
ensure: present
terraform:
ensure: present
packer:
ensure: present
azure-cli:
ensure: present
apache:
ensure: present
tp::sources:
apache:
ensure: present
nats-server:
ensure: present
tp::confs:
filebeat:
ensure: present
my_options:
logging.level: info
logging.to_files: true
setup.ilm.enabled: false
setup.template.enabled: true
setup.template.name: "filebeat"
tp::dirs:
apache::site
path: /var/www/html
vcsrepo: git
source: https://git.example.com/site
ensure: latest
tp::tests:
apache:
source: 'puppet:///modules/profile/filebeat/my_test.sh'
it’s all about tinydata
and the powers of v4 format
IMPOSSIBLE?
Each app, its tiny data
https://github.com/example42/tinydata
nats-server::settings:
install_method: 'file'
description: 'A cloud native messaging system.'
files:
config:
path: '/etc/nats/nats-server.conf'
systemd:
path: '/etc/systemd/system/nats-server.service'
format: 'inifile_with_stanzas'
dirs:
config:
path: '/etc/nats'
ports:
main:
port: 4222
protocol: tcp
management:
port: 8222
protocol: tcp
routing:
port: 6222
protocol: tcp
build:
prerequisites:
tp::install:
- golang
execs:
- name: build
command: 'GO111MODULE=on go get github.com/nats-io/nats-server/v2'
releases:
latest_version: '2.9.11'
prerequisites: {}
base_url: 'https://github.com/nats-io/nats-server/releases/download/v$VERSION'
file_name: 'nats-server-v$VERSION-$OS-$ARCH.zip'
extracted_dir: 'nats-server-v$VERSION-$OS-$ARCH'
file_format: zip
setup:
enable: true
files:
nats-server:
path: '/usr/local/bin/nats-server'
mode: '0755'
systemd_options:
Service:
ExecStart: '/usr/local/bin/nats-server'
EnvironmentFile: ~
manage_service: true
ASK ME TO SUPPORT
ANY APP YOU WANT
THE TP
CHALLENGE
Request ANY APP support
Specify at least one OS, installation method and app
https://github.com/example42/tinydata/issues
I FAIL
I offer you a beer
I DELIVER
You use/talk/post about tp
IF
I write the needed
tinydata
Tiny Puppet version 4 out soon
What you have seen is already available with v3.9
more to come
tp pack to build vm and container images
tp run feature to run app speci
fi
c commands
tinydata updated to v4
tp cli is TOOL
written in PUPPET language
YOU DON’T NEED
TO KNOW
OR LIKE
PUPPET
Use tp CLI
Quickstart
• Install Puppet
• Run as root
• On any Linux distro
• On Mac (needs brew)
tp
tp list
tp install powershell
tp install vagrant
tp install sysdig
tp install crowdsec
tp test
tp info [app]
tp log [app]
tp debug [app]
tp version
puppet module install example42-tp
puppet tp setup
Install
Use
One last thing….
tp desktop
DESKTOP AS CODE
Manage any desktop, server or home on remote system
Apply mode. Without Puppet server
Only Yaml data (no Puppet code)
In your own git control-repo
Slides will be online (link via Twitter @alvagante)
TP CHALLENGE ME
https://github.com/example42/tinydata/issues
FIVE MINUTES
ARE NOT ENOUGH!

More Related Content

Similar to Tiny Puppet Can Install Everything. Prove me wrong!

Django deployment best practices
Django deployment best practicesDjango deployment best practices
Django deployment best practicesErik LaBianca
 
Essential applications management with Tiny Puppet
Essential applications management with Tiny PuppetEssential applications management with Tiny Puppet
Essential applications management with Tiny PuppetAlessandro Franceschi
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
The Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolThe Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolIvo Jimenez
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018Viresh Doshi
 
macos installation automation
macos installation automationmacos installation automation
macos installation automationJon Fuller
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvarsSam Marley-Jarrett
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerJürgen Gutsch
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?AFUP_Limoges
 
Getting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated VersionGetting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated VersionCFEngine
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys AdminsPuppet
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with PuppetJoe Ray
 
Jenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesJenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesDaniel Paulus
 
Puppet getting started by Dirk Götz
Puppet getting started by Dirk GötzPuppet getting started by Dirk Götz
Puppet getting started by Dirk GötzNETWAYS
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012Carlos Sanchez
 

Similar to Tiny Puppet Can Install Everything. Prove me wrong! (20)

Django deployment best practices
Django deployment best practicesDjango deployment best practices
Django deployment best practices
 
Essential applications management with Tiny Puppet
Essential applications management with Tiny PuppetEssential applications management with Tiny Puppet
Essential applications management with Tiny Puppet
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
The Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI toolThe Popper Experimentation Protocol and CLI tool
The Popper Experimentation Protocol and CLI tool
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
 
macos installation automation
macos installation automationmacos installation automation
macos installation automation
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvars
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?
 
Getting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated VersionGetting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated Version
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
 
Jenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packagesJenkins and Docker for native Linux packages
Jenkins and Docker for native Linux packages
 
Puppet getting started by Dirk Götz
Puppet getting started by Dirk GötzPuppet getting started by Dirk Götz
Puppet getting started by Dirk Götz
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
 

More from Alessandro Franceschi

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 refactoringAlessandro Franceschi
 
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.pdfAlessandro Franceschi
 
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?Alessandro Franceschi
 
Puppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitPuppet Systems Infrastructure Construction Kit
Puppet Systems Infrastructure Construction KitAlessandro Franceschi
 
Puppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLabPuppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLabAlessandro Franceschi
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next levelAlessandro Franceschi
 
Puppet modules: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - GenevaPuppet modules: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - GenevaAlessandro Franceschi
 
Puppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachPuppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachAlessandro Franceschi
 

More from Alessandro Franceschi (18)

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
 
Puppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLabPuppet Continuous Integration with PE and GitLab
Puppet Continuous Integration with PE and GitLab
 
Puppet control-repo 
to the next level
Puppet control-repo 
to the next levelPuppet control-repo 
to the next level
Puppet control-repo 
to the next level
 
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
 
Puppet evolutions
Puppet evolutionsPuppet evolutions
Puppet evolutions
 
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: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - GenevaPuppet modules: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - Geneva
 
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

Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfChristopherTHyatt
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfEasyPrinterHelp
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 

Recently uploaded (20)

Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 

Tiny Puppet Can Install Everything. Prove me wrong!

  • 1. Alessandro Franceschi / Con fi g Management Camp 2023 Ghent Tiny Puppet (tp) can install everything Prove me wrong!
  • 2. A GOOD PUPPET MODULE • Well-documented • Reusable • Tested • Idempotent • Cross OS • Performance optimised • Bolt tasks • Manages one and only one app
  • 3. • Well-documented • Reusable • Tested • Idempotent • Cross OS • Performance optimised • Bolt tasks • Manages one and only one app TINY PUPPET puppet module install example42-tp
  • 4. Really, every app on every OS (Linux, Mac, Windows) that’s not new, it has done that for years NOW there’s more… YOU CAN TP INSTALL EVERY APP
  • 5. • Via native OS packages • Using upstream repositories • Downloading release binaries or tarballs • Compiling source code • Via a Docker image tp install epel tp install vagrant upstream tp install blender file tp install apache source tp install prometheus image IN EVERY WAY
  • 6. • User decides how (source, template, content…) • Con fi gs as data • root or normal user con fi g fi les • Automatic validation of con fi guration fi les CONFIGURE IT
  • 7. MANAGE DIRS • Full control on app dirs • Source can be a git repo tp::dirs: redis: source: puppet:///modules/profile/redis/ apache::site path: /var/www/html vcsrepo: git source: https://git.example.com/site ensure: latest
  • 8. Out of the box tests Application speci fi c tests Easily add custom tests TEST IT on terminal CLI via remote Bolt tasks in CI/CD on demand Whenever you need to know if the app is working tp test tp test gitlab
  • 9. • Show INFO • LOG in real time • DEBUG process • Show the real VERSION • Download the SOURCE TROUBLESHOOT IT tp log tp log crowdsec tp info crowdsec tp debug crowds tp version tp source spiderfoot
  • 10. ALL THIS • As code • As data • Via command line • Via a Bolt task tp::install { nuclei: } tp::installs: - nuclei tp install nuclei bolt task run tp::install app=nuclei
  • 11. AS DATA Yaml tp::installs: nuclei: install_method: file vagrant: ensure: present terraform: ensure: present packer: ensure: present azure-cli: ensure: present apache: ensure: present tp::sources: apache: ensure: present nats-server: ensure: present tp::confs: filebeat: ensure: present my_options: logging.level: info logging.to_files: true setup.ilm.enabled: false setup.template.enabled: true setup.template.name: "filebeat" tp::dirs: apache::site path: /var/www/html vcsrepo: git source: https://git.example.com/site ensure: latest tp::tests: apache: source: 'puppet:///modules/profile/filebeat/my_test.sh'
  • 12. it’s all about tinydata and the powers of v4 format IMPOSSIBLE?
  • 13. Each app, its tiny data https://github.com/example42/tinydata nats-server::settings: install_method: 'file' description: 'A cloud native messaging system.' files: config: path: '/etc/nats/nats-server.conf' systemd: path: '/etc/systemd/system/nats-server.service' format: 'inifile_with_stanzas' dirs: config: path: '/etc/nats' ports: main: port: 4222 protocol: tcp management: port: 8222 protocol: tcp routing: port: 6222 protocol: tcp build: prerequisites: tp::install: - golang execs: - name: build command: 'GO111MODULE=on go get github.com/nats-io/nats-server/v2' releases: latest_version: '2.9.11' prerequisites: {} base_url: 'https://github.com/nats-io/nats-server/releases/download/v$VERSION' file_name: 'nats-server-v$VERSION-$OS-$ARCH.zip' extracted_dir: 'nats-server-v$VERSION-$OS-$ARCH' file_format: zip setup: enable: true files: nats-server: path: '/usr/local/bin/nats-server' mode: '0755' systemd_options: Service: ExecStart: '/usr/local/bin/nats-server' EnvironmentFile: ~ manage_service: true
  • 14. ASK ME TO SUPPORT ANY APP YOU WANT THE TP CHALLENGE
  • 15. Request ANY APP support Specify at least one OS, installation method and app https://github.com/example42/tinydata/issues I FAIL I offer you a beer I DELIVER You use/talk/post about tp IF I write the needed tinydata
  • 16. Tiny Puppet version 4 out soon What you have seen is already available with v3.9 more to come tp pack to build vm and container images tp run feature to run app speci fi c commands tinydata updated to v4
  • 17. tp cli is TOOL written in PUPPET language YOU DON’T NEED TO KNOW OR LIKE PUPPET
  • 18. Use tp CLI Quickstart • Install Puppet • Run as root • On any Linux distro • On Mac (needs brew) tp tp list tp install powershell tp install vagrant tp install sysdig tp install crowdsec tp test tp info [app] tp log [app] tp debug [app] tp version puppet module install example42-tp puppet tp setup Install Use
  • 19. One last thing…. tp desktop DESKTOP AS CODE Manage any desktop, server or home on remote system Apply mode. Without Puppet server Only Yaml data (no Puppet code) In your own git control-repo
  • 20. Slides will be online (link via Twitter @alvagante) TP CHALLENGE ME https://github.com/example42/tinydata/issues FIVE MINUTES ARE NOT ENOUGH!