You are previewing Learning OpenStack.
O'Reilly logo
Learning OpenStack

Book Description

Set up and maintain your own cloud-based Infrastructure as a Service (IaaS) using OpenStack

About This Book

  • Build and manage a cloud environment using just four virtual machines

  • Get to grips with mandatory as well as optional OpenStack components and know how they work together

  • Leverage your cloud environment to provide Infrastructure as a Service (IaaS) with this practical, step-by-step guide

  • Who This Book Is For

    This book is targeted at all aspiring administrators, architects, or students who want to build cloud environments using Openstack. Knowledge of IaaS or cloud computing is recommended.

    What You Will Learn

  • Get an introduction to OpenStack and its components

  • Authenticate and authorize the cloud environment using Keystone

  • Store and retrieve data and images using storage components such as Cinder, Swift, and Glance

  • Use Nova to build a Cloud Computing fabric controller

  • Abstract technology-agnostic networks using the Neutron network component

  • Gain an understanding of optional components such as Ceilometer, Trove, Ironic, Sahara, Barbican, Zaqar, Designate, Manila, and many more

  • See how all of the OpenStack components collaborate to provide IaaS to users

  • Create a production-grade OpenStack and automate your OpenStack Cloud

  • In Detail

    OpenStack is a free and open source cloud computing platform that is rapidly gaining popularity in Enterprise data centres. It is a scalable operating system and is used to build private and public clouds. It is imperative for all the aspiring cloud administrators to possess OpenStack skills if they want to succeed in the cloud-led IT infrastructure space.

    This book will help you gain a clearer understanding of OpenStack’s components and their interaction with each other to build a cloud environment. You will learn to deploy a self-service based cloud using just four virtual machines and standard networking.

    You begin with an introduction on the basics of cloud computing. This is followed by a brief look into the need for authentication and authorization, the different aspects of dashboards, cloud computing fabric controllers, along with “Networking as a Service” and “Software Defined Networking.” Then, you will focus on installing, configuring, and troubleshooting different architectures such as Keystone, Horizon, Nova, Neutron, Cinder, Swift, and Glance. Furthermore, you will see how all of the OpenStack components come together in providing IaaS to users. Finally, you will take your OpenStack cloud to the next level by integrating it with other IT ecosystem elements before automation.

    By the end of this book, you will be proficient with the fundamentals and application of OpenStack.

    Style and approach

    This is a practical step-by-step guide comprising of installation prerequisites and basic troubleshooting instructions to help you build an error-free OpenStack cloud easily.

    Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

    Table of Contents

    1. Learning OpenStack
      1. Table of Contents
      2. Learning OpenStack
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. An Introduction to OpenStack
        1. Choosing an orchestrator
        2. Building a private cloud
          1. Commercial orchestrators
          2. OpenStack
        3. When to choose OpenStack?
          1. OpenStack architecture
          2. Service relationships
          3. Services and releases history
          4. Service functions
            1. Keystone
            2. Horizon
            3. Nova
            4. Glance
            5. Swift
            6. Cinder
            7. Neutron
            8. Heat
            9. Ceilometer
            10. Trove
            11. Sahara
            12. Designate
            13. Ironic
            14. Zaqar
            15. Barbican
            16. Manila
            17. Murano
            18. Magnum
            19. Kolla
            20. Congress
          5. Service dependency maps
        4. Preparing for the OpenStack setup
          1. Selecting the services
          2. Service layout
            1. Controller node
            2. Network node
            3. Compute node
            4. Storage node
          3. Operating system
          4. Network layout
        5. Summary
      9. 2. Authentication and Authorization Using Keystone
        1. Identity concepts in Keystone
          1. User
          2. Project (or tenant)
          3. Role
        2. Architecture and subsystems
          1. Identity
          2. Resource
          3. Assignment
          4. Policy
          5. Token
          6. Catalog
        3. Installing common components
          1. Setting up the database
            1. Installing MariaDB
              1. Step 1: Setting MariaDB repository
              2. Step 2: Installing the MariaDB package
            2. Configuring the database
            3. Securing the database
            4. Testing the installation
          2. Setting up the messaging broker
            1. Installing RabbitMQ
              1. Step 1: Setting up the RabbitMQ repository
              2. Step 2: Installing the RabbitMQ package
            2. Configuring the RabbitMQ server
            3. Testing the installation
        4. Installing Keystone
          1. Setting up the OpenStack repository
          2. Creating the database
          3. Installing the package
          4. The initial configuration
            1. Generating the admin token
            2. Modifying the Keystone configuration file
            3. Populating the Keystone DB
            4. Setting up your first tenant
              1. Setting up environment variables
              2. Creating the tenant
              3. Creating the user
              4. Creating and mapping the role
            5. Creating service endpoints
              1. Creating the service
              2. Creating the endpoint
        5. Verifying the installation
          1. Using Keystone CLI
          2. Using the API
        6. Troubleshooting the installation and configuration
          1. DB sync errors
            1. System language settings
            2. Configuration errors
          2. Failing Keystone commands
            1. Service non-responsive
            2. DNS issues
            3. Network issues
        7. Summary
      10. 3. Storing and Retrieving Data and Images using Glance, Cinder, and Swift
        1. Introducing storage services
        2. Working with Glance
          1. Creating the database
          2. Installing the packages
          3. Initial configuration of Glance
            1. Creating a user in Keystone
            2. Creating a Glance service in Keystone
            3. Creating a Glance endpoint
            4. Modifying Glance configuration
            5. Populating the Glance database
          4. Finalizing the installation
          5. Validating the installation
        3. Working with Cinder
          1. Controller node
          2. Creating the database
          3. Installing packages
          4. Initial configuration
            1. Creating a user in Keystone
            2. Creating Cinder service in Keystone
            3. Creating Cinder endpoints
            4. Modifying the configuration files
            5. Populating the Cinder database
          5. Finalizing the installation
          6. Storage node
            1. Understanding the prerequisites
            2. Installing the packages
            3. Modifying the configuration files
            4. Finalizing the installation
            5. Validating the installation
        4. Working with Swift
          1. Controller node
          2. Installing packages
          3. Initial configuration
            1. Creating a user in Keystone
            2. Creating a Swift service in Keystone
            3. Creating a Swift endpoint
            4. Modifying the configuration files
          4. The storage node
            1. Understanding the prerequisites
            2. Installing the packages
            3. Modifying the configuration files
              1. Account server configuration
              2. Container server configuration
              3. Object server configuration
            4. Creating the rings
              1. Account ring
              2. Container ring
              3. Object ring
            5. Distributing the ring
            6. Finalizing and validating the install
        5. Troubleshooting steps
          1. Swift authentication error
            1. Ring files don't get created
        6. Summary
      11. 4. Building Your Cloud Fabric Controller Using Nova
        1. Working with Nova
        2. Installing Nova components
          1. Installing on the controller node
            1. Creating the database
            2. Installing components
            3. Initial configuration
              1. Creating the Nova user in Keystone
              2. Creating the Nova service in Keystone
              3. Creating the Nova endpoint in Keystone
              4. Modifying the configuration file
              5. Populating the database
              6. Finalizing the installation
          2. Installing on the compute node
            1. Installing KVM
            2. Installing Nova compute components
            3. Modifying the host files
            4. Modifying the configuration file
            5. Finalizing the installation
        3. Verifying the installation
        4. Console access
        5. Designing your Nova environment
          1. Logical constructs
            1. Region
            2. Availability zone
            3. The host aggregates
          2. Virtual machine placement logic
          3. Sample cloud design
        6. Troubleshooting installation
        7. Summary
      12. 5. Technology-Agnostic Network Abstraction Using Neutron
        1. The software-defined network paradigm
          1. What is an overlay network?
            1. Components of overlay networks
            2. Overlay technologies
              1. GRE
              2. VXLAN
            3. Underlying network considerations
          2. Open flow
            1. Underlying network consideration
        2. Neutron
          1. Architecture of Neutron
            1. The Neutron server
            2. L2 agent
            3. L3 agent
          2. Understanding the basic Neutron process
          3. Networking concepts in Neutron
        3. Installing Neutron
          1. Installing on the controller node
            1. Creating the database
            2. Installing Neutron control components
            3. Initial configuration
              1. Creating the Neutron user in Keystone
              2. Creating the Neutron service in Keystone
              3. Creating the Neutron endpoint in Keystone
              4. Modifying the configuration files
            4. Setting up the database
            5. Finalizing the installation
            6. Validating the installation
          2. Installing on the network node
            1. Setting up the prerequisites
            2. Installing Neutron packages
            3. Initial configuration on the network node
              1. Neutron configuration
              2. ML2 plugin
              3. Configuring agents
                1. Layer 3 agent
                2. Layer 3 agent
              4. Configuring the metadata agent
            4. Setting up OVS
            5. Finalizing the installation
            6. Validating the installation
          3. Installing on the compute node
            1. Setting up the prerequisites
            2. Installing packages
            3. Initial configuration
              1. Neutron configuration
              2. ML2 plugin
              3. Nova configuration
            4. Finalizing the installation
            5. Validating the installation
        4. Troubleshooting Neutron
        5. Summary
      13. 6. Building Your Portal in the Cloud
        1. Working with Horizon
          1. Some basic terminologies
          2. System requirements to install Horizon
          3. Installing Horizon
          4. The initial configuration of Horizon
          5. Finalizing the installation
          6. Validating the installation
          7. The structure of the Horizon dashboard
        2. Troubleshooting Horizon
          1. Understanding the Horizon log
        3. Summary
      14. 7. Your OpenStack Cloud in Action
        1. Gathering service requirements
        2. Tenant and user management
          1. GUI
            1. Creating the project
            2. Adding users
            3. Associating users to the project
          2. CLI
            1. Creating the project
            2. Creating the users
            3. Associating users to the roles
        3. Network management
          1. Network types
            1. Physical network
            2. Virtual network
              1. Tenant network
              2. Provider network
              3. Implementations of virtual networks
          2. External network
            1. Creating the network
            2. Creating the subnet
          3. Tenant network
            1. Create the tenant network
            2. Creating a subnet
            3. Creating a router
        4. Requesting services
          1. Access and security
            1. Security groups
            2. Key pairs
          2. Requesting your first VM
            1. Creating a security group
            2. Creating a key pair
            3. Launching an instance
            4. Using CLI tools
              1. Generating a key pair
              2. Requesting a server
        5. Behind the scenes - how it all works
        6. Creating VM templates
          1. Installing Oz and its dependencies
            1. RHEL/CentOS
            2. Ubuntu
          2. Oz templates
          3. Creating VM templates using Oz
          4. Uploading the image
        7. Summary
      15. 8. Taking Your Cloud to the Next Level
        1. Working with Heat
          1. The components of Heat
          2. Heat Orchestration Template (HOT)
          3. Installing Heat
            1. Creating the database
            2. Installing components
            3. The initial configuration
              1. Creating a Heat user in Keystone
              2. Creating additional Heat stack roles
              3. Creating Heat services in Keystone
              4. Creating Heat endpoints in Keystone
              5. Modifying the configuration file
              6. Populating the database
            4. Finalizing the installation
          4. Deploying your first HOT
        2. Ceilometer
          1. Installing Ceilometer
            1. Installing Ceilometer on the controller node
              1. Installing and configuring MongoDB
              2. Creating the database
              3. Installing packages
              4. Initial configuration
                1. Creating the Ceilometer user in Keystone
                2. Creating the Ceilometer service
                3. Creating the Ceilometer endpoint
                4. Generating a random password
                5. Editing the configuration files
              5. Enabling the Glance notification
              6. Enabling the Cinder notification
              7. Enabling the Swift notification
                1. Creating the ResellerAdmin role
                2. Enabling notifications
                3. Allowing Swift access to Ceilometer files
              8. Finalizing the installation
          2. Installing Ceilometer on the compute node
            1. Installing the packages
              1. Ceilometer-Agent-Compute
              2. Initial configuration
              3. Enable Nova notification
              4. Finalizing the installation
          3. Installing Ceilometer on the storage node
            1. Enabling Cinder notification
            2. Finalizing the installation
        3. Testing the installation
        4. Billing and usage reporting
        5. Summary
      16. 9. Looking Ahead
        1. OpenStack distributions
          1. Devstack
          2. Operating system distributions
            1. Ubuntu OpenStack
            2. RedHat OpenStack
            3. Oracle OpenStack
          3. Vendor offerings
            1. VMware integrated OpenStack
            2. Rackspace cloud
            3. HP Helion
            4. Cisco OpenStack
            5. Mirantis OpenStack
            6. SwiftStack
            7. IBM Cloud manager
            8. Suse Cloud
          4. Other public clouds
          5. Choosing a distribution
        2. OpenStack in action
          1. Enterprise Private Cloud
          2. Service providers
          3. Schools/Research centers
          4. Web/SaaS providers
        3. The roadmap
        4. What is in it for you?
        5. Summary
      17. A. New Releases
        1. The releases
        2. Features and differences
        3. Changes in the installation procedure
          1. Adding the repository
          2. The OpenStack client
          3. Installing Keystone
          4. Service configurations
        4. Upgrading from Juno
          1. Cleanup
          2. Backup
          3. Adding the repositories
          4. Running the upgrade
          5. Installing additional components
          6. Updating the DB schema
          7. Modifying configuration files
          8. Restarting services
      18. Index