Ignite session at CfgMgmt Camp about Tiny Puppet and how different users can use in different ways for different things.
Always with the ability to install every application, on every OS, in every way.
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
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!