DevOps:Puppet,Docker,and Kubernetes
Thomas Uphill John Arundel Neependra Khare Hideto Saito Hui Chuan Chloe Lee Ke Jou Carol Hsu更新时间:2021-07-09 18:33:45
最新章节:Index封面
版权信息
Credits
Preface
Part 1. Module 1
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
Part 2. Module 2
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
Part 3. Module 3
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
Appendix B. Bibliography
Index
更新时间:2021-07-09 18:33:45