Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via...

13
Orchestration via Foreman Patrick Pierson, Systems Engineer - http://patrickpierson.us

Transcript of Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via...

Page 1: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

Orchestration via Foreman Patrick Pierson, Systems Engineer - http://patrickpierson.us

Page 2: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

What is Configuration Management?

Configuration Management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional and physical attributes with its requirements, design and operational information throughout its life.

simple answer: Infrastructure as Code

Page 3: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

Configuration Management Systems1. Ruby based

a. Puppetb. Chef

2. Python baseda. Saltb. Ansible

3. Json baseda. Cloudformation

Page 4: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

PuppetPuppet is an open source configuration management utility. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration. Puppet is produced by Puppet Labs, founded by Luke Kanies in 2005.

Puppet server (puppet master) - Puppet Server is a next-generation alternative to current Puppet master, which builds on Clojure technology stack products like PuppetDB. Drop-in replacement for the existing Puppet master

node "server.example.com" { class { "ntp":

servers => [ '0.us.pool.ntp.org iburst','1.us.pool.ntp.org iburst''],autoupdate => false,restrict => [],enable => true,

}}

Page 5: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

ChefChef is a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration "recipes".

● Chef server stores your recipes as well as other configuration data.● Chef client runs on each node and contacts the Chef server

name 'server.example.com'

description 'Role applied to the system that should be an NTP server.'

default_attributes(

'ntp' => {

'servers' => ['0.pool.ntp.org', '1.pool.ntp.org'],

'peers' => ['time0.int.example.org', 'time1.int.example.org'],

'restrictions' => ['10.0.0.0 mask 255.0.0.0 nomodify notrap']

}

)

Page 6: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

SaltSalt platform or SaltStack is a Python-based open source configuration management and remote execution application. Supporting the "infrastructure-as-code" approach to deployment and cloud management

● salt-master - server that pushes configs to minions● salt-minion - contacts master with system information and takes orders from salt-master

ntpd: service.running: - name: {{ ntp.service }} - enable: True - require: - pkg: ntp{% if ntpd_conf_src %} - watch: - file: ntpd_conf{% endif %}

in this example the ntp servers are set in the config file

Page 7: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

AnsibleAnsible is an open-source software platform for configuring and managing computers. It combines multi-node software deployment, ad hoc task execution, and configuration management. It manages nodes over SSH or PowerShell and requires Python (2.4 or later) to be installed on them. Modules work over JSON and standard output and can be written in any programming language. The system uses YAML to express reusable descriptions of systems.

- hosts: server.example.com

roles:

- role: ntp

ntp_config_server: [0.pool.ntp.org, 1.pool.ntp.org]

Page 8: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

CloudformationAWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myDhcpOptions" : { "Type" : "AWS::EC2::DHCPOptions", "Properties" : { "DomainName" : "example.com", "DomainNameServers" : [ "AmazonProvidedDNS" ], "NtpServers" : [ "10.2.5.1" ], "Tags" : [ { "Key" : "foo", "Value" : "bar" } ] } } }}

Page 9: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

ForemanForeman is an open source project that helps system administrators manage servers throughout their lifecycle, from provisioning and configuration to orchestration and monitoring. Using Puppet, Chef, Salt, and Foreman's smart proxy architecture, you can easily automate repetitive tasks, quickly deploy applications, and proactively manage change, both on-premise with VMs and bare-metal or in the cloud.

Page 10: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

Ohad Levy - https://prezi.com/heph6y7kzole/introduction-to-foreman/

Page 11: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http

Felix Massem - https://blog.codecentric.de/en/2014/04/foreman-complete-lifecycle-management-tool/

Page 12: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http
Page 13: Orchestration via Foreman - files.meetup.comfiles.meetup.com/18251150/150606 - Orchestration via Foreman.pdf · Orchestration via Foreman Patrick Pierson, Systems Engineer - http