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

Post on 21-Aug-2020

23 views 0 download

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

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

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

Configuration Management Systems1. Ruby based

a. Puppetb. Chef

2. Python baseda. Saltb. Ansible

3. Json baseda. Cloudformation

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,

}}

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']

}

)

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

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]

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" } ] } } }}

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.

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

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