SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programming
Kiwamu Okabe
 

Was ist angesagt? (16)

Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemd
 
DNSSec
DNSSecDNSSec
DNSSec
 
A call to give back puppetlabs-corosync to the community
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
 
Puppet and Software Delivery
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software Delivery
 
systemd and configuration management
systemd and configuration managementsystemd and configuration management
systemd and configuration management
 
Coworking with git
Coworking with gitCoworking with git
Coworking with git
 
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...
OSDC 2016 - Automating a R&D lab with Foreman: What can be hard? by Julien Pi...
 
We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
 
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...
Destruction, Decapods and Doughnuts: Continuous Delivery for Audio & Video Fa...
 
Functional IoT: Hardware and Platform
Functional IoT: Hardware and PlatformFunctional IoT: Hardware and Platform
Functional IoT: Hardware and Platform
 
Metasepi team meeting #16: Safety on ATS language + MCU
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
 
ATS/LF for Coq users
ATS/LF for Coq usersATS/LF for Coq users
ATS/LF for Coq users
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
 
Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programming
 
Metasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCUMetasepi team meeting #14: ATS programming on MCU
Metasepi team meeting #14: ATS programming on MCU
 
Git and Unity
Git and UnityGit and Unity
Git and Unity
 

Andere mochten auch

How to take care of your teeth freebie - bagaimana cara menjaga gigi
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 mss
 

Andere mochten auch (20)

Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
How to take care of your teeth freebie - bagaimana cara menjaga gigi
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
 
PXEless Discovery with Foreman
PXEless Discovery with ForemanPXEless Discovery with Foreman
PXEless Discovery with Foreman
 
Foreman - Process manager for applications with multiple components
Foreman - Process manager for applications with multiple componentsForeman - Process manager for applications with multiple components
Foreman - Process manager for applications with multiple components
 
Foreman and Chef integration at ChefConf 2014
Foreman and Chef integration at ChefConf 2014Foreman and Chef integration at ChefConf 2014
Foreman and Chef integration at ChefConf 2014
 
Foreman como provisionador
Foreman como provisionadorForeman como provisionador
Foreman como provisionador
 
SaltStack Integration with Foreman (2016)
SaltStack Integration with Foreman (2016)SaltStack Integration with Foreman (2016)
SaltStack Integration with Foreman (2016)
 
Auto infra with_foreman_katello
Auto infra with_foreman_katelloAuto infra with_foreman_katello
Auto infra with_foreman_katello
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentation
 
Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016Ovirt and gluster_hyperconvergence_devconf-2016
Ovirt and gluster_hyperconvergence_devconf-2016
 
Fossasia 16 Integrating oVirt, Foreman and Katello to empower your data-center
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
 
What does "monitoring" mean? (FOSDEM 2017)
What does "monitoring" mean? (FOSDEM 2017)What does "monitoring" mean? (FOSDEM 2017)
What does "monitoring" mean? (FOSDEM 2017)
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and Gitlab
 
Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015Deploying and managing gluster using ovirt - fudcon2015
Deploying and managing gluster using ovirt - fudcon2015
 
Managing ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_CinderManaging ceph through_oVirt_using_Cinder
Managing ceph through_oVirt_using_Cinder
 
Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
 
Managing your SaltStack Minions with Foreman
Managing your SaltStack Minions with ForemanManaging your SaltStack Minions with Foreman
Managing your SaltStack Minions with Foreman
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
 

Ähnlich wie Demystifying the Foreman

DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs
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 Bora
 
الكفاح المسلح
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
zulabook
 
الكفاح المسلح
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
zulabooks
 

Ähnlich wie Demystifying the Foreman (13)

Enhance OpenSSH for fun and security
Enhance OpenSSH for fun and securityEnhance OpenSSH for fun and security
Enhance OpenSSH for fun and security
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
DrupalCamp Arad - Drupal 7 as a framework - an overview of available APIs
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
 
Innovateeurope
InnovateeuropeInnovateeurope
Innovateeurope
 
Migrating to Puppet 5
Migrating to Puppet 5Migrating to Puppet 5
Migrating to Puppet 5
 
Yahoo! Developer Networks ♥ Startups
Yahoo! Developer Networks ♥ StartupsYahoo! Developer Networks ♥ Startups
Yahoo! Developer Networks ♥ Startups
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
[Fitzmaurice] It's About the Process: How To Do Workflow Right
[Fitzmaurice] It's About the Process: How To Do Workflow Right[Fitzmaurice] It's About the Process: How To Do Workflow Right
[Fitzmaurice] It's About the Process: How To Do Workflow Right
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
الكفاح المسلح
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
 
الكفاح المسلح
الكفاح المسلحالكفاح المسلح
الكفاح المسلح
 
3 S's to a Successful Launch
3 S's to a Successful Launch3 S's to a Successful Launch
3 S's to a Successful Launch
 

Mehr von Julien Pivotto

Mehr von Julien Pivotto (20)

The O11y Toolkit
The O11y ToolkitThe O11y Toolkit
The O11y Toolkit
 
What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
 
Prometheus: What is is, what is new, what is coming
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
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmt
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in Grafana
 
YAML Magic
YAML MagicYAML Magic
YAML Magic
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as Code
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to Ansible
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

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