DevOps: Puppet, Docker, and Kubernetes

Get hands-on recipes to automate and manage Linux containers with the Docker 1.6 environment and jump-start your Puppet development
Preview in Mapt
Code Files

DevOps: Puppet, Docker, and Kubernetes

Thomas Uphill et al.

3 customer reviews
Get hands-on recipes to automate and manage Linux containers with the Docker 1.6 environment and jump-start your Puppet development
Mapt Subscription
FREE
$29.99/m after trial
eBook
$56.00
RRP $79.99
Save 29%
Print + eBook
$99.99
RRP $99.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$56.00
$99.99
$29.99p/m after trial
RRP $79.99
RRP $99.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


DevOps: Puppet, Docker, and Kubernetes Book Cover
DevOps: Puppet, Docker, and Kubernetes
$ 79.99
$ 56.00
Docker Technologies for DevOps and Developers [Video] Book Cover
Docker Technologies for DevOps and Developers [Video]
$ 29.99
$ 25.50
Buy 2 for $35.00
Save $74.98
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781788297615
Paperback925 pages

Book Description

With so many IT management and DevOps tools on the market, both open source and commercial, it’s difficult to know where to start. DevOps is incredibly powerful when implemented correctly, and here’s how to get it done.This Learning Path covers three broad areas: Puppet, Docker, and Kubernetes. This Learning Path is a large resource of recipes to ease your daily DevOps tasks. We begin with recipes that help you develop a complete and expert understanding of Puppet’s latest and most advanced features. Then we provide recipes that help you efficiently work with the Docker environment. Finally, we show you how to better manage containers in different scenarios in production using Kubernetes

This course is based on these books:

  1. Puppet Cookbook - Third Edition
  2. Docker Cookbook
  3. Kubernetes Cookbook

Table of Contents

Chapter 1: Puppet Language and Style
Introduction
Adding a resource to a node
Using Facter to describe a node
Installing a package before starting a service
Installing, configuring, and starting a service
Using community Puppet style
Creating a manifest
Checking your manifests with Puppet-lint
Using modules
Using standard naming conventions
Using inline templates
Iterating over multiple items
Writing powerful conditional statements
Using regular expressions in if statements
Using selectors and case statements
Using the in operator
Using regular expression substitutions
Using the future parser
Chapter 2: Puppet Infrastructure
Introduction
Installing Puppet
Managing your manifests with Git
Creating a decentralized Puppet architecture
Writing a papply script
Running Puppet from cron
Bootstrapping Puppet with bash
Creating a centralized Puppet infrastructure
Creating certificates with multiple DNS names
Running Puppet from passenger
Setting up the environment
Configuring PuppetDB
Configuring Hiera
Setting node-specific data with Hiera
Storing secret data with hiera-gpg
Using MessagePack serialization
Automatic syntax checking with Git hooks
Pushing code around with Git
Managing Environments with Git
Chapter 3: Writing Better Manifests
Introduction
Using arrays of resources
Using resource defaults
Using defined types
Using tags
Using run stages
Using roles and profiles
Passing parameters to classes
Passing parameters from Hiera
Writing reusable, cross-platform manifests
Getting information about the environment
Importing dynamic information
Passing arguments to shell commands
Chapter 4: Working with Files and Packages
Introduction
Making quick edits to config files
Editing INI style files with puppetlabs-inifile
Using Augeas to reliably edit config files
Building config files using snippets
Using ERB templates
Using array iteration in templates
Using EPP templates
Using GnuPG to encrypt secrets
Installing packages from a third-party repository
Comparing package versions
Chapter 5: Users and Virtual Resources
Introduction
Using virtual resources
Managing users with virtual resources
Managing users' SSH access
Managing users' customization files
Using exported resources
Chapter 6: Managing Resources and Files
Introduction
Distributing cron jobs efficiently
Scheduling when resources are applied
Using host resources
Using exported host resources
Using multiple file sources
Distributing and merging directory trees
Cleaning up old files
Auditing resources
Temporarily disabling resources
Chapter 7: Managing Applications
Introduction
Using public modules
Managing Apache servers
Creating Apache virtual hosts
Creating nginx virtual hosts
Managing MySQL
Creating databases and users
Chapter 8: Internode Coordination
Introduction
Managing firewalls with iptables
Building high-availability services using Heartbeat
Managing NFS servers and file shares
Using HAProxy to load-balance multiple web servers
Managing Docker with Puppet
Chapter 9: External Tools and the Puppet Ecosystem
Introduction
Creating custom facts
Adding external facts
Setting facts as environment variables
Generating manifests with the Puppet resource command
Generating manifests with other tools
Using an external node classifier
Creating your own resource types
Creating your own providers
Creating custom functions
Testing your puppet manifests with rspec-puppet
Using librarian-puppet
Using r10k
Chapter 10: Monitoring, Reporting, and Troubleshooting
Introduction
Noop – the don't change anything option
Logging command output
Logging debug messages
Generating reports
Producing automatic HTML documentation
Drawing dependency graphs
Understanding Puppet errors
Inspecting configuration settings
Chapter 11: Introduction and Installation
Introduction
Verifying the requirements for Docker installation
Installing Docker
Pulling an image and running a container
Adding a nonroot user to administer Docker
Setting up the Docker host with Docker Machine
Finding help with the Docker command line
Chapter 12: Working with Docker Containers
Introduction
Listing/searching for an image
Pulling an image
Listing images
Starting a container
Listing containers
Looking at the logs of containers
Stopping a container
Deleting a container
Setting the restart policy on a container
Getting privileged access inside a container
Exposing a port while starting a container
Accessing the host device inside the container
Injecting a new process to a running container
Returning low-level information about a container
Labeling and filtering containers
Chapter 13: Working with Docker Images
Introduction
Creating an account with Docker Hub
Creating an image from the container
Publishing an image to the registry
Looking at the history of an image
Deleting an image
Exporting an image
Importing an image
Building images using Dockerfiles
Building an Apache image – a Dockerfile example
Accessing Firefox from a container – a Dockerfile example
Building a WordPress image – a Dockerfile example
Setting up a private index/registry
Automated builds – with GitHub and Bitbucket
Creating the base image – using supermin
Creating the base image – using Debootstrap
Visualizing dependencies between layers
Chapter 14: Network and Data Management for Containers
Introduction
Accessing containers from outside
Managing data in containers
Linking two or more containers
Developing a LAMP application by linking containers
Networking of multihost containers with Flannel
Assigning IPv6 addresses to containers
Chapter 15: Docker Use Cases
Introduction
Testing with Docker
Doing CI/CD with Shippable and Red Hat OpenShift
Doing CI/CD with Drone
Setting up PaaS with OpenShift Origin
Building and deploying an app on OpenShift v3 from the source code
Configuring Docker as a hypervisor driver for OpenStack
Chapter 16: Docker APIs and Language Bindings
Introduction
Configuring the Docker daemon remote API
Performing image operations using remote APIs
Performing container operations using remote APIs
Exploring Docker remote API client libraries
Securing the Docker daemon remote API
Chapter 17: Docker Performance
Introduction
Benchmarking CPU performance
Benchmarking disk performance
Benchmarking network performance
Getting container resource usage using the stats feature
Setting up performance monitoring
Chapter 18: Docker Orchestration and Hosting Platforms
Introduction
Running applications with Docker Compose
Setting up cluster with Docker Swarm
Setting up CoreOS for Docker orchestration
Setting up a Project Atomic host
Doing atomic update/rollback with Project Atomic
Adding more storage for Docker in Project Atomic
Setting up Cockpit for Project Atomic
Setting up a Kubernetes cluster
Scaling up and down in a Kubernetes cluster
Setting up WordPress with a Kubernetes cluster
Chapter 19: Docker Security
Introduction
Setting Mandatory Access Control (MAC) with SELinux
Allowing writes to volume mounted from the host with SELinux ON
Removing capabilities to breakdown the power of a root user inside a container
Sharing namespaces between the host and the container
Chapter 20: Getting Help and Tips and Tricks
Introduction
Starting Docker in debug mode
Building a Docker binary from the source
Building images without using cached layers
Building your own bridge for container communication
Changing the default execution driver of Docker
Selecting the logging driver for containers
Getting real-time Docker events for containers
Chapter 21: Building Your Own Kubernetes
Introduction
Exploring architecture
Preparing your environment
Building datastore
Creating an overlay network
Configuring master
Configuring nodes
Run your first container in Kubernetes
Chapter 22: Walking through Kubernetes Concepts
Introduction
An overview of Kubernetes control
Working with pods
Working with a replication controller
Working with services
Working with volumes
Working with secrets
Working with names
Working with namespaces
Working with labels and selectors
Chapter 23: Playing with Containers
Introduction
Scaling your containers
Updating live containers
Forwarding container ports
Ensuring flexible usage of your containers
Working with configuration files
Chapter 24: Building a High Availability Cluster
Introduction
Clustering etcd
Building multiple masters
Chapter 25: Building a Continuous Delivery Pipeline
Introduction
Moving monolithic to microservices
Integrating with Jenkins
Working with the private Docker registry
Setting up the Continuous Delivery pipeline
Chapter 26: Building Kubernetes on AWS
Introduction
Building the Kubernetes infrastructure in AWS
Managing applications using AWS OpsWorks
Auto-deploying Kubernetes through Chef recipes
Using AWS CloudFormation for fast provisioning
Chapter 27: Advanced Cluster Administration
Introduction
Advanced settings in kubeconfig
Setting resource in nodes
Playing with WebUI
Working with a RESTful API
Authentication and authorization
Chapter 28: Logging and Monitoring
Introduction
Collecting application logs
Working with Kubernetes logs
Working with etcd log
Monitoring master and node

What You Will Learn

  • Discover how to build high availability Kubernetes clusters
  • Deal with inherent issues with container virtualization and container concepts
  • Create services with Docker to enable the swift development and deployment of applications
  • Make optimum use of Docker in a testing environment
  • Create efficient manifests to streamline your deployments
  • Automate Puppet master deployment using Git hooks, r10k, and PuppetDB

Authors

Table of Contents

Chapter 1: Puppet Language and Style
Introduction
Adding a resource to a node
Using Facter to describe a node
Installing a package before starting a service
Installing, configuring, and starting a service
Using community Puppet style
Creating a manifest
Checking your manifests with Puppet-lint
Using modules
Using standard naming conventions
Using inline templates
Iterating over multiple items
Writing powerful conditional statements
Using regular expressions in if statements
Using selectors and case statements
Using the in operator
Using regular expression substitutions
Using the future parser
Chapter 2: Puppet Infrastructure
Introduction
Installing Puppet
Managing your manifests with Git
Creating a decentralized Puppet architecture
Writing a papply script
Running Puppet from cron
Bootstrapping Puppet with bash
Creating a centralized Puppet infrastructure
Creating certificates with multiple DNS names
Running Puppet from passenger
Setting up the environment
Configuring PuppetDB
Configuring Hiera
Setting node-specific data with Hiera
Storing secret data with hiera-gpg
Using MessagePack serialization
Automatic syntax checking with Git hooks
Pushing code around with Git
Managing Environments with Git
Chapter 3: Writing Better Manifests
Introduction
Using arrays of resources
Using resource defaults
Using defined types
Using tags
Using run stages
Using roles and profiles
Passing parameters to classes
Passing parameters from Hiera
Writing reusable, cross-platform manifests
Getting information about the environment
Importing dynamic information
Passing arguments to shell commands
Chapter 4: Working with Files and Packages
Introduction
Making quick edits to config files
Editing INI style files with puppetlabs-inifile
Using Augeas to reliably edit config files
Building config files using snippets
Using ERB templates
Using array iteration in templates
Using EPP templates
Using GnuPG to encrypt secrets
Installing packages from a third-party repository
Comparing package versions
Chapter 5: Users and Virtual Resources
Introduction
Using virtual resources
Managing users with virtual resources
Managing users' SSH access
Managing users' customization files
Using exported resources
Chapter 6: Managing Resources and Files
Introduction
Distributing cron jobs efficiently
Scheduling when resources are applied
Using host resources
Using exported host resources
Using multiple file sources
Distributing and merging directory trees
Cleaning up old files
Auditing resources
Temporarily disabling resources
Chapter 7: Managing Applications
Introduction
Using public modules
Managing Apache servers
Creating Apache virtual hosts
Creating nginx virtual hosts
Managing MySQL
Creating databases and users
Chapter 8: Internode Coordination
Introduction
Managing firewalls with iptables
Building high-availability services using Heartbeat
Managing NFS servers and file shares
Using HAProxy to load-balance multiple web servers
Managing Docker with Puppet
Chapter 9: External Tools and the Puppet Ecosystem
Introduction
Creating custom facts
Adding external facts
Setting facts as environment variables
Generating manifests with the Puppet resource command
Generating manifests with other tools
Using an external node classifier
Creating your own resource types
Creating your own providers
Creating custom functions
Testing your puppet manifests with rspec-puppet
Using librarian-puppet
Using r10k
Chapter 10: Monitoring, Reporting, and Troubleshooting
Introduction
Noop – the don't change anything option
Logging command output
Logging debug messages
Generating reports
Producing automatic HTML documentation
Drawing dependency graphs
Understanding Puppet errors
Inspecting configuration settings
Chapter 11: Introduction and Installation
Introduction
Verifying the requirements for Docker installation
Installing Docker
Pulling an image and running a container
Adding a nonroot user to administer Docker
Setting up the Docker host with Docker Machine
Finding help with the Docker command line
Chapter 12: Working with Docker Containers
Introduction
Listing/searching for an image
Pulling an image
Listing images
Starting a container
Listing containers
Looking at the logs of containers
Stopping a container
Deleting a container
Setting the restart policy on a container
Getting privileged access inside a container
Exposing a port while starting a container
Accessing the host device inside the container
Injecting a new process to a running container
Returning low-level information about a container
Labeling and filtering containers
Chapter 13: Working with Docker Images
Introduction
Creating an account with Docker Hub
Creating an image from the container
Publishing an image to the registry
Looking at the history of an image
Deleting an image
Exporting an image
Importing an image
Building images using Dockerfiles
Building an Apache image – a Dockerfile example
Accessing Firefox from a container – a Dockerfile example
Building a WordPress image – a Dockerfile example
Setting up a private index/registry
Automated builds – with GitHub and Bitbucket
Creating the base image – using supermin
Creating the base image – using Debootstrap
Visualizing dependencies between layers
Chapter 14: Network and Data Management for Containers
Introduction
Accessing containers from outside
Managing data in containers
Linking two or more containers
Developing a LAMP application by linking containers
Networking of multihost containers with Flannel
Assigning IPv6 addresses to containers
Chapter 15: Docker Use Cases
Introduction
Testing with Docker
Doing CI/CD with Shippable and Red Hat OpenShift
Doing CI/CD with Drone
Setting up PaaS with OpenShift Origin
Building and deploying an app on OpenShift v3 from the source code
Configuring Docker as a hypervisor driver for OpenStack
Chapter 16: Docker APIs and Language Bindings
Introduction
Configuring the Docker daemon remote API
Performing image operations using remote APIs
Performing container operations using remote APIs
Exploring Docker remote API client libraries
Securing the Docker daemon remote API
Chapter 17: Docker Performance
Introduction
Benchmarking CPU performance
Benchmarking disk performance
Benchmarking network performance
Getting container resource usage using the stats feature
Setting up performance monitoring
Chapter 18: Docker Orchestration and Hosting Platforms
Introduction
Running applications with Docker Compose
Setting up cluster with Docker Swarm
Setting up CoreOS for Docker orchestration
Setting up a Project Atomic host
Doing atomic update/rollback with Project Atomic
Adding more storage for Docker in Project Atomic
Setting up Cockpit for Project Atomic
Setting up a Kubernetes cluster
Scaling up and down in a Kubernetes cluster
Setting up WordPress with a Kubernetes cluster
Chapter 19: Docker Security
Introduction
Setting Mandatory Access Control (MAC) with SELinux
Allowing writes to volume mounted from the host with SELinux ON
Removing capabilities to breakdown the power of a root user inside a container
Sharing namespaces between the host and the container
Chapter 20: Getting Help and Tips and Tricks
Introduction
Starting Docker in debug mode
Building a Docker binary from the source
Building images without using cached layers
Building your own bridge for container communication
Changing the default execution driver of Docker
Selecting the logging driver for containers
Getting real-time Docker events for containers
Chapter 21: Building Your Own Kubernetes
Introduction
Exploring architecture
Preparing your environment
Building datastore
Creating an overlay network
Configuring master
Configuring nodes
Run your first container in Kubernetes
Chapter 22: Walking through Kubernetes Concepts
Introduction
An overview of Kubernetes control
Working with pods
Working with a replication controller
Working with services
Working with volumes
Working with secrets
Working with names
Working with namespaces
Working with labels and selectors
Chapter 23: Playing with Containers
Introduction
Scaling your containers
Updating live containers
Forwarding container ports
Ensuring flexible usage of your containers
Working with configuration files
Chapter 24: Building a High Availability Cluster
Introduction
Clustering etcd
Building multiple masters
Chapter 25: Building a Continuous Delivery Pipeline
Introduction
Moving monolithic to microservices
Integrating with Jenkins
Working with the private Docker registry
Setting up the Continuous Delivery pipeline
Chapter 26: Building Kubernetes on AWS
Introduction
Building the Kubernetes infrastructure in AWS
Managing applications using AWS OpsWorks
Auto-deploying Kubernetes through Chef recipes
Using AWS CloudFormation for fast provisioning
Chapter 27: Advanced Cluster Administration
Introduction
Advanced settings in kubeconfig
Setting resource in nodes
Playing with WebUI
Working with a RESTful API
Authentication and authorization
Chapter 28: Logging and Monitoring
Introduction
Collecting application logs
Working with Kubernetes logs
Working with etcd log
Monitoring master and node

Book Details

ISBN 139781788297615
Paperback925 pages
Read More
From 3 reviews

Read More Reviews

Recommended for You

Docker Technologies for DevOps and Developers [Video] Book Cover
Docker Technologies for DevOps and Developers [Video]
$ 29.99
$ 25.50
DevOps with Kubernetes Book Cover
DevOps with Kubernetes
$ 39.99
$ 28.00
Continuous Delivery and DevOps: A Quickstart guide Book Cover
Continuous Delivery and DevOps: A Quickstart guide
$ 14.99
$ 10.50
The DevOps 2.1 Toolkit: Docker Swarm Book Cover
The DevOps 2.1 Toolkit: Docker Swarm
$ 39.99
$ 28.00
Planning and BUILD for your first Mobile DevOps Project [Video] Book Cover
Planning and BUILD for your first Mobile DevOps Project [Video]
$ 124.99
$ 106.25
Master Jenkins Course For Developers and DevOps [Video] Book Cover
Master Jenkins Course For Developers and DevOps [Video]
$ 24.99
$ 21.25