Automating Infrastructure with
Foreman and Katello
Sachin Ghai
@sghai
Agenda
➢ Introduction
➢ Provisioning
➢ Smart-proxy
➢ Plugin – Discovery
➢ Katello
➢ Content Management
➢ Demo
Foreman
➢ Provisioning and infrastructure Management project
➢ Performs unattended systems installation of Bare Metal,
Private and public clouds
➢ Supports various operating systems
➢ Extendible with various plugins
➢ DNS, DHCP and TFTP management via smart-proxy
➢ Discovers unknown hosts/systems via PXE
Foreman
➢ Manages the Life-cycle of systems by:
➢ Provisioning
➢ Configuration
➢ Integrated Configuration management via Puppet
➢ Automate repetitive task and quickly deploy applications
➢ Monitoring
➢ Ability to create Trends and Charts on given data
➢ Reports from Puppet run
➢ More reporting via plugins: ABRT and Openscap
Distributed Architecture
➢ Smart Proxies located locally on Foreman itself
or independent – used for orchestration of
DNS, DHCP, etc.
➢ To manage whole infrastructure from one
central place when its distributed over different
locations
Compute Resources
➢ Foreman Offers a unified interface to all major compute-providers
➢ Uses Ruby Library 'Fog' to abstract the communication details from
all supported compute-resources
➢ Uses Host-groups to describe OS and puppet-config
➢ Supported Compute-resources are
➢ Libvirt
➢ Ovirt
➢ Openstack
➢ Vmware
➢ Docker
➢ EC2
Hostgroups
➢ Hostgroup contains definition of operating system, puppet
configuration and compute-profile
➢ This helps when provisioning multiple hosts with same properties like
(OS, arch, media etc)
API & CLI
➢ Full RESTful API
➢ Docs at http://foreman.example.com/apidoc on your
Foreman server
➢ Hammer CLI
➢ Easy to use, great for working in shell
➢ Automating stuff to perform bulk operations easily
Plugins
More Info: http://projects.theforeman.org/projects/foreman/wiki/List_of_Plugins
Rich ecosystem of existing plugins
Discovery
➢ Metal as a Service
Discovery
➢ http://theforeman.org/plugins/foreman_discovery/2.0/
➢ Unknown host boots via DHCP/PXE to a ramdisk
➢ Becomes available in Foreman as a “Discovered Host”
➢ Report hardware capabilities (Memory, CPU, disk etc)
➢ Provision with as few as NO clicks
➢ Automatic provisioning via rules on arbitrary facts:
➢ cpu_count < 8 → web server host group
➢ cpu_count >= 8 → db box host group
Katello
➢ Brings Content Lifecycle Management
➢ Sync RPM, Docker, and Puppet content
➢ Spin repositories with filters using Content Views
Content Sources
➢ Direct Upload
➢ Sync External Sources
➢ YUM Repositories
➢ Puppet forges
➢ Docker registries
➢ Red Hat CDN(w/ subscription manifest)
Content-view
➢ Manages the application life-cycle
➢ Dev → QA → Production
➢ User can set filters
➢ Filters allows to customize the contents to be
made available to client host
Default Organization View
➢ Simplest View
➢ Available by default
➢ Everything you've synced is visible
OS Repo
App Repo
Puppet Modules
Filters
Publish Publish
Version 1.0
Selected Puppet Modules
Custom Content Views
➢ Add repositories
➢ Add filters
➢ Publish a version (snapshot) of the Content View and it becomes available in the
Library
Lifecycle Environment
➢ Library is where all content goes first
➢ Then move through one or many defined promotion
paths
Version 1
LibraryLibrary
Promotion Path of a Content View
Version 1
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Promotion Path of a Content View
Version 1
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Version 1
Promotion Path of a Content View
Version 1
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Version 1 Version 1
Promotion Path of a Content View
Version 2
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Version 1 Version 1
QA Failure
Promotion Path of a Content View
Version 2
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Version 2 Version 1
Promotion Path of a Content View
Version 2
LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
Version 2 Version 2 Version 2
More in Katello
➢ Patch Management
➢ Emergency Patches
➢ Errata Reports
➢ Incremental updates
➢ Skip the life-cycle
➢ Ideal for emergency patches
➢ Docker
➢ And much more!
Questions?
➢ Visit us:
➢ http://theforeman.org/
➢ http://www.katello.org/
➢ Find us:
➢ IRC: irc.freenode.net
➢ #theforeman
➢ #theforeman-dev
➢ Mailing Lists on Google groups
➢ foreman-users
➢ foreman-dev

Auto infra with_foreman_katello

  • 1.
    Automating Infrastructure with Foremanand Katello Sachin Ghai @sghai
  • 2.
    Agenda ➢ Introduction ➢ Provisioning ➢Smart-proxy ➢ Plugin – Discovery ➢ Katello ➢ Content Management ➢ Demo
  • 3.
    Foreman ➢ Provisioning andinfrastructure Management project ➢ Performs unattended systems installation of Bare Metal, Private and public clouds ➢ Supports various operating systems ➢ Extendible with various plugins ➢ DNS, DHCP and TFTP management via smart-proxy ➢ Discovers unknown hosts/systems via PXE
  • 4.
    Foreman ➢ Manages theLife-cycle of systems by: ➢ Provisioning ➢ Configuration ➢ Integrated Configuration management via Puppet ➢ Automate repetitive task and quickly deploy applications ➢ Monitoring ➢ Ability to create Trends and Charts on given data ➢ Reports from Puppet run ➢ More reporting via plugins: ABRT and Openscap
  • 5.
    Distributed Architecture ➢ SmartProxies located locally on Foreman itself or independent – used for orchestration of DNS, DHCP, etc. ➢ To manage whole infrastructure from one central place when its distributed over different locations
  • 7.
    Compute Resources ➢ ForemanOffers a unified interface to all major compute-providers ➢ Uses Ruby Library 'Fog' to abstract the communication details from all supported compute-resources ➢ Uses Host-groups to describe OS and puppet-config ➢ Supported Compute-resources are ➢ Libvirt ➢ Ovirt ➢ Openstack ➢ Vmware ➢ Docker ➢ EC2
  • 8.
    Hostgroups ➢ Hostgroup containsdefinition of operating system, puppet configuration and compute-profile ➢ This helps when provisioning multiple hosts with same properties like (OS, arch, media etc)
  • 9.
    API & CLI ➢Full RESTful API ➢ Docs at http://foreman.example.com/apidoc on your Foreman server ➢ Hammer CLI ➢ Easy to use, great for working in shell ➢ Automating stuff to perform bulk operations easily
  • 10.
  • 11.
  • 12.
    Discovery ➢ http://theforeman.org/plugins/foreman_discovery/2.0/ ➢ Unknownhost boots via DHCP/PXE to a ramdisk ➢ Becomes available in Foreman as a “Discovered Host” ➢ Report hardware capabilities (Memory, CPU, disk etc) ➢ Provision with as few as NO clicks ➢ Automatic provisioning via rules on arbitrary facts: ➢ cpu_count < 8 → web server host group ➢ cpu_count >= 8 → db box host group
  • 13.
    Katello ➢ Brings ContentLifecycle Management ➢ Sync RPM, Docker, and Puppet content ➢ Spin repositories with filters using Content Views
  • 14.
    Content Sources ➢ DirectUpload ➢ Sync External Sources ➢ YUM Repositories ➢ Puppet forges ➢ Docker registries ➢ Red Hat CDN(w/ subscription manifest)
  • 15.
    Content-view ➢ Manages theapplication life-cycle ➢ Dev → QA → Production ➢ User can set filters ➢ Filters allows to customize the contents to be made available to client host
  • 16.
    Default Organization View ➢Simplest View ➢ Available by default ➢ Everything you've synced is visible
  • 17.
    OS Repo App Repo PuppetModules Filters Publish Publish Version 1.0 Selected Puppet Modules Custom Content Views ➢ Add repositories ➢ Add filters ➢ Publish a version (snapshot) of the Content View and it becomes available in the Library
  • 18.
    Lifecycle Environment ➢ Libraryis where all content goes first ➢ Then move through one or many defined promotion paths Version 1 LibraryLibrary
  • 19.
    Promotion Path ofa Content View Version 1 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production
  • 20.
    Promotion Path ofa Content View Version 1 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production Version 1
  • 21.
    Promotion Path ofa Content View Version 1 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production Version 1 Version 1
  • 22.
    Promotion Path ofa Content View Version 2 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production Version 1 Version 1 QA Failure
  • 23.
    Promotion Path ofa Content View Version 2 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production Version 2 Version 1
  • 24.
    Promotion Path ofa Content View Version 2 LibraryLibrary DevelopmentDevelopmentDevelopmentDevelopment QA Production Version 2 Version 2 Version 2
  • 25.
    More in Katello ➢Patch Management ➢ Emergency Patches ➢ Errata Reports ➢ Incremental updates ➢ Skip the life-cycle ➢ Ideal for emergency patches ➢ Docker ➢ And much more!
  • 26.
    Questions? ➢ Visit us: ➢http://theforeman.org/ ➢ http://www.katello.org/ ➢ Find us: ➢ IRC: irc.freenode.net ➢ #theforeman ➢ #theforeman-dev ➢ Mailing Lists on Google groups ➢ foreman-users ➢ foreman-dev

Editor's Notes

  • #2 Talk slower
  • #3 Introductory talk – first half basic introduction, second half – customizing to fit your own needs in your data center How many people use Foreman today? Puppet? Chef? Salt? Anyone using non-puppet in foreman? TALK SLOWER
  • #6 Install a basic foreman – smart-proxy runs on the localhost with foreman
  • #7 Talk slower
  • #10 Talk slower
  • #11 Talk slower
  • #12 Talk slower
  • #13 Talk slower
  • #14 Talk slower
  • #26 Talk slower
  • #27 Let us know!