HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
DevOps for VMware® Administrators is the first book focused on using DevOps tools and practices with VMware technologies. The authors introduce high-value tools from third parties and VMware itself, and guide you through using them to improve the performance of all your virtualized systems and applications. You’ll walk through automating and optimizing configuration management, provisioning, log management, continuous integration, and more.
The authors also offer step-by-step coverage of deploying and managing applications at scale with Docker containers and Google Kubernetes. They conclude with an up-to-the-minute discussion of VMware’s newest DevOps initiatives, including VMware vRealize Automation and VMware
vRealize Code Stream.
Coverage includes
• Understanding the challenges that DevOps tools and practices can help VMware administrators to solve
• Using Vagrant to quickly deploy Dev and Test environments that match production system specifications
• Writing Chef “recipes” that streamline server configuration and maintenance
• Simplifying Unix/Linux configuration management and orchestration with Ansible
• Implementing Docker containers for faster and easier application management
• Automating provisioning across the full lifecycle with Razor
• Integrating Microsoft PowerShell Desired State Configuration (DSC) and VMware PowerCLI to automate key Windows Server and vSphere VM admin tasks
• Using Puppet to automate infrastructure provisioning, configuration, orchestration, and reporting
• Supercharging log management with ELK (Elasticsearch, Logstash, Kibana)
• Supporting DevOps source code management with Git and continuous integration practices with Jenkins
• Achieving continuous integration, delivery, and deployment with VMware’s vRealize Code Stream
About the Authors xvii
About the Reviewers xviii
Acknowledgments xix
About the Contributing Author xx
Introduction xxii
About This Book xxiii
You the Reader xxiii
What This Book Covers xxiii
Part 1 Introduction to DevOps
1 Introduction to DevOps 1
An Overview of DevOps Principles 1
Implement Systems Thinking 3
Change the Approach to Team Interactions 3
Change the Approach to Infrastructure Deployment 5
Change the Approach to Software Development and Deployment 6
Collect and Respond to Useful Systems Feedback Often and Adjust Accordingly 7
Furthering Your DevOps Knowledge and Skills 7
Summary 8
References 8
2 DevOps Tools 9
Organizing for Success: Kanban 9
Server Deployment 13
Confi guration Management 14
Continuous Integration 14
Log Analysis 15
Summary 15
References 15
3 Setting Up a DevOps Confi guration Management Test Environment 17
Environment Provisioning with AutoLab 17
Environment Provisioning with Vagrant 18
Creating Images with Packer 23
Managing Source Code 24
Using Git 24
Summary 31
References 31
Part 2 Puppet
4 Introduction to Puppet 33
Puppet Architecture 33
Standalone Deployment 34
Master-Agent Deployment 34
Preparing Your Puppet Test Lab 37
Puppet Resources 38
Puppet Manifests 39
Conditional Expressions and Variables 43
Puppet Modules 46
Puppet Forge 48
Creating Your First Puppet Module 48
Puppet Module Initialization Manifest (init.pp) 50
Templates 51
Using a Puppet Module 54
Final Step: Version Control Commit 54
Summary 55
Reference 55
5 Systems Management Tasks with Puppet 57
Optimizing the Web Tier with Data Separation 58
Parameters Class (params.pp) 59
Hiera 63
Node Classifi cation 67
Application Tier 68
Database Tier 70
Implementing a Production Recommended Practice 70
Deploying the Application Environment 71
Summary 71
Reference 71
6 VMware vSphere Management with Puppet 73
Puppet’s Cloud Provisioner for VMware vSphere 73
Preparing VM Templates 73
Preparing Puppet Master 74
9780133846478_ROBERTS.indb x 3/5/15 4:20 PM
Contents xi
VMware’s Management Modules 77
Using the vmware/vcenter Module 77
Summary 83
References 83
Part 3 Chef
7 Introduction to Chef 85
What Is Chef? 85
Core Philosophies Behind Chef 86
Order of Recipe 86
Idempotence 86
API-Based Server 87
The Client Does All the Legwork 87
Test-Driven Infrastructure 87
Chef Terminology 87
Recipe 88
Cookbook 88
Attributes 88
Role 88
Run List 88
Resource 88
Environments 88
The Diff erence Between Hosted Chef and Chef Server 89
Hosted Chef 89
Chef Server 89
Introduction to ChefDK 90
What Is ChefDK? 90
Installing ChefDK 90
Using Knife 92
Creating Your First Hello World Chef Recipe 94
Summary 98
8 Systems Management Tasks with Chef 99
Signing Up for Hosted Chef 100
Setting Up Local Repo with the Starter Kit 102
Community Cookbooks 105
Setting Up System Management 105
Prep/Setup System Management Task 1: Managing Time 105
Prep/Setup System Management Task 2: Managing Root Password 108
9780133846478_ROBERTS.indb xi 3/5/15 4:20 PM
xii Contents
Confi guring Your Virtual Guests 109
Installing Chef Client 109
Systems Management Tasks 111
Running Chef Client 113
Managing the Root Password 115
Creating Two Environment Files 116
Uploading Environment Files to your Hosted Chef Organization 117
Assigning Each Server to an Environment 118
Modifying Each Server’s Run List to Run the Managedroot Cookbook 119
Applying Your Changes to Your Nodes 120
Validating the Enforced Policy 120
Summary 122
References 123
9 VMware vSphere Management with Chef 125
Knife Plugins 126
Getting Started with knife-vsphere 128
Confi guring the knife.rb File 128
Validating the Confi guration 130
Putting It All Together 130
Chef Provisioning 134
Chef Provisioning Architecture 134
Getting Started with Chef Provisioning 135
Spinning Up Some Nodes 136
Summary 138
Part 4 Ansible
10 Introduction to Ansible 139
Ansible Architecture 139
Preparing your Ansible Test Lab 141
Ansible Groups 142
Ansible Ad Hoc Command Execution 142
The Ping Module 143
The Command Module 144
The User Module 144
The Setup Module 144
Ansible Playbooks 144
Conditional Expressions and Variables 146
Ansible Roles 151
Templates 154
Ansible Galaxy 156
Summary 157
References 157
11 Systems Management Tasks with Ansible 159
Web Server Deployment 159
The Application Tier 160
The Database Tier 162
Role Structure Optimization 164
VMware Resource Management 166
Summary 171
References 171
Part 5 PowerShell 4.0
12 Introduction to PowerShell Desired State Confi guration (DSC) 173
What Is PowerShell DSC? 174
PowerShell DSC Requirements 175
PowerShell DSC Components 175
Native Cmdlets 175
Managed Object Format File 176
Local Confi guration Manager 176
PowerShell DSC Confi gurations 178
PowerShell DSC Modes 180
Local Push Mode 181
Remote Push Mode 181
Pull Mode 182
PowerShell DSC Resources 184
Summary 186
References 187
13 Implementation Strategies with PowerShell DSC 189
Use Cases for PowerShell DSC in VMware Environments 189
Scripted Deployments of VMs with PowerCLI 190
Incorporating PowerShell DSC in VM Templates 192
Challenges Implementing PowerShell DSC Confi gurations to New VMs 193
PowerCLI Invoke-VMscript 193
PowerCLI Copy-VMGuestFile 195
General Lessons Learned 196
Future Use Cases for PowerShell DSC in VMware Environments 197
Summary 198
References 198
Part 6 Application Deployment with Containers
14 Introduction to Application Containers with Docker 199
What Is an Application? 199
Hidden Complexity 200
Dependency and Confi guration Confl icts 200
Linux Containers 200
Control Groups 201
Namespaces 201
Container Management 203
Using Docker 203
Installing Docker 203
Docker Daemon 204
Docker Client 204
Docker Index 205
Running a Docker Container 205
Listing Running Containers 206
Connecting to Running Containers 206
Building and Distributing Docker Containers 208
Dockerfi le 209
Docker Hub 210
Docker Versus Virtual Machines 211
Docker Versus Confi guration Management 211
Summary 212
References 212
15 Running Docker Containers at Scale 213
Container Orchestration 213
Kubernetes 214
Kubernetes Workfl ow 214
Kubernetes Deployment 215
CoreOS and Kubernetes Cluster Management Utilities 216
CoreOS Cluster Deployment 217
etcd Server Confi guration 222
Network Overlays with Flannel 223
Kubernetes Cluster Nodes 223
Kubernetes Service Deployment 225
Kubernetes Workload Deployment 226
Platform-as-a-Service with Docker 230
Summary 231
References 231
Part 7 DevOps Tool Chain
16 Server Provisioning Using Razor 233
How Razor Works 233
Using Razor 236
Razor Collections and Actions 238
Building Razor Collections 245
Using Razor APIs 257
Razor Components 258
Razor Server 258
Razor Microkernel 258
Razor Client 259
Setting Up Razor 259
PE Razor 259
Puppet Install 259
Install from Source 260
Manual Release Install 260
Other Services 260
Summary 263
References 263
17 Intro to the ELK: Elasticsearch, Logstash, Kibana 265
Elasticsearch Overview 265
Getting Started 266
Understanding the Index 267
Working with Data 267
Installing Plugins 271
Using Clients 274
Logstash Overview 275
Getting Started 276
Confi guring Input to Logstash 276
Applying Filters 278
Kibana Overview 280
Sharing and Saving 285
Custom Data Views 286
Summary 286
References 287
18 Continuous Integration with Jenkins 289
Continuous Integration Concepts 289
Continuous Integration or Continuous Deployment? 290
Test Automation 290
Jenkins Architecture 292
Jenkins Deployment 293
Jenkins Workfl ow 296
Jenkins Server Confi guration 296
Jenkins Build Job 298
Git Hooks 302
Your First Build 304
Quality Assurance Teams? 306
Acceptance Testing 306
Development Team 306
Build/Test Infrastructure 307
Summary 307
References 307
Part 8 VMware DevOps Practices
19 VMware vRealize Automation in DevOps Environments 309
Emergence of DevOps 309
Stable Agility 310
People, Process, and Conway’s Law 311
vRealize Automation 312
vRealize Application Services 313
Puppet Integration 315
Code Stream 321
Summary 327
References 327
9780133846478, TOC, 3/9/15