SlideShare a Scribd company logo
1 of 32
Foreman in Your
Data Center
Lukáš Zapletal
@lzap
Agenda
● Introduction
– Provisioning
– Configuration
– Monitoring
● History and Technology
● Architecture and Installation
● Demo: Foreman Basics
● Customizing foreman
– Automating with CLI + API
– Plugins (Bootdisk, Discovery, Docker, Katello, Chef, Salt, Hooks, Remote
Execution)
● Demo: Foreman Plugins
Foreman's Realm
Managing the Lifecycle of your Systems
Foreman
● Provision new machines or containers to
(almost) anything
– Bare metal, oVirt, libvirt, VMware, Docker, EC2,
Rackspace, Digital Ocean, OpenStack, etc.
● If we don't support it today, we can via new
plugins
● Provisioning types:
– PXE - via PXELinux and kickstart, preseed, AutoYAST, etc
– Image-based - cloning, configured over SSH or user data (cloudinit)
● For virtualization provider, we create the VM
● For everything we orchestrate related services through Smart Proxies
– DNS - DHCP / TFTP
– FreeIPA Realm - Configuration Management
● Puppet
● Via plugins:
– Chef
– Salt
– Ansible
● Automatic registration & setup of
clients, including autosigning
certs/keys
● Defining:
● Classes / states
● Parameters / pillars
● Inventory data:
● Facts / Grains
● results of configuration runs
● Generic Report API with graphs/trends:
– System Inventories
– Reports from runs
– Generic reports: ABRT, OpenSCAP
● Context sensitive search:
– Not full-text (SQL level)
– Keyword completion
– Works across whole application
Distributed Architecture
● Smart Proxies located locally on Foreman itself or
independent – (orchestration)
● Large organizations and/or multi-tenancy:
– Organizations (Divisions)
– Locations
● Strong RBAC model
– Users / Groups
– Permissions / Filters
● LDAP / MS-AD integration
History
● Project started in July 2009
● Initial set of features: Puppet + PXE provisioning
● 213 unique contributors (winter 2015)
● Core team sponsored by Red Hat (GMT +10 -8)
● Translated to 13 languages
● Healthy and friendly community
● Reported usage: Red Hat, CERN, EMC, Citrix, DHL,
BBC, Digg, Good Data, Mozilla, eBay/Paypal (100,000
nodes)
Technology
Foreman itself
– Ruby on Rails application
– Targeted on UNIX platforms, Ruby 1.9+
– Steep learning curve (git clone, bundle install)
● Smart Proxy
– Ruby / Sinatra application
– Minimum dependencies
– Quick start (git clone, bundle install)
– On all Ruby 1.8+ platforms (incl. MS Windows)
Installation
● Repositories for RHEL/Fedora, Debian/Ubuntu
● Puppet-based installer
● Sane defaults for POC deployments
● Able to install, configure and manage:
– Foreman app
– Smart-proxies
– Services: DNS, DHCP, TFTP, Puppet
– Selected plugins
# foreman-installer -h | wc -l
439
Demo: Foreman Basics
Customization
● Customize Foreman to support your workflows!
– Configuration options in UI: Adminster → Settings
– Smart proxy configuration values (features)
– Automation with API + CLI
– Foreman Plugins
– Smart Proxy Plugins
– Foreman Hooks Plugin
API & CLI
● Full UI coverage
● All of our API is documented
● Documentation DSL generates dynamic Ruby
bindings
● Full RESTful API
– Docs at /apidoc on your Foreman server
– Also available at
http://www.theforeman.org/api/1.9/index.html
Hammer CLI
● On par with UI
● Username/Password authentication
● Easy to use, great for working in shell
hammer salt-key list --smart-proxy=smartproxy.example.com
Plugins
More Info: http://projects.theforeman.org/projects/foreman/wiki/List_of_Plugins
Rich ecosystem of existing plugins
Bootdisk plugin
● Small hybrid ISO downloaded from Host UI page
● Unknown or pre-registred hosts boot chainloads from
Foreman without PXE/TFTP
● Generic image
– iPXE-based, DHCP required
● Host image
– iPXE-based, DHCP not required
● Full host image
– SYSLINUX-based, DHCP required, OS specific
Discovery plugin
● Unknown host boots via DHCP/PXE
– Becomes available in Foreman as a “Discovered Host”
– Workflow remains the same
– Discovery image is RHEL7/CentOS7-based
● 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
Discovery plugin
● Metal as a Service – PXE installation
Discovery plugin
● PXE-less (un)attended workflow (supports EFI)
Docker plugin
● Manage many docker hosts
● Deploy new containers easily & view their
status, logs, etc
● Multiple registry support & integration with
Katello
● https://github.com/theforeman/foreman-docker
Katello plugin
● Content Lifecycle Management
– http://www.katello.org/
● Sync RPM, Docker, and Puppet content
● Spin repositories with filters using Content Views
Katello plugin
● Manage through a lifecycle
– Dev → QA → Production (Environments)
● Patch Management
– Emergency Patches
– Errata Reports
● And much more!
Hooks plugin
● Hooks
– Triggered on actions: on action, do X
● host create/update/delete, build complete, etc.
● X could be anything
– add to nagios
– send an email
● Can be shell, python, ruby, etc.
– More info:
https://github.com/theforeman/foreman_hooks
Salt plugin
● Bootstrapping nodes
● Full interface to keys/autosign
● Define states, pillars via ext_node and ext_pillar
● Import reports (state.highstate results) and
grains into Foreman
● API & CLI
Chef plugin
● Automatic bootstrapping of clients
● Import reports and attributes into Foreman
● Decomission nodes from Chef server when
deleted in Foreman
Remote execution plugin
● Arbitrary commands on hosts
● Job Templates
– Based on Foreman Templating engine
– Input parameters
● Collected data available (Facts)
● Multiple providers architecture:
– SSH (via Smart Proxies)
Writing Foreman Plugins
● Foreman:
– Rails Engine
– Extra Foreman API (plugin registration)
– Distributed as a Ruby GEM
– Template and HOWTO available
● Smart Proxy:
– Sinatra app (REST API)
– Small plugin registration API
– Distributed as a Ruby GEM
What Next?
● Visit us http://theforeman.org/
● If you do something cool with Foreman, let us know!
● Find us:
– IRC: irc.freenode.net
● #theforeman
● #theforeman-dev
– Mailing Lists on Google groups
● foreman-users
● foreman-dev
Demo: Foreman Plugins

More Related Content

What's hot

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 GitlabBen Tullis
 
Automating OpenSCAP with Foreman
Automating OpenSCAP with ForemanAutomating OpenSCAP with Foreman
Automating OpenSCAP with Foremanszadok
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsThomas Morin
 
Monitoring kubernetes with prometheus
Monitoring kubernetes with prometheusMonitoring kubernetes with prometheus
Monitoring kubernetes with prometheusBrice Fernandes
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Weaveworks
 
Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemFabian Reinartz
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStackAkira Yoshiyama
 
DockerからKubernetesへのシフト
DockerからKubernetesへのシフトDockerからKubernetesへのシフト
DockerからKubernetesへのシフトmasaki nakayama
 
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차Nalee Jang
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법Open Source Consulting
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVMPradeep Kumar
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
Application Performance Monitoring with OpenTelemetry
Application Performance Monitoring with OpenTelemetryApplication Performance Monitoring with OpenTelemetry
Application Performance Monitoring with OpenTelemetryJan Mikeš
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingShapeBlue
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門VirtualTech Japan Inc.
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안NAVER D2
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Murat Mukhtarov
 

What's hot (20)

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
 
Automating OpenSCAP with Foreman
Automating OpenSCAP with ForemanAutomating OpenSCAP with Foreman
Automating OpenSCAP with Foreman
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
 
Monitoring kubernetes with prometheus
Monitoring kubernetes with prometheusMonitoring kubernetes with prometheus
Monitoring kubernetes with prometheus
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring System
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
 
DockerからKubernetesへのシフト
DockerからKubernetesへのシフトDockerからKubernetesへのシフト
DockerからKubernetesへのシフト
 
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Application Performance Monitoring with OpenTelemetry
Application Performance Monitoring with OpenTelemetryApplication Performance Monitoring with OpenTelemetry
Application Performance Monitoring with OpenTelemetry
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and Troubleshooting
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...Kubernetes networking: Introduction to overlay networks, communication models...
Kubernetes networking: Introduction to overlay networks, communication models...
 

Similar to Foreman in your datacenter

OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam Ruzicka
OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam RuzickaOSCamp 2019 | #3 Ansible: Foreman Discovery by Adam Ruzicka
OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam RuzickaNETWAYS
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Stephen Benjamin
 
OSDC 2015: Stephen Benjamin | Foreman in Your Data Center
OSDC 2015: Stephen Benjamin | Foreman in Your Data CenterOSDC 2015: Stephen Benjamin | Foreman in Your Data Center
OSDC 2015: Stephen Benjamin | Foreman in Your Data CenterNETWAYS
 
Installation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server EditionInstallation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server EditionSammy Fung
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesJérôme Petazzoni
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniTheFamily
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfchalermpany
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...OpenStack Korea Community
 
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...Wong Hoi Sing Edison
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkJérôme Petazzoni
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingStanislav Osipov
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningRUDDER
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Giacomo Tirabassi
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & OperatorsKubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & OperatorsSIGHUP
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever buildingEdmond Yu
 
The Foreman Project
The Foreman ProjectThe Foreman Project
The Foreman ProjectRahul Bajaj
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installationRobert Bohne
 

Similar to Foreman in your datacenter (20)

OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam Ruzicka
OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam RuzickaOSCamp 2019 | #3 Ansible: Foreman Discovery by Adam Ruzicka
OSCamp 2019 | #3 Ansible: Foreman Discovery by Adam Ruzicka
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015
 
OSDC 2015: Stephen Benjamin | Foreman in Your Data Center
OSDC 2015: Stephen Benjamin | Foreman in Your Data CenterOSDC 2015: Stephen Benjamin | Foreman in Your Data Center
OSDC 2015: Stephen Benjamin | Foreman in Your Data Center
 
Installation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server EditionInstallation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server Edition
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme PetazzoniWorkshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdfWhat_s_New_in_OpenShift_Container_Platform_4.6.pdf
What_s_New_in_OpenShift_Container_Platform_4.6.pdf
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
 
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 
SCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scalingSCM Puppet: from an intro to the scaling
SCM Puppet: from an intro to the scaling
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators Kubernetes extensibility: crd & operators
Kubernetes extensibility: crd & operators
 
Kubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & OperatorsKubernetes extensibility: CRDs & Operators
Kubernetes extensibility: CRDs & Operators
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
The Foreman Project
The Foreman ProjectThe Foreman Project
The Foreman Project
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Foreman in your datacenter

  • 1. Foreman in Your Data Center Lukáš Zapletal @lzap
  • 2. Agenda ● Introduction – Provisioning – Configuration – Monitoring ● History and Technology ● Architecture and Installation ● Demo: Foreman Basics ● Customizing foreman – Automating with CLI + API – Plugins (Bootdisk, Discovery, Docker, Katello, Chef, Salt, Hooks, Remote Execution) ● Demo: Foreman Plugins
  • 3. Foreman's Realm Managing the Lifecycle of your Systems
  • 5. ● Provision new machines or containers to (almost) anything – Bare metal, oVirt, libvirt, VMware, Docker, EC2, Rackspace, Digital Ocean, OpenStack, etc. ● If we don't support it today, we can via new plugins
  • 6. ● Provisioning types: – PXE - via PXELinux and kickstart, preseed, AutoYAST, etc – Image-based - cloning, configured over SSH or user data (cloudinit) ● For virtualization provider, we create the VM ● For everything we orchestrate related services through Smart Proxies – DNS - DHCP / TFTP – FreeIPA Realm - Configuration Management
  • 7. ● Puppet ● Via plugins: – Chef – Salt – Ansible ● Automatic registration & setup of clients, including autosigning certs/keys ● Defining: ● Classes / states ● Parameters / pillars ● Inventory data: ● Facts / Grains ● results of configuration runs
  • 8. ● Generic Report API with graphs/trends: – System Inventories – Reports from runs – Generic reports: ABRT, OpenSCAP ● Context sensitive search: – Not full-text (SQL level) – Keyword completion – Works across whole application
  • 9. Distributed Architecture ● Smart Proxies located locally on Foreman itself or independent – (orchestration) ● Large organizations and/or multi-tenancy: – Organizations (Divisions) – Locations ● Strong RBAC model – Users / Groups – Permissions / Filters ● LDAP / MS-AD integration
  • 10.
  • 11. History ● Project started in July 2009 ● Initial set of features: Puppet + PXE provisioning ● 213 unique contributors (winter 2015) ● Core team sponsored by Red Hat (GMT +10 -8) ● Translated to 13 languages ● Healthy and friendly community ● Reported usage: Red Hat, CERN, EMC, Citrix, DHL, BBC, Digg, Good Data, Mozilla, eBay/Paypal (100,000 nodes)
  • 12. Technology Foreman itself – Ruby on Rails application – Targeted on UNIX platforms, Ruby 1.9+ – Steep learning curve (git clone, bundle install) ● Smart Proxy – Ruby / Sinatra application – Minimum dependencies – Quick start (git clone, bundle install) – On all Ruby 1.8+ platforms (incl. MS Windows)
  • 13. Installation ● Repositories for RHEL/Fedora, Debian/Ubuntu ● Puppet-based installer ● Sane defaults for POC deployments ● Able to install, configure and manage: – Foreman app – Smart-proxies – Services: DNS, DHCP, TFTP, Puppet – Selected plugins # foreman-installer -h | wc -l 439
  • 15. Customization ● Customize Foreman to support your workflows! – Configuration options in UI: Adminster → Settings – Smart proxy configuration values (features) – Automation with API + CLI – Foreman Plugins – Smart Proxy Plugins – Foreman Hooks Plugin
  • 16. API & CLI ● Full UI coverage ● All of our API is documented ● Documentation DSL generates dynamic Ruby bindings ● Full RESTful API – Docs at /apidoc on your Foreman server – Also available at http://www.theforeman.org/api/1.9/index.html
  • 17. Hammer CLI ● On par with UI ● Username/Password authentication ● Easy to use, great for working in shell hammer salt-key list --smart-proxy=smartproxy.example.com
  • 19. Bootdisk plugin ● Small hybrid ISO downloaded from Host UI page ● Unknown or pre-registred hosts boot chainloads from Foreman without PXE/TFTP ● Generic image – iPXE-based, DHCP required ● Host image – iPXE-based, DHCP not required ● Full host image – SYSLINUX-based, DHCP required, OS specific
  • 20. Discovery plugin ● Unknown host boots via DHCP/PXE – Becomes available in Foreman as a “Discovered Host” – Workflow remains the same – Discovery image is RHEL7/CentOS7-based ● 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
  • 21. Discovery plugin ● Metal as a Service – PXE installation
  • 22. Discovery plugin ● PXE-less (un)attended workflow (supports EFI)
  • 23. Docker plugin ● Manage many docker hosts ● Deploy new containers easily & view their status, logs, etc ● Multiple registry support & integration with Katello ● https://github.com/theforeman/foreman-docker
  • 24. Katello plugin ● Content Lifecycle Management – http://www.katello.org/ ● Sync RPM, Docker, and Puppet content ● Spin repositories with filters using Content Views
  • 25. Katello plugin ● Manage through a lifecycle – Dev → QA → Production (Environments) ● Patch Management – Emergency Patches – Errata Reports ● And much more!
  • 26. Hooks plugin ● Hooks – Triggered on actions: on action, do X ● host create/update/delete, build complete, etc. ● X could be anything – add to nagios – send an email ● Can be shell, python, ruby, etc. – More info: https://github.com/theforeman/foreman_hooks
  • 27. Salt plugin ● Bootstrapping nodes ● Full interface to keys/autosign ● Define states, pillars via ext_node and ext_pillar ● Import reports (state.highstate results) and grains into Foreman ● API & CLI
  • 28. Chef plugin ● Automatic bootstrapping of clients ● Import reports and attributes into Foreman ● Decomission nodes from Chef server when deleted in Foreman
  • 29. Remote execution plugin ● Arbitrary commands on hosts ● Job Templates – Based on Foreman Templating engine – Input parameters ● Collected data available (Facts) ● Multiple providers architecture: – SSH (via Smart Proxies)
  • 30. Writing Foreman Plugins ● Foreman: – Rails Engine – Extra Foreman API (plugin registration) – Distributed as a Ruby GEM – Template and HOWTO available ● Smart Proxy: – Sinatra app (REST API) – Small plugin registration API – Distributed as a Ruby GEM
  • 31. What Next? ● Visit us http://theforeman.org/ ● If you do something cool with Foreman, let us know! ● Find us: – IRC: irc.freenode.net ● #theforeman ● #theforeman-dev – Mailing Lists on Google groups ● foreman-users ● foreman-dev

Editor's Notes

  1. Talk slower
  2. 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
  3. Talk slower
  4. Talk slower
  5. Talk slower
  6. Talk slower
  7. Talk slower
  8. Talk slower
  9. Install a basic foreman – smart-proxy runs on the localhost with foreman
  10. Talk slower
  11. Install a basic foreman – smart-proxy runs on the localhost with foreman
  12. Install a basic foreman – smart-proxy runs on the localhost with foreman
  13. Install a basic foreman – smart-proxy runs on the localhost with foreman
  14. Talk slower
  15. Talk slower
  16. Talk slower
  17. Talk slower
  18. Talk slower
  19. Talk slower
  20. Talk slower
  21. Talk slower
  22. Talk slower
  23. Talk slower
  24. Talk slower
  25. Talk slower
  26. Talk slower
  27. Talk slower
  28. Talk slower
  29. Talk slower
  30. Talk slower.
  31. Let us know!
  32. Talk slower