roger ignazio – puppetconf 2015 mesos, docker, and...
TRANSCRIPT
![Page 1: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/1.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 1
MANAGING MESOS, DOCKER, AND CHRONOS WITH PUPPET
Roger Ignazio – PuppetConf 2015
![Page 2: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/2.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 2
Roger Ignazio
Infrastructure Automation Engineer @ Mesosphere
@rogerignazio
ABOUT ME$(whoami)
![Page 3: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/3.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 3
mesosinaction.com
Code: ctwpuppet
MESOS IN ACTION$(whoami)
![Page 4: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/4.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 4
AGENDA
● Getting started● Deploying a Mesos cluster● Building a Docker image● Creating a Chronos job● Demo● Provisioning infrastructure – bare-metal and cloud● Q & A
![Page 5: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/5.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 5
AUDIENCE POLL
![Page 6: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/6.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 6
Mesos● Represent many machines (thousands) as a single entity● Advertise resources directly to applications
Docker● Easily package and deploy apps (with dependencies)● Analogous to VMs, but minus the overhead*
Chronos● Distributed, highly available Cron for Mesos● Run scheduled tasks in cgroups, Docker containers
ABOUT MESOS, DOCKER, AND CHRONOSGETTING STARTED
![Page 7: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/7.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 7
● Declare desired state for your infrastructure● Wide range of OS support● Idempotent● Extensible (via custom facts, types, providers)● Open source – Apache License, version 2
ABOUT PUPPETGETTING STARTED
![Page 8: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/8.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 8
PUPPET’S ROLEGETTING STARTED
Physical Infrastructure(Cisco, Dell, HP, etc)
Virtual Infrastructure and IaaS(vSphere, OpenStack, AWS, Azure, etc)
Mesos Apps (“Frameworks”)(Chronos, Marathon, etc)
Mesos
Operating System(RHEL, Ubuntu, Windows, etc)
![Page 9: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/9.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 9
If Mesos is the abstraction layer for your applications,Puppet is the abstraction layer for infrastructure management
PUPPET’S ROLEGETTING STARTED
![Page 10: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/10.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 10
If Mesos is the abstraction layer for your applications,Puppet is the abstraction layer for infrastructure management
But it can also be more ...
PUPPET’S ROLEGETTING STARTED
![Page 11: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/11.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 11
Custom types and providers can interact with external services (AWS, Chronos, ...)
PUPPET’S ROLEGETTING STARTED
Puppet Master
Chronos Node
Chronos API
AWS Coordinator Node
AWS API
![Page 12: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/12.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 12
DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 13: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/13.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 13
● Install/configure Mesos, ZooKeeper, Docker● Stage a Docker image on the Mesos agents● Install and configure Chronos● Create a Chronos job (that runs in a Docker container)
DEPLOYMENT OVERVIEWDEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 14: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/14.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 14
DEPLOYMENT OVERVIEWDEPLOYING MESOS, DOCKER, AND CHRONOS
Mesos Master
Mesos Agent
Docker Engine
Mesos Agent
Docker Engine
Mesos Agent
Docker Engine
ZK
Chronos
![Page 15: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/15.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 15
● Puppet’s roles/profiles pattern● Using the following Puppet modules
● deric-zookeeper● deric-mesos● garethr-docker● puppetlabs-chronos
All of these modules are open source and available via the Puppet Forge:https://forge.puppetlabs.com
DEPLOYMENT OVERVIEWDEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 16: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/16.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 16
class role::mesos::master { include profile::base include profile::chronos include profile::mesos::master include profile::zookeeper}
DEPLOYING MESOS (MASTER)DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 17: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/17.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 17
class profile::mesos::master {
include profile::mesos::common
class { '::mesos::master': # From deric-mesos listen_address => $::ipaddress_eth0,
work_dir => '/var/lib/mesos',
options => {
log_dir => '/var/log/mesos',
quorum => '1',
},
}
}
DEPLOYING MESOS (MASTER)DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 18: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/18.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 18
class profile::zookeeper { include java # Include defaults from puppetlabs-java
class { '::zookeeper': # From deric-zookeeper client_ip => $::ipaddress_eth0, id => '1', repo => 'cloudera', require => Class['java'], }}
DEPLOYING ZOOKEEPERDEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 19: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/19.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 19
class role::mesos::agent { include profile::base include profile::docker include profile::mesos::agent}
DEPLOYING MESOS (AGENT)DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 20: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/20.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 20
class profile::mesos::agent {
include profile::mesos::common
class { '::mesos::slave': # From deric-mesos listen_address => $::ipaddress_eth0,
work_dir => '/var/lib/mesos',
options => {
log_dir => '/var/log/mesos',
},
}
}
DEPLOYING MESOS (AGENT)DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 21: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/21.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 21
class profile::mesos::common {
class { '::mesos': # From deric-mesos repo => 'mesosphere',
zookeeper => 'zk://192.168.248.10:2181/mesos',
}
}
DEPLOYING MESOS (COMMON)DEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 22: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/22.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 22
include ::docker # Include defaults from garethr-docker
class { '::mesos::slave': # Let’s reconfigure the Mesos agent ...
options => {
containerizers => 'docker,mesos',
isolation => 'cgroups/cpu,cgroups/mem',
executor_registration_timeout => '5mins',
},
}
DEPLOYING DOCKERDEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 23: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/23.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 23
class profile::chronos { include ::chronos # Include defaults from puppetlabs-chronos}
DEPLOYING CHRONOSDEPLOYING MESOS, DOCKER, AND CHRONOS
![Page 24: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/24.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 24
BUILDING DOCKER IMAGES WITH PUPPET
![Page 25: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/25.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 25
Synopsis:
● Build a Docker image declaratively
Two approaches:
● puppet agent – pre-shared key to use existing Puppet infra● puppet apply – directly apply manifests during build
GETTING STARTED WITH PUPPET AND DOCKERBUILDING DOCKER IMAGES WITH PUPPET
![Page 26: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/26.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 26
Synopsis:
● Build a Docker image declaratively
Two approaches:
● puppet agent – pre-shared key to use existing Puppet infra● puppet apply – directly apply manifests during build
GETTING STARTED WITH PUPPET AND DOCKERBUILDING DOCKER IMAGES WITH PUPPET
![Page 27: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/27.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 27
FROM debian:wheezy
MAINTAINER Roger Ignazio <[email protected]>
WORKDIR /tmp
RUN curl -sOL https://apt.puppetlabs.com/puppetlabs-release-wheezy.deb
RUN dpkg -i puppetlabs-release-wheezy.deb
RUN apt-get update
RUN apt-get -y install puppet
COPY * ./
RUN puppet apply example.pp
GETTING STARTED WITH PUPPET AND DOCKERBUILDING DOCKER IMAGES WITH PUPPET
![Page 28: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/28.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 28
package { ['ruby', 'ruby-dev', 'build-essential']: ensure => installed, }
package { 'httparty': ensure => installed, provider => gem, }
file { '/usr/bin/query_mesos':
ensure => file,
mode => '0755',
source => '/tmp/query_mesos.rb',
}
GETTING STARTED WITH PUPPET AND DOCKERBUILDING DOCKER IMAGES WITH PUPPET
![Page 29: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/29.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 29
Step 10 : RUN puppet apply example.pp
---> Running in 12eda5e24ff8
Notice: Compiled catalog for 90c88c41cdaa.bad in environment production in 0.16 seconds
Notice: Package[build-essential]/ensure: ensure changed 'purged' to 'present'
Notice: File[/usr/bin/query_mesos]/ensure: defined content as '{md5}
e44268ac8e31f75f1aeee961d0ebe36b'
Notice: Package[ruby-dev]/ensure: ensure changed 'purged' to 'present'
Notice: Package[httparty]/ensure: created
Notice: Finished catalog run in 33.22 seconds
---> 1a8fefd724ee
Removing intermediate container 12eda5e24ff8
Successfully built 1a8fefd724ee
GETTING STARTED WITH PUPPET AND DOCKERBUILDING DOCKER IMAGES WITH PUPPET
![Page 30: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/30.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 30
Using the garethr-docker Puppet module
docker::image { 'rogerignazio/basic-puppet-example':
image_tag => 'latest',
}
Equivalent to
$ docker pull rogerignazio/basic-puppet-example:latest
STAGING DOCKER IMAGES ON NODESBUILDING DOCKER IMAGES WITH PUPPET
![Page 31: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/31.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 31
MANAGING CHRONOS JOBS WITH PUPPET
![Page 32: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/32.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 32
● Bundled with a module● Found at lib/puppet/type and lib/puppet/provider● Model the API of an external service – as Puppet code
A CUSTOM TYPE AND PROVIDERMANAGING CHRONOS JOBS WITH PUPPET
Puppet Master Chronos Node
Chronos API
![Page 33: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/33.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 33
chronos_job { 'fetch_mesos_master_metrics':
command => 'query_mesos 192.168.248.10',
job_schedule => 'R/2015-10-09T00:00:00.000Z/PT1M',
container => {
type => 'DOCKER',
image => 'rogerignazio/basic-puppet-example',
},
cpus => 0.5,
mem => 256,
owner => '[email protected]',
}
A CUSTOM TYPE AND PROVIDERMANAGING CHRONOS JOBS WITH PUPPET
![Page 34: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/34.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 34
DEMO
![Page 35: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/35.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 35
PROVISIONING INFRASTRUCTURE
![Page 36: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/36.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 36
● Declare AWS infrastructure as Puppet resources● Custom types and providers hit the AWS API
● Ensures resources are in desired state
CLOUD PROVISIONING WITH AWSPROVISIONING INFRASTRUCTURE
Puppet Master
AWS Coordinator Node
AWS API
![Page 37: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/37.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 37
ec2_instance { 'mesos-slave-NN':
ensure => present,
region => 'us-west-2', # US West (Oregon) image_id => 'ami-4dbf9e7d', # AWS RHEL 7.1 image instance_type => 'c4.xlarge', # 4 CPUs, 7.5 GB mem security_groups => ['mesos-aws-secgrp'],
}
CLOUD PROVISIONING WITH AWSPROVISIONING INFRASTRUCTURE
![Page 38: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/38.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 38
Some of the available resource types:
● ec2_instance● ec2_securitygroup● ec2_vpc● elb_loadbalancer● route53_a_record
A more complete example: http://bit.ly/puppet-aws-example
CLOUD PROVISIONING WITH AWSPROVISIONING INFRASTRUCTURE
![Page 39: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/39.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 39
● Auto-discover inventory● Policy-based provisioning● Pluggable “brokers”● Razor is open source – Apache License, v2
BARE-METAL PROVISIONING WITH RAZORPROVISIONING INFRASTRUCTURE
![Page 40: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/40.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 40
BARE-METAL PROVISIONING WITH RAZORPROVISIONING INFRASTRUCTURE
Puppet Master
– – –
– – –
– – –
– – –
PXE BootRazor Microkernel Razor Server
Ubuntu ISO
Policy(Facts, IPMI, LLDP)
Razor Client(Admin)
RHEL ISO
role::mesos::master
role::mesos::agent
...
![Page 41: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/41.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 41
For more information, check outhttp://bit.ly/razor-intro
BARE-METAL PROVISIONING WITH RAZORPROVISIONING INFRASTRUCTURE
![Page 42: Roger Ignazio – PuppetConf 2015 MESOS, DOCKER, AND …mesosphere.github.io/presentations/puppetconf-2015/managing-mesos-docker-chronos-with...Docker Easily package and deploy apps](https://reader030.vdocuments.us/reader030/viewer/2022041016/5ec7e74b9b761d7a4112ad49/html5/thumbnails/42.jpg)
© 2015 Mesosphere, Inc. All Rights Reserved. 42
puppetconf_talk { 'managing_mesos': ensure => presented, speaker => 'Roger Ignazio', email => '[email protected]', twitter => '@rogerignazio',}
Q & A