You are previewing DevOps for VMware Administrators.
O'Reilly logo
DevOps for VMware Administrators

Book Description

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

Table of Contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. Contents
  6. About the Authors
  7. About the Reviewers
  8. About the Contributing Author
  9. Acknowledgments
  10. We Want to Hear from You!
  11. Reader Services
  12. Introduction
  13. About This Book
  14. You the Reader
  15. What This Book Covers
  16. Part 1: Introduction to DevOps
    1. Chapter 1. Introduction to DevOps
      1. An Overview of DevOps Principles
      2. Implement Systems Thinking
        1. Change the Approach to Team Interactions
        2. Change the Approach to Infrastructure Deployment
        3. Change the Approach to Software Development and Deployment
        4. Collect and Respond to Useful Systems Feedback Often and Adjust Accordingly
      3. Furthering Your DevOps Knowledge and Skills
      4. Summary
      5. References
    2. Chapter 2. DevOps Tools
      1. Organizing for Success: Kanban
      2. Server Deployment
      3. Configuration Management
      4. Continuous Integration
      5. Log Analysis
      6. Summary
      7. References
    3. Chapter 3. Setting Up a DevOps Configuration Management Test Environment
      1. Environment Provisioning with AutoLab
      2. Environment Provisioning with Vagrant
      3. Creating Images with Packer
      4. Managing Source Code
        1. Using Git
      5. Summary
      6. References
  17. Part 2: Puppet
    1. Chapter 4. Introduction to Puppet
      1. Puppet Architecture
        1. Standalone Deployment
        2. Master-Agent Deployment
      2. Preparing Your Puppet Test Lab
      3. Puppet Resources
      4. Puppet Manifests
        1. Conditional Expressions and Variables
      5. Puppet Modules
        1. Puppet Forge
        2. Creating Your First Puppet Module
        3. Puppet Module Initialization Manifest (init.pp)
        4. Templates
        5. Using a Puppet Module
        6. Final Step: Version Control Commit
      6. Summary
      7. Reference
    2. Chapter 5. Systems Management Tasks with Puppet
      1. Optimizing the Web Tier with Data Separation
        1. Parameters Class (params.pp)
        2. Hiera
        3. Node Classification
      2. Application Tier
      3. Database Tier
      4. Implementing a Production Recommended Practice
      5. Deploying the Application Environment
      6. Summary
      7. Reference
    3. Chapter 6. VMware vSphere Management with Puppet
      1. Puppet’s Cloud Provisioner for VMware vSphere
        1. Preparing VM Templates
        2. Preparing Puppet Master
      2. VMware’s Management Modules
        1. Using the vmware/vcenter Module
      3. Summary
      4. References
  18. Part 3: Chef
    1. Chapter 7. Introduction to Chef
      1. What Is Chef?
      2. Core Philosophies Behind Chef
        1. Order of Recipe
        2. Idempotence
        3. API-Based Server
        4. The Client Does All the Legwork
        5. Test-Driven Infrastructure
      3. Chef Terminology
        1. Recipe
        2. Cookbook
        3. Attributes
        4. Role
        5. Run List
        6. Resource
        7. Environments
      4. The Difference Between Hosted Chef and Chef Server
        1. Hosted Chef
        2. Chef Server
      5. Introduction to ChefDK
        1. What Is ChefDK?
        2. Installing ChefDK
      6. Using Knife
      7. Creating Your First Hello World Chef Recipe
      8. Summary
    2. Chapter 8. Systems Management Tasks with Chef
      1. Signing Up for Hosted Chef
        1. Setting Up Local Repo with the Starter Kit
      2. Community Cookbooks
      3. Setting Up System Management
        1. Prep/Setup System Management Task 1: Managing Time
        2. Prep/Setup System Management Task 2: Managing Root Password
      4. Configuring Your Virtual Guests
        1. Installing Chef Client
      5. Systems Management Tasks
        1. Running Chef Client
      6. Managing the Root Password
        1. Creating Two Environment Files
        2. Uploading Environment Files to your Hosted Chef Organization
        3. Assigning Each Server to an Environment
        4. Modifying Each Server’s Run List to Run the Managedroot Cookbook
        5. Applying Your Changes to Your Nodes
        6. Validating the Enforced Policy
      7. Summary
      8. References
    3. Chapter 9. VMware vSphere Management with Chef
      1. Knife Plugins
        1. Getting Started with knife-vsphere
        2. Configuring the knife.rb File
        3. Validating the Configuration
        4. Putting It All Together
      2. Chef Provisioning
        1. Chef Provisioning Architecture
        2. Getting Started with Chef Provisioning
        3. Spinning Up Some Nodes
      3. Summary
  19. Part 4: Ansible
    1. Chapter 10. Introduction to Ansible
      1. Ansible Architecture
      2. Preparing your Ansible Test Lab
      3. Ansible Groups
      4. Ansible Ad Hoc Command Execution
        1. The Ping Module
        2. The Command Module
        3. The User Module
        4. The Setup Module
      5. Ansible Playbooks
        1. Conditional Expressions and Variables
      6. Ansible Roles
        1. Templates
      7. Ansible Galaxy
      8. Summary
      9. References
    2. Chapter 11. Systems Management Tasks with Ansible
      1. Web Server Deployment
      2. The Application Tier
      3. The Database Tier
      4. Role Structure Optimization
      5. VMware Resource Management
      6. Summary
      7. References
  20. Part 5: PowerShell 4.0
    1. Chapter 12. Introduction to PowerShell Desired State Configuration (DSC)
      1. What Is PowerShell DSC?
      2. PowerShell DSC Requirements
      3. PowerShell DSC Components
        1. Native Cmdlets
        2. Managed Object Format File
        3. Local Configuration Manager
      4. PowerShell DSC Configurations
      5. PowerShell DSC Modes
        1. Local Push Mode
        2. Remote Push Mode
        3. Pull Mode
      6. PowerShell DSC Resources
      7. Summary
      8. References
    2. Chapter 13. Implementation Strategies with PowerShell DSC
      1. Use Cases for PowerShell DSC in VMware Environments
      2. Scripted Deployments of VMs with PowerCLI
      3. Incorporating PowerShell DSC in VM Templates
      4. Challenges Implementing PowerShell DSC Configurations to New VMs
        1. PowerCLI Invoke-VMscript
        2. PowerCLI Copy-VMGuestFile
      5. General Lessons Learned
      6. Future Use Cases for PowerShell DSC in VMware Environments
      7. Summary
      8. References
  21. Part 6: Application Deployment with Containers
    1. Chapter 14. Introduction to Application Containers with Docker
      1. What Is an Application?
        1. Hidden Complexity
        2. Dependency and Configuration Conflicts
      2. Linux Containers
        1. Control Groups
        2. Namespaces
        3. Container Management
      3. Using Docker
        1. Installing Docker
        2. Docker Daemon
        3. Docker Client
        4. Docker Index
        5. Running a Docker Container
        6. Listing Running Containers
        7. Connecting to Running Containers
        8. Building and Distributing Docker Containers
        9. Dockerfile
        10. Docker Hub
        11. Docker Versus Virtual Machines
        12. Docker Versus Configuration Management
      4. Summary
      5. References
    2. Chapter 15. Running Docker Containers at Scale
      1. Container Orchestration
      2. Kubernetes
        1. Kubernetes Workflow
      3. Kubernetes Deployment
        1. CoreOS and Kubernetes Cluster Management Utilities
        2. CoreOS Cluster Deployment
        3. etcd Server Configuration
        4. Network Overlays with Flannel
        5. Kubernetes Cluster Nodes
        6. Kubernetes Service Deployment
        7. Kubernetes Workload Deployment
      4. Platform-as-a-Service with Docker
      5. Summary
      6. References
  22. Part 7: DevOps Tool Chain
    1. Chapter 16. Server Provisioning Using Razor
      1. How Razor Works
      2. Using Razor
        1. Razor Collections and Actions
        2. Building Razor Collections
      3. Using Razor APIs
      4. Razor Components
        1. Razor Server
        2. Razor Microkernel
        3. Razor Client
      5. Setting Up Razor
        1. PE Razor
        2. Puppet Install
        3. Install from Source
        4. Manual Release Install
        5. Other Services
      6. Summary
      7. References
    2. Chapter 17. Intro to the ELK: Elasticsearch, Logstash, Kibana
      1. Elasticsearch Overview
        1. Getting Started
        2. Understanding the Index
        3. Working with Data
        4. Installing Plugins
        5. Using Clients
      2. Logstash Overview
        1. Getting Started
        2. Configuring Input to Logstash
        3. Applying Filters
        4. Understanding Output
      3. Kibana Overview
        1. Sharing and Saving
        2. Custom Data Views
      4. Summary
      5. References
    3. Chapter 18. Continuous Integration with Jenkins
      1. Continuous Integration Concepts
        1. Continuous Integration or Continuous Deployment?
        2. Test Automation
      2. Jenkins Architecture
      3. Jenkins Deployment
      4. Jenkins Workflow
        1. Jenkins Server Configuration
        2. Jenkins Build Job
        3. Git Hooks
        4. Your First Build
      5. Quality Assurance Teams?
        1. Acceptance Testing
        2. Development Team
        3. Build/Test Infrastructure
      6. Summary
      7. References
  23. Part 8: VMware DevOps Practices
    1. Chapter 19. VMware vRealize Automation in DevOps Environments
      1. Emergence of DevOps
      2. Stable Agility
      3. People, Process, and Conway’s Law
      4. vRealize Automation
      5. vRealize Application Services
      6. Puppet Integration
      7. Code Stream
      8. Summary
      9. References
  24. Index
  25. Code Snippets