Home > Store

DevOps for VMware Administrators

Register your product to gain access to bonus material or receive a coupon.

DevOps for VMware Administrators

eBook (Watermarked)

  • Your Price: $31.99
  • List Price: $39.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® 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.


  • Copyright 2015
  • Dimensions: 7" x 9-1/8"
  • Pages: 384
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-379528-4
  • ISBN-13: 978-0-13-379528-8

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

Sample Content

Table of Contents

    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

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020