Demystifying the Foreman

Julien Pivotto
Julien PivottoOpen Source Consultant at Inuits
Demystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the Foreman
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
CfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCamp
February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016
whoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoami
• Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
• SysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at Inuits
• CentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman user
• Foreman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelist
inuits.eu
The Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecases
• 22222222222222222012-2013: Puppet Reporting
FFFFFFFFFFFFFFFFForeman < 1.0
RRRRRRRRRRRRRRRRReplacement for Puppet Dashboard
• 22222222222222222014-now: Everything!
NNNNNNNNNNNNNNNNNow using Foreman 1.9.3
CCCCCCCCCCCCCCCCContinuously upgrading from 1.3
AAAAAAAAAAAAAAAAAvoiding .0 releases
FFFFFFFFFFFFFFFFForeman is always patched
1111111111111111100% of our patches are upstream!
Our R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D lab
• 1111111111111111130 hosts
• 111111111111111110 compute resources
99999999999999999 libvirt
11111111111111111 VMware
• 44444444444444444 locations
• 44444444444444444 smart proxies
• 33333333333333333 organisations
What we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we use
• PPPPPPPPPPPPPPPPProvisioning
• PPPPPPPPPPPPPPPPPuppet parameters (ENC)
• PPPPPPPPPPPPPPPPPuppet reporting
• AAAAAAAAAAAAAAAAAdvanced networking
• DDDDDDDDDDDDDDDDDNS DHCP TFTP proxies
Building and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuilding
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/andrec/3525054487
Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?
• FFFFFFFFFFFFFFFFForeman has a large scope
• YYYYYYYYYYYYYYYYYou really need it
• IIIIIIIIIIIIIIIIIt can be scary to patch it in prod
What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?
• FFFFFFFFFFFFFFFFForeman
• SSSSSSSSSSSSSSSSSmart-proxy
• IIIIIIIIIIIIIIIIInstaller (puppet modules)
• CCCCCCCCCCCCCCCCCommunity templates
• PPPPPPPPPPPPPPPPPlugins
• hhhhhhhhhhhhhhhhhammer, hammer-foreman
Foreman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overview
Licensed under a Creative Commons Attribution-ShareAlike 3.0 License
http://theforeman.org
Technologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involved
• RRRRRRRRRRRRRRRRRuby
RRRRRRRRRRRRRRRRRuby-on-Rails
HHHHHHHHHHHHHHHHHammer, kafo
AAAAAAAAAAAAAAAAA lot of rubygems
SSSSSSSSSSSSSSSSStrong relationship with fog
• PPPPPPPPPPPPPPPPPuppet
WWWWWWWWWWWWWWWWWorks best with Puppet 3
UUUUUUUUUUUUUUUUUse the API
• +++++++++++++++++ smart proxies
• +++++++++++++++++ plugins
Getting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting started
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/horiavarlan/4747872021
Tip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyone
• BBBBBBBBBBBBBBBBBackups, backups, backups
• SSSSSSSSSSSSSSSSSometimes we needed a full restore
• SSSSSSSSSSSSSSSSSometimes partial restore
• SSSSSSSSSSSSSSSSSometime importing the backup elsewhere
to get data
Your development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environment
The basic tools: Ruby(-devel), Git, . . .
git clone https://github.com/theforeman/
foreman
cd foreman
virtualenv ruby193
source ruby193/bin/activate
pip install rubyenv
rubyenv list
rubyenv install 1.9.3−p551
Now you have ruby 1.9.3 in your path
Copy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some files
cp config/settings.yaml.example config/settings.yaml
cp config/database.yml.example config/database.yml
settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)
:login: false
:require_ssl: false
:locations_enabled: false
:organizations_enabled: false
Install the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DB
bundle install
bundle exec rake db:migrate
bundle exec rake db:seed
Additional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commands
bundle update
bundle install −−without libvirt
bundle exec rake permissions:reset
bundle exec rails server
Running testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning tests
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/dahlstroms/3945656390
Remove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverage
It is slow and eats memory
vi test/test_helper.rb
#require `simplecov '
#SimpleCov.start `rails ' do
# add_group `API', `app/controllers/api'
#end
git update−index −−assume−unchanged test/
test_helper.rb
Running all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one test
bundle exec rake test
bundle exec ruby −Itest test/unit/
host_test.rb
CommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunityCommunity
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/design-dog/1322023178
Join the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the community
• IIIIIIIIIIIIIIIIIRC: #theforeman, #theforeman-dev on
freenode
• MMMMMMMMMMMMMMMMMailing lists: foreman-users, foreman-devel
• TTTTTTTTTTTTTTTTTickets tracker: projects.theforeman.org
• gggggggggggggggggithub.com/theforeman
• cccccccccccccccccfgmgmtcamp + construction day
Contribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelines
• tttttttttttttttttheforeman.org > community
• tttttttttttttttttheforeman.org > community > handbook
• NNNNNNNNNNNNNNNNNot happy? Improve them
• gggggggggggggggggithub.com/theforeman/theforeman.org
Pull requests
Pull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requests
• EEEEEEEEEEEEEEEEEach PR requires:
AAAAAAAAAAAAAAAAA ticket in redmine
AAAAAAAAAAAAAAAAA compliant commit summary
AAAAAAAAAAAAAAAAA detailed commit message
• IIIIIIIIIIIIIIIIInclude tests (if possible)
• SSSSSSSSSSSSSSSSSpeak with other, explain your usecase
Lifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull request
• IIIIIIIIIIIIIIIIIt gets refused by the Foreman bot :-)
• YYYYYYYYYYYYYYYYYou get some feedback
• SSSSSSSSSSSSSSSSSomeone allows tests to run ([test])
• FFFFFFFFFFFFFFFFFix the tests/respond to feedbacks
• PPPPPPPPPPPPPPPPPR gets accepted
• FFFFFFFFFFFFFFFFFix another bug :-)
ci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.orgci.theforeman.org
• RRRRRRRRRRRRRRRRRun all the tests against all kind of rubies
and databases
• TTTTTTTTTTTTTTTTTakes about less than hour, depending on
the load
• SSSSSSSSSSSSSSSSSyntax, interface, runy tests, katello
integration
Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?
• TTTTTTTTTTTTTTTTThere is no master branch
• DDDDDDDDDDDDDDDDDevelop and test against develop branch
• FFFFFFFFFFFFFFFFFM team will backport to stable if needed
• AAAAAAAAAAAAAAAAAsk in the ticket if you need a backport (e.g
#11375)
Going deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeper
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/128398720@N04/15424266506/
Debugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resources
• TTTTTTTTTTTTTTTTTry with another client (with Foreman
credentials)
• TTTTTTTTTTTTTTTTTry with another compute resource
• TTTTTTTTTTTTTTTTTry with another piece of hardware
Contributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modules
• OOOOOOOOOOOOOOOOOpen pull requests directly
• CCCCCCCCCCCCCCCCCompat with Puppet 3 and 4 (no 2.7)
• FFFFFFFFFFFFFFFFFollow Puppet best practices
• DDDDDDDDDDDDDDDDDiscuss deep changes with foreman-dev
• TTTTTTTTTTTTTTTTTravis/spec skeleton in
foreman-installer-modulesync
Non-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contribution
• JJJJJJJJJJJJJJJJJoin to mailing lists discussions
• JJJJJJJJJJJJJJJJJoin to the IRC channel
• CCCCCCCCCCCCCCCCContribute to the website (release notes!)
• CCCCCCCCCCCCCCCCCommunity templates (e.g bridge support is
coming)
• BBBBBBBBBBBBBBBBBlog posts
• TTTTTTTTTTTTTTTTTriage pending pull requests
ConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusionConclusion
Licensed under a Creative Commons Attribution 2.0 License
https://www.flickr.com/photos/mtaphotos/11200079265
Foreman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is mature
• BBBBBBBBBBBBBBBBBut releases frequently
• DDDDDDDDDDDDDDDDDeep changes happens often
• GGGGGGGGGGGGGGGGGet a test environment if possible
• TTTTTTTTTTTTTTTTThere is room for improvement
The community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is open
• CCCCCCCCCCCCCCCCCome to us and discuss
• YYYYYYYYYYYYYYYYYou are probably not alone
• TTTTTTTTTTTTTTTTThere is work for everyone
• TTTTTTTTTTTTTTTTTake part of decisions
Avoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troubles
• UUUUUUUUUUUUUUUUUse RPM/packages: the stack is too big
• SSSSSSSSSSSSSSSSSend your patches upstream
• AAAAAAAAAAAAAAAAA patch not upstreamed slows you down
• IIIIIIIIIIIIIIIIIf it is VERY specific, make a plugin
LinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinks
• hhhhhhhhhhhhhhhhhttp://theforeman.org/
• hhhhhhhhhhhhhhhhhttp://theforeman.org/blog/
• hhhhhhhhhhhhhhhhhttp://theforeman.org/contribute.html
• hhhhhhhhhhhhhhhhhttp://theforeman.org/handbook.html
•
hhhhhhhhhhhhhhhhhttp://projects.theforeman.org/projects/foreman
Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?
ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact
Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto
julien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eu
@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie
inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuits
https://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu
info@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.eu
+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636
1 of 40

Recommended

CentOS Config Management SIG by
CentOS Config Management SIGCentOS Config Management SIG
CentOS Config Management SIGJulien Pivotto
2.4K views20 slides
An introduction to the Pulp project by
An introduction to the Pulp projectAn introduction to the Pulp project
An introduction to the Pulp projectJulien Pivotto
9.6K views86 slides
Managing a R&D Lab with Foreman by
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with ForemanJulien Pivotto
1.6K views91 slides
Managing a R&D Lab with Foreman by
Managing a R&D Lab with ForemanManaging a R&D Lab with Foreman
Managing a R&D Lab with ForemanJulien Pivotto
1K views91 slides
Diving Into Puppet Providers Development: The Puppet-Corosync Module by
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleDiving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleJulien Pivotto
2.1K views82 slides
Puppet and software delivery by
Puppet and software deliveryPuppet and software delivery
Puppet and software deliveryJulien Pivotto
2K views48 slides

More Related Content

What's hot

Getting the maximum out of systemd by
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemdJulien Pivotto
8.6K views75 slides
DNSSec by
DNSSecDNSSec
DNSSecJulien Pivotto
1.9K views71 slides
A call to give back puppetlabs-corosync to the community by
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityJulien Pivotto
2K views25 slides
Puppet and Software Delivery by
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software DeliveryJulien Pivotto
2.2K views50 slides
systemd and configuration management by
systemd and configuration managementsystemd and configuration management
systemd and configuration managementJulien Pivotto
2.9K views56 slides
Coworking with git by
Coworking with gitCoworking with git
Coworking with gitJulien Pivotto
2.7K views58 slides

What's hot(16)

Getting the maximum out of systemd by Julien Pivotto
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemd
Julien Pivotto8.6K views
A call to give back puppetlabs-corosync to the community by Julien Pivotto
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the community
Julien Pivotto2K views
Puppet and Software Delivery by Julien Pivotto
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software Delivery
Julien Pivotto2.2K views
systemd and configuration management by Julien Pivotto
systemd and configuration managementsystemd and configuration management
systemd and configuration management
Julien Pivotto2.9K views
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi... by NETWAYS
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
NETWAYS143 views
We Buy Cheese in a Cheese Shop by Tzu-ping Chung
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
Tzu-ping Chung904 views
Destruction, Decapods and Doughnuts: Continuous Delivery for Audio & Video Fa... by Rachel Evans
Destruction, Decapods and Doughnuts: Continuous Delivery for Audio & Video Fa...Destruction, Decapods and Doughnuts: Continuous Delivery for Audio & Video Fa...
Destruction, Decapods and Doughnuts: Continuous Delivery for Audio & Video Fa...
Rachel Evans844 views
Functional IoT: Hardware and Platform by Kiwamu Okabe
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and Platform
Kiwamu Okabe1.6K views
Metasepi team meeting #16: Safety on ATS language + MCU by Kiwamu Okabe
Metasepi team meeting #16: Safety on ATS language + MCUMetasepi team meeting #16: Safety on ATS language + MCU
Metasepi team meeting #16: Safety on ATS language + MCU
Kiwamu Okabe15.1K views
ATS/LF for Coq users by Kiwamu Okabe
ATS/LF for Coq usersATS/LF for Coq users
ATS/LF for Coq users
Kiwamu Okabe13.6K views
Tracking large game assets with Git LFS by Tim Pettersen
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
Tim Pettersen849 views
Start! ATS programming by Kiwamu Okabe
Start! ATS programmingStart! ATS programming
Start! ATS programming
Kiwamu Okabe16.3K views
Metasepi team meeting #14: ATS programming on MCU by Kiwamu Okabe
Metasepi team meeting #14: ATS programming on MCUMetasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCU
Kiwamu Okabe15.2K views

Viewers also liked

Systemmanagement mit Puppet und Foreman by
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
434 views43 slides
Foreman in your datacenter by
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
382.7K views32 slides
How to take care of your teeth freebie - bagaimana cara menjaga gigi by
How to take care of your teeth freebie - bagaimana cara menjaga gigiHow to take care of your teeth freebie - bagaimana cara menjaga gigi
How to take care of your teeth freebie - bagaimana cara menjaga gigianum mss
675 views7 slides
PXEless Discovery with Foreman by
PXEless Discovery with ForemanPXEless Discovery with Foreman
PXEless Discovery with ForemanStephen Benjamin
2.7K views13 slides
Foreman - Process manager for applications with multiple components by
Foreman - Process manager for applications with multiple componentsForeman - Process manager for applications with multiple components
Foreman - Process manager for applications with multiple componentsStoyan Zhekov
2.8K views39 slides
Foreman and Chef integration at ChefConf 2014 by
Foreman and Chef integration at ChefConf 2014Foreman and Chef integration at ChefConf 2014
Foreman and Chef integration at ChefConf 2014Dominic Cleal
3.7K views13 slides

Viewers also liked(20)

Systemmanagement mit Puppet und Foreman by B1 Systems GmbH
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
B1 Systems GmbH434 views
Foreman in your datacenter by lzap
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
lzap382.7K views
How to take care of your teeth freebie - bagaimana cara menjaga gigi by anum mss
How to take care of your teeth freebie - bagaimana cara menjaga gigiHow to take care of your teeth freebie - bagaimana cara menjaga gigi
How to take care of your teeth freebie - bagaimana cara menjaga gigi
anum mss675 views
Foreman - Process manager for applications with multiple components by Stoyan Zhekov
Foreman - Process manager for applications with multiple componentsForeman - Process manager for applications with multiple components
Foreman - Process manager for applications with multiple components
Stoyan Zhekov2.8K views
Foreman and Chef integration at ChefConf 2014 by Dominic Cleal
Foreman and Chef integration at ChefConf 2014Foreman and Chef integration at ChefConf 2014
Foreman and Chef integration at ChefConf 2014
Dominic Cleal3.7K views
SaltStack Integration with Foreman (2016) by Stephen Benjamin
SaltStack Integration with Foreman (2016)SaltStack Integration with Foreman (2016)
SaltStack Integration with Foreman (2016)
Stephen Benjamin2.4K views
Auto infra with_foreman_katello by Sachin Ghai
Auto infra with_foreman_katelloAuto infra with_foreman_katello
Auto infra with_foreman_katello
Sachin Ghai705 views
Foreman presentation by Glen Ogilvie
Foreman presentationForeman presentation
Foreman presentation
Glen Ogilvie3.1K views
Ovirt and gluster_hyperconvergence_devconf-2016 by Ramesh Nachimuthu
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016
Ramesh Nachimuthu1.8K views
Fossasia 16 Integrating oVirt, Foreman and Katello to empower your data-center by Yaniv Bronhaim
Fossasia 16 Integrating oVirt, Foreman and Katello to empower your data-centerFossasia 16 Integrating oVirt, Foreman and Katello to empower your data-center
Fossasia 16 Integrating oVirt, Foreman and Katello to empower your data-center
Yaniv Bronhaim565 views
What does "monitoring" mean? (FOSDEM 2017) by Brian Brazil
What does "monitoring" mean? (FOSDEM 2017)What does "monitoring" mean? (FOSDEM 2017)
What does "monitoring" mean? (FOSDEM 2017)
Brian Brazil2.4K views
Linux host orchestration with Foreman, Puppet and Gitlab by Ben Tullis
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and Gitlab
Ben Tullis9.7K views
Deploying and managing gluster using ovirt - fudcon2015 by Ramesh Nachimuthu
Deploying and managing gluster using ovirt - fudcon2015Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015
Ramesh Nachimuthu1.6K views
Managing ceph through_oVirt_using_Cinder by Maor Lipchuk
Managing ceph through_oVirt_using_CinderManaging ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_Cinder
Maor Lipchuk3.2K views
Microservices and Prometheus (Microservices NYC 2016) by Brian Brazil
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)
Brian Brazil2.4K views
Lifecycle Management with Foreman by Julien Pivotto
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
Julien Pivotto13.3K views
Managing your SaltStack Minions with Foreman by Stephen Benjamin
Managing your SaltStack Minions with ForemanManaging your SaltStack Minions with Foreman
Managing your SaltStack Minions with Foreman
Stephen Benjamin12.6K views

Similar to Demystifying the Foreman

Enhance OpenSSH for fun and security by
Enhance OpenSSH for fun and securityEnhance OpenSSH for fun and security
Enhance OpenSSH for fun and securityJulien Pivotto
1.8K views72 slides
Pinto+Stratopan+Love by
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+LoveJeffrey Ryan Thalhammer
1.1K views115 slides
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs by
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIsDrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIsValentin Bora
688 views46 slides
Innovateeurope by
InnovateeuropeInnovateeurope
InnovateeuropeTom Croucher
671 views61 slides
Migrating to Puppet 5 by
Migrating to Puppet 5Migrating to Puppet 5
Migrating to Puppet 5Kris Buytaert
1K views34 slides
Yahoo! Developer Networks ♥ Startups by
Yahoo! Developer Networks ♥ StartupsYahoo! Developer Networks ♥ Startups
Yahoo! Developer Networks ♥ StartupsTom Croucher
698 views61 slides

Similar to Demystifying the Foreman(13)

Enhance OpenSSH for fun and security by Julien Pivotto
Enhance OpenSSH for fun and securityEnhance OpenSSH for fun and security
Enhance OpenSSH for fun and security
Julien Pivotto1.8K views
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs by Valentin Bora
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIsDrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs
Valentin Bora688 views
Yahoo! Developer Networks ♥ Startups by Tom Croucher
Yahoo! Developer Networks ♥ StartupsYahoo! Developer Networks ♥ Startups
Yahoo! Developer Networks ♥ Startups
Tom Croucher698 views
From Config Management Sucks to #cfgmgmtlove by Kris Buytaert
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
Kris Buytaert2K views
Automating MySQL operations with Puppet by Kris Buytaert
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
Kris Buytaert1.8K views
الكفاح المسلح by zulabooks
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
zulabooks497 views
الكفاح المسلح by zulabook
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
zulabook842 views

More from Julien Pivotto

The O11y Toolkit by
The O11y ToolkitThe O11y Toolkit
The O11y ToolkitJulien Pivotto
37 views24 slides
What's New in Prometheus and Its Ecosystem by
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemJulien Pivotto
12 views42 slides
Prometheus: What is is, what is new, what is coming by
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
42 views27 slides
What's new in Prometheus? by
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?Julien Pivotto
15 views10 slides
Introduction to Grafana Loki by
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
189 views11 slides
Why you should revisit mgmt by
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmtJulien Pivotto
10 views46 slides

More from Julien Pivotto(20)

What's New in Prometheus and Its Ecosystem by Julien Pivotto
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
Julien Pivotto12 views
Prometheus: What is is, what is new, what is coming by Julien Pivotto
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
Julien Pivotto42 views
Introduction to Grafana Loki by Julien Pivotto
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
Julien Pivotto189 views
Observing the HashiCorp Ecosystem From Prometheus by Julien Pivotto
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
Julien Pivotto37 views
Monitoring in a fast-changing world with Prometheus by Julien Pivotto
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
Julien Pivotto33 views
5 tips for Prometheus Service Discovery by Julien Pivotto
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
Julien Pivotto38 views
Prometheus and TLS - an Introduction by Julien Pivotto
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
Julien Pivotto15 views
HAProxy as Egress Controller by Julien Pivotto
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
Julien Pivotto2.9K views
Improved alerting with Prometheus and Alertmanager by Julien Pivotto
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
Julien Pivotto4.5K views
SIngle Sign On with Keycloak by Julien Pivotto
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
Julien Pivotto10K views
Monitoring as an entry point for collaboration by Julien Pivotto
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
Julien Pivotto1.3K views
Monitor your CentOS stack with Prometheus by Julien Pivotto
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
Julien Pivotto712 views
Monitor your CentOS stack with Prometheus by Julien Pivotto
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
Julien Pivotto704 views

Recently uploaded

Web Dev - 1 PPT.pdf by
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdfgdsczhcet
55 views45 slides
Business Analyst Series 2023 - Week 3 Session 5 by
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5DianaGray10
209 views20 slides
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
50 views21 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
23 views37 slides
DALI Basics Course 2023 by
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023Ivory Egg
14 views12 slides
AI: mind, matter, meaning, metaphors, being, becoming, life values by
AI: mind, matter, meaning, metaphors, being, becoming, life valuesAI: mind, matter, meaning, metaphors, being, becoming, life values
AI: mind, matter, meaning, metaphors, being, becoming, life valuesTwain Liu 刘秋艳
35 views16 slides

Recently uploaded(20)

Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet55 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10209 views
DALI Basics Course 2023 by Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 views
AI: mind, matter, meaning, metaphors, being, becoming, life values by Twain Liu 刘秋艳
AI: mind, matter, meaning, metaphors, being, becoming, life valuesAI: mind, matter, meaning, metaphors, being, becoming, life values
AI: mind, matter, meaning, metaphors, being, becoming, life values
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 views
The Importance of Cybersecurity for Digital Transformation by NUS-ISS
The Importance of Cybersecurity for Digital TransformationThe Importance of Cybersecurity for Digital Transformation
The Importance of Cybersecurity for Digital Transformation
NUS-ISS27 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Combining Orchestration and Choreography for a Clean Architecture by ThomasHeinrichs1
Combining Orchestration and Choreography for a Clean ArchitectureCombining Orchestration and Choreography for a Clean Architecture
Combining Orchestration and Choreography for a Clean Architecture
ThomasHeinrichs169 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS34 views
Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price15 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS28 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS41 views

Demystifying the Foreman

  • 1. Demystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the ForemanDemystifying the Foreman Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto CfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCampCfgMgmtCamp February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016February 1st, 2016
  • 2. whoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoamiwhoami • Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto • SysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at InuitsSysAdmin at Inuits • CentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman userCentOS / Puppet / The Foreman user • Foreman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelistForeman evangelist
  • 4. The Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecasesThe Foreman: usecases • 22222222222222222012-2013: Puppet Reporting FFFFFFFFFFFFFFFFForeman < 1.0 RRRRRRRRRRRRRRRRReplacement for Puppet Dashboard • 22222222222222222014-now: Everything! NNNNNNNNNNNNNNNNNow using Foreman 1.9.3 CCCCCCCCCCCCCCCCContinuously upgrading from 1.3 AAAAAAAAAAAAAAAAAvoiding .0 releases FFFFFFFFFFFFFFFFForeman is always patched 1111111111111111100% of our patches are upstream!
  • 5. Our R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D labOur R&D lab • 1111111111111111130 hosts • 111111111111111110 compute resources 99999999999999999 libvirt 11111111111111111 VMware • 44444444444444444 locations • 44444444444444444 smart proxies • 33333333333333333 organisations
  • 6. What we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we useWhat we use • PPPPPPPPPPPPPPPPProvisioning • PPPPPPPPPPPPPPPPPuppet parameters (ENC) • PPPPPPPPPPPPPPPPPuppet reporting • AAAAAAAAAAAAAAAAAdvanced networking • DDDDDDDDDDDDDDDDDNS DHCP TFTP proxies
  • 7. Building and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuildingBuilding and rebuilding Licensed under a Creative Commons Attribution 2.0 License https://www.flickr.com/photos/andrec/3525054487
  • 8. Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman?Demystifying the Foreman? • FFFFFFFFFFFFFFFFForeman has a large scope • YYYYYYYYYYYYYYYYYou really need it • IIIIIIIIIIIIIIIIIt can be scary to patch it in prod
  • 9. What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside?What is inside? • FFFFFFFFFFFFFFFFForeman • SSSSSSSSSSSSSSSSSmart-proxy • IIIIIIIIIIIIIIIIInstaller (puppet modules) • CCCCCCCCCCCCCCCCCommunity templates • PPPPPPPPPPPPPPPPPlugins • hhhhhhhhhhhhhhhhhammer, hammer-foreman
  • 10. Foreman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overviewForeman overview Licensed under a Creative Commons Attribution-ShareAlike 3.0 License http://theforeman.org
  • 11. Technologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involvedTechnologies involved • RRRRRRRRRRRRRRRRRuby RRRRRRRRRRRRRRRRRuby-on-Rails HHHHHHHHHHHHHHHHHammer, kafo AAAAAAAAAAAAAAAAA lot of rubygems SSSSSSSSSSSSSSSSStrong relationship with fog • PPPPPPPPPPPPPPPPPuppet WWWWWWWWWWWWWWWWWorks best with Puppet 3 UUUUUUUUUUUUUUUUUse the API • +++++++++++++++++ smart proxies • +++++++++++++++++ plugins
  • 12. Getting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting startedGetting started Licensed under a Creative Commons Attribution 2.0 License https://www.flickr.com/photos/horiavarlan/4747872021
  • 13. Tip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyoneTip for anyone • BBBBBBBBBBBBBBBBBackups, backups, backups • SSSSSSSSSSSSSSSSSometimes we needed a full restore • SSSSSSSSSSSSSSSSSometimes partial restore • SSSSSSSSSSSSSSSSSometime importing the backup elsewhere to get data
  • 14. Your development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environmentYour development environment The basic tools: Ruby(-devel), Git, . . . git clone https://github.com/theforeman/ foreman cd foreman virtualenv ruby193 source ruby193/bin/activate pip install rubyenv rubyenv list rubyenv install 1.9.3−p551 Now you have ruby 1.9.3 in your path
  • 15. Copy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some filesCopy and change some files cp config/settings.yaml.example config/settings.yaml cp config/database.yml.example config/database.yml
  • 16. settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev)settings.yaml tuning (for dev) :login: false :require_ssl: false :locations_enabled: false :organizations_enabled: false
  • 17. Install the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DBInstall the dependencies and the DB bundle install bundle exec rake db:migrate bundle exec rake db:seed
  • 18. Additional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commandsAdditional commands bundle update bundle install −−without libvirt bundle exec rake permissions:reset bundle exec rails server
  • 19. Running testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning testsRunning tests Licensed under a Creative Commons Attribution 2.0 License https://www.flickr.com/photos/dahlstroms/3945656390
  • 20. Remove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverageRemove test coverage It is slow and eats memory vi test/test_helper.rb #require `simplecov ' #SimpleCov.start `rails ' do # add_group `API', `app/controllers/api' #end git update−index −−assume−unchanged test/ test_helper.rb
  • 21. Running all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one testRunning all or one test bundle exec rake test bundle exec ruby −Itest test/unit/ host_test.rb
  • 23. Join the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the communityJoin the community • IIIIIIIIIIIIIIIIIRC: #theforeman, #theforeman-dev on freenode • MMMMMMMMMMMMMMMMMailing lists: foreman-users, foreman-devel • TTTTTTTTTTTTTTTTTickets tracker: projects.theforeman.org • gggggggggggggggggithub.com/theforeman • cccccccccccccccccfgmgmtcamp + construction day
  • 24. Contribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelinesContribution guidelines • tttttttttttttttttheforeman.org > community • tttttttttttttttttheforeman.org > community > handbook • NNNNNNNNNNNNNNNNNot happy? Improve them • gggggggggggggggggithub.com/theforeman/theforeman.org
  • 26. Pull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requestsPull requests • EEEEEEEEEEEEEEEEEach PR requires: AAAAAAAAAAAAAAAAA ticket in redmine AAAAAAAAAAAAAAAAA compliant commit summary AAAAAAAAAAAAAAAAA detailed commit message • IIIIIIIIIIIIIIIIInclude tests (if possible) • SSSSSSSSSSSSSSSSSpeak with other, explain your usecase
  • 27. Lifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull requestLifecycle of a Pull request • IIIIIIIIIIIIIIIIIt gets refused by the Foreman bot :-) • YYYYYYYYYYYYYYYYYou get some feedback • SSSSSSSSSSSSSSSSSomeone allows tests to run ([test]) • FFFFFFFFFFFFFFFFFix the tests/respond to feedbacks • PPPPPPPPPPPPPPPPPR gets accepted • FFFFFFFFFFFFFFFFFix another bug :-)
  • 29. Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests?Where to pull requests? • TTTTTTTTTTTTTTTTThere is no master branch • DDDDDDDDDDDDDDDDDevelop and test against develop branch • FFFFFFFFFFFFFFFFFM team will backport to stable if needed • AAAAAAAAAAAAAAAAAsk in the ticket if you need a backport (e.g #11375)
  • 30. Going deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeperGoing deeper Licensed under a Creative Commons Attribution 2.0 License https://www.flickr.com/photos/128398720@N04/15424266506/
  • 31. Debugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resourcesDebugging compute resources • TTTTTTTTTTTTTTTTTry with another client (with Foreman credentials) • TTTTTTTTTTTTTTTTTry with another compute resource • TTTTTTTTTTTTTTTTTry with another piece of hardware
  • 32. Contributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modulesContributing to Puppet modules • OOOOOOOOOOOOOOOOOpen pull requests directly • CCCCCCCCCCCCCCCCCompat with Puppet 3 and 4 (no 2.7) • FFFFFFFFFFFFFFFFFollow Puppet best practices • DDDDDDDDDDDDDDDDDiscuss deep changes with foreman-dev • TTTTTTTTTTTTTTTTTravis/spec skeleton in foreman-installer-modulesync
  • 33. Non-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contributionNon-code contribution • JJJJJJJJJJJJJJJJJoin to mailing lists discussions • JJJJJJJJJJJJJJJJJoin to the IRC channel • CCCCCCCCCCCCCCCCContribute to the website (release notes!) • CCCCCCCCCCCCCCCCCommunity templates (e.g bridge support is coming) • BBBBBBBBBBBBBBBBBlog posts • TTTTTTTTTTTTTTTTTriage pending pull requests
  • 35. Foreman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is matureForeman is mature • BBBBBBBBBBBBBBBBBut releases frequently • DDDDDDDDDDDDDDDDDeep changes happens often • GGGGGGGGGGGGGGGGGet a test environment if possible • TTTTTTTTTTTTTTTTThere is room for improvement
  • 36. The community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is openThe community is open • CCCCCCCCCCCCCCCCCome to us and discuss • YYYYYYYYYYYYYYYYYou are probably not alone • TTTTTTTTTTTTTTTTThere is work for everyone • TTTTTTTTTTTTTTTTTake part of decisions
  • 37. Avoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troublesAvoid the troubles • UUUUUUUUUUUUUUUUUse RPM/packages: the stack is too big • SSSSSSSSSSSSSSSSSend your patches upstream • AAAAAAAAAAAAAAAAA patch not upstreamed slows you down • IIIIIIIIIIIIIIIIIf it is VERY specific, make a plugin
  • 38. LinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinksLinks • hhhhhhhhhhhhhhhhhttp://theforeman.org/ • hhhhhhhhhhhhhhhhhttp://theforeman.org/blog/ • hhhhhhhhhhhhhhhhhttp://theforeman.org/contribute.html • hhhhhhhhhhhhhhhhhttp://theforeman.org/handbook.html • hhhhhhhhhhhhhhhhhttp://projects.theforeman.org/projects/foreman
  • 39. Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?Any Question?
  • 40. ContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContactContact Julien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien PivottoJulien Pivotto julien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eujulien@inuits.eu @roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie@roidelapluie inuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuitsinuits https://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.euhttps://inuits.eu info@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.euinfo@inuits.eu +32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636+32 473 441 636