Successfully reported this slideshow.
Your SlideShare is downloading. ×

Tiny Puppet Can Install Everything. Prove me wrong!

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Tp install anything
Tp install anything
Loading in …3
×

Check these out next

1 of 20 Ad

Tiny Puppet Can Install Everything. Prove me wrong!

Download to read offline

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.

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.

Advertisement
Advertisement

More Related Content

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

More from Alessandro Franceschi (16)

Advertisement

Recently uploaded (20)

Tiny Puppet Can Install Everything. Prove me wrong!

  1. 1. Alessandro Franceschi / Con fi g Management Camp 2023 Ghent Tiny Puppet (tp) can install everything Prove me wrong!
  2. 2. A GOOD PUPPET MODULE • Well-documented • Reusable • Tested • Idempotent • Cross OS • Performance optimised • Bolt tasks • Manages one and only one app
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. it’s all about tinydata and the powers of v4 format IMPOSSIBLE?
  13. 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. 14. ASK ME TO SUPPORT ANY APP YOU WANT THE TP CHALLENGE
  15. 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. 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. 17. tp cli is TOOL written in PUPPET language YOU DON’T NEED TO KNOW OR LIKE PUPPET
  18. 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. 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. 20. Slides will be online (link via Twitter @alvagante) TP CHALLENGE ME https://github.com/example42/tinydata/issues FIVE MINUTES ARE NOT ENOUGH!

×