
DevOps: Puppet, Docker, and Kubernetes
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Persons
John Arundel is a DevOps consultant, which means he helps people build world-class web operations teams and infrastructures and has fun doing it. He was formerly a senior operations engineer at global telco Verizon, designing resilient, high-performance infrastructures for major corporations such as Ford, McDonald's, and Bank of America. He is now an independent consultant, working closely with selected clients to deliver web-scale performance and enterprise-grade resilience on a startup budget. He likes writing books, especially about Puppet (Puppet 2.7 Cookbook and Puppet 3 Cookbook are available from Packt). He also provides training and coaching on Puppet and DevOps, which, it turns out, is far harder than simply doing the work himself. Off the clock, he is a medal-winning, competitive rifle and pistol shooter and a decidedly uncompetitive piano player. He lives in a small cottage in Cornwall, England and believes, like Cicero, that, if you have a garden and a library, then you have everything you need. You may like to follow him on Twitter at @bitfield.Lee Hui-Chuan Chloe :
Hui-Chuan Chloe Lee is a DevOps and software developer. She has worked in the software industry on a wide range of projects for over five years. As a technology enthusiast, she loves trying and learning about new technologies, which makes her life happier and more fulfilling. In her free time, she enjoys reading, traveling, and spending time with the people she loveHsu Ke-Jou Carol :
Ke-Jou Carol Hsu has three years of experience working as a software engineer and is currently a PhD student in the area of computer systems. Not only involved programming, she also enjoys getting multiple applications and machines perfectly working together to solve big problems. In her free time, she loves movies, music, cooking, and working out.Khare Neependra :
Neependra Khare is Founder and Principal Consultant at CloudYuga. CloudYuga provides training and consulting on Docker, Kubernetes, GO Programming etc. He is one of the Docker Captain as well and running Docker Meetup Group in Bangalore for around 4 years. In 2015 he authored a book on Docker, Docker Cookbook. In 2016 he co-authored a course on Cloud Infrastructure Technologies at Edx for Linux Foundation. Recently he authored a course on Kubernetes on Edx, for the Linux Foundation.Uphill Thomas :
Thomas Uphill (https://www.linkedin.com/in/thomasuphill) is a long-time user of Puppet. He has presented Puppet tutorials at LOPSA-East, Cascada, and PuppetConf. He has also been a system administrator for over 20 years, working primarily with RedHat systems; he is currently a RedHat Certified Architect (RHCA). When not running the Puppet User Group of Seattle (PUGS), he volunteers for the LOPSA board and his local LOPSA chapter, SASAG. He blogs at http://ramblings.narrabilis.com.Saito Hideto :
Hideto Saito has around 20 years of experience in the computer industry. In 1998, while working for Sun Microsystems Japan, he was impressed by Solaris OS, OPENSTEP, and Sun Ultra Enterprise 10000 (also known as StarFire). He then decided to pursue UNIX and macOS operating systems. In 2006, he relocated to southern California as a software engineer to develop products and services running on Linux and macOS X. He was especially renowned for his quick Objective-C code when he was drunk. He is also an enthusiast of Japanese anime, drama, and motorsports, and loves Japanese Otaku culture.
Content
- Cover
- Copyright
- Credits
- Preface
- Table of Content
- Module 1: Puppet Cookbook
- 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
- Module 2: Docker Cookbook
- Chapter 1: 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 2: 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 3: 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 4: 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 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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
- Module 3: Kubernetes Cookbook
- Chapter 1: 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 2: 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 3: Playing with Containers
- Introduction
- Scaling your containers
- Updating live containers
- Forwarding container ports
- Ensuring flexible usage of your containers
- Working with configuration files
- Chapter 4: Building a High Availability Cluster
- Introduction
- Clustering etcd
- Building multiple masters
- Chapter 5: 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 6: 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 7: Advanced Cluster Administration
- Introduction
- Advanced settings in kubeconfig
- Setting resource in nodes
- Playing with WebUI
- Working with a RESTful API
- Authentication and authorization
- Chapter 8: Logging and Monitoring
- Introduction
- Collecting application logs
- Working with Kubernetes logs
- Working with etcd log
- Monitoring master and node
- Bibliography
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.