SlideShare a Scribd company logo
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 practices
Erik LaBianca
 
Essential applications management with Tiny Puppet
Essential applications management with Tiny PuppetEssential applications management with Tiny Puppet
Essential applications management with Tiny Puppet
Alessandro Franceschi
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
Agile 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 2014
biicode
 
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
 
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
Ivo Jimenez
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
Viresh Doshi
 
macos installation automation
macos installation automationmacos installation automation
macos installation automation
Jon 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 2012
Carlos Sanchez
 
Symfony finally swiped right on envvars
Symfony finally swiped right on envvarsSymfony finally swiped right on envvars
Symfony finally swiped right on envvars
Sam 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 & docker
Jürgen Gutsch
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
Robert 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 Version
CFEngine
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
Puppet
 
Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
Joe 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 packages
Daniel 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ötz
NETWAYS
 
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
 

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 refactoring
Alessandro 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.pdf
Alessandro Franceschi
 
ReUse Your (Puppet) Modules!
ReUse Your (Puppet) Modules!ReUse Your (Puppet) Modules!
ReUse Your (Puppet) Modules!
Alessandro 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 Kit
Alessandro 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 GitLab
Alessandro 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 level
Alessandro Franceschi
 
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
Alessandro Franceschi
 
Puppet evolutions
Puppet evolutionsPuppet evolutions
Puppet evolutions
Alessandro Franceschi
 
Raise the bar! Reloaded
Raise the bar! ReloadedRaise the bar! Reloaded
Raise the bar! Reloaded
Alessandro Franceschi
 
Raise the bar!
Raise the bar!Raise the bar!
Raise the bar!
Alessandro Franceschi
 
Anatomy of a reusable module
Anatomy of a reusable moduleAnatomy of a reusable module
Anatomy of a reusable module
Alessandro Franceschi
 
Puppet modules for Fun and Profit
Puppet modules for Fun and ProfitPuppet modules for Fun and Profit
Puppet modules for Fun and Profit
Alessandro Franceschi
 
Puppet modules: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - GenevaPuppet modules: A Holistic Approach - Geneva
Puppet modules: A Holistic Approach - Geneva
Alessandro Franceschi
 
Puppet modules: An Holistic Approach
Puppet modules: An Holistic ApproachPuppet modules: An Holistic Approach
Puppet modules: An Holistic Approach
Alessandro Franceschi
 
Spaghetti devops
Spaghetti devopsSpaghetti devops
Spaghetti devops
Alessandro Franceschi
 
Puppi. Puppet strings to the shell
Puppi. Puppet strings to the shellPuppi. Puppet strings to the shell
Puppi. Puppet strings to the shell
Alessandro Franceschi
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
Alessandro 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

AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 

Recently uploaded (20)

AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 

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!