SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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!

Contenu connexe

Similaire à Tiny Puppet Can Install Everything. Prove me wrong!

Django deployment best practices
Django deployment best practicesDjango deployment best practices
Django deployment best practices
Erik LaBianca
 
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
Carlos Sanchez
 
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
Carlos Sanchez
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
Joe Ray
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
Carlos Sanchez
 

Similaire à 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
 

Plus de Alessandro Franceschi

Plus de 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
 

Dernier

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
Peter Udo Diehl
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Dernier (20)

The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.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...
 
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
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
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
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
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
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
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
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 

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!