SlideShare a Scribd company logo
Openstack In Action 1st Edition V K Cody
Bumgardner download
https://ebookbell.com/product/openstack-in-action-1st-edition-v-
k-cody-bumgardner-49560534
Explore and download more ebooks at ebookbell.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
Containers In Openstack Leverage Openstack Services To Make The Most
Of Docker Kubernetes And Mesos Pradeep Kumar Singh Madhuri Kumari
Singh
https://ebookbell.com/product/containers-in-openstack-leverage-
openstack-services-to-make-the-most-of-docker-kubernetes-and-mesos-
pradeep-kumar-singh-madhuri-kumari-singh-22851932
Containers In Openstack Leverage Openstack Services To Make The Most
Of Docker Kubernetes And Mesos Pradeep Kumar Singh Madhuri Kumari
https://ebookbell.com/product/containers-in-openstack-leverage-
openstack-services-to-make-the-most-of-docker-kubernetes-and-mesos-
pradeep-kumar-singh-madhuri-kumari-22851938
Identity Authentication And Access Management In Openstack
Implementing And Deploying Keystone Steve Martinelli
https://ebookbell.com/product/identity-authentication-and-access-
management-in-openstack-implementing-and-deploying-keystone-steve-
martinelli-5471654
How To Succeed In Physics And Reduce Your Workload Kyle Thomas
https://ebookbell.com/product/how-to-succeed-in-physics-and-reduce-
your-workload-kyle-thomas-49612358
Accelerated Linux Api For Software Diagnostics With Category Theory In
View 1st Edition Dmitry Vostokov
https://ebookbell.com/product/accelerated-linux-api-for-software-
diagnostics-with-category-theory-in-view-1st-edition-dmitry-
vostokov-50902594
Openstack Cloud Computing Cookbook Kevin Jackson
https://ebookbell.com/product/openstack-cloud-computing-cookbook-
kevin-jackson-2612642
Openstack For Architects 2nd Edition Ben Silverman Michael Solberg
https://ebookbell.com/product/openstack-for-architects-2nd-edition-
ben-silverman-michael-solberg-34794992
Openstack Cloud Computing Cookbook Second Edition 2nd Edition Kevin
Jackson
https://ebookbell.com/product/openstack-cloud-computing-cookbook-
second-edition-2nd-edition-kevin-jackson-4652894
Openstack Operations Guide 1st Edition Tom Fifield Diane Fleming
https://ebookbell.com/product/openstack-operations-guide-1st-edition-
tom-fifield-diane-fleming-4656184
Openstack In Action 1st Edition V K Cody Bumgardner
M A N N I N G
V. K. Cody Bumgardner
FOREWORD BY Jay Pipes
OpenStack in Action
Licensed to tracy moore <nordick.an@gmail.com>
Licensed to tracy moore <nordick.an@gmail.com>
OpenStack in Action
V. K. CODY BUMGARDNER
M A N N I N G
SHELTER ISLAND
Licensed to tracy moore <nordick.an@gmail.com>
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: orders@manning.com
©2016 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
any form or by means electronic, mechanical, photocopying, or otherwise, without prior written
permission of the publisher.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books
are printed on paper that is at least 15 percent recycled and processed without the use of
elemental chlorine.
Manning Publications Co. Development editors: Susan Conant, Cynthia Kane
20 Baldwin Road Technical development editor: Bill Bruns
PO Box 761 Copyeditor: Andy Carroll
Shelter Island, NY 11964 Proofreader: Katie Tennant
Technical proofreaders: Alain Couniot, David Pombal
Typesetter: Dottie Marsico
Cover designer: Marija Tudor
ISBN 9781617292163
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – EBM – 21 20 19 18 17 16
Licensed to tracy moore <nordick.an@gmail.com>
v
brief contents
PART 1 GETTING STARTED ........................................................1
1 ■ Introducing OpenStack 3
2 ■ Taking an OpenStack test-drive 20
3 ■ Learning basic OpenStack operations 55
4 ■ Understanding private cloud building blocks 84
PART 2 WALKING THROUGH A MANUAL DEPLOYMENT.............111
5 ■ Walking through a Controller deployment 113
6 ■ Walking through a Networking deployment 161
7 ■ Walking through a Block Storage deployment 195
8 ■ Walking through a Compute deployment 216
PART 3 BUILDING A PRODUCTION ENVIRONMENT 239
9 ■ Architecting your OpenStack 241
10 ■ Deploying Ceph 259
11 ■ Automated HA OpenStack deployment with Fuel 277
12 ■ Cloud orchestration using OpenStack 303
Licensed to tracy moore <nordick.an@gmail.com>
Licensed to tracy moore <nordick.an@gmail.com>
vii
contents
foreword xiii
preface xv
acknowledgements xvii
about this book xviii
PART 1 GETTING STARTED..................................................1
1 Introducing OpenStack 3
1.1 What is OpenStack? 6
1.2 Understanding cloud computing and OpenStack 9
Abstraction and the OpenStack API 10
1.3 Relating OpenStack to the computational
resources it controls 11
OpenStack and hypervisors 11 ■
OpenStack and network
services 14 ■
OpenStack and storage 15 ■
OpenStack and
cloud terminology 17
1.4 Introducing OpenStack components 18
1.5 History of OpenStack 18
1.6 Summary 19
Licensed to tracy moore <nordick.an@gmail.com>
CONTENTS
viii
2 Taking an OpenStack test-drive 20
2.1 What is DevStack? 22
2.2 Deploying DevStack 23
Creating the server 25 ■
Preparing the server environment 26
Preparing DevStack 28 ■
Executing DevStack 29
2.3 Using the OpenStack Dashboard 36
Overview screen 38 ■
Access & Security screen 38
Images & Snapshots screen 41 ■
Volumes screen 44
Instances screen 47
2.4 Accessing your first private cloud server 51
Assigning a floating IP to an instance 53 ■
Permitting
network traffic to your floating IP 53
2.5 Summary 54
3 Learning basic OpenStack operations 55
3.1 Using the OpenStack CLI 56
3.2 Using the OpenStack APIs 58
3.3 Tenant model operations 59
The tenant model 61 ■
Creating tenants, users, and
roles 62 ■
Tenant networks 65
3.4 Quotas 78
Tenant quotas 79 ■
Tenant-user quotas 80
Additional quotas 82
3.5 Summary 83
4 Understanding private cloud building blocks 84
4.1 How are OpenStack components related? 85
Understanding component communication 85
Distributed computing model 91
4.2 How is OpenStack related to vendor technologies? 95
Using vendor storage systems with OpenStack 96
Using vendor network systems with OpenStack 101
4.3 Why walk through a manual deployment? 108
4.4 Summary 109
Licensed to tracy moore <nordick.an@gmail.com>
CONTENTS ix
PART 2 WALKING THROUGH A MANUAL DEPLOYMENT......111
5 Walking through a Controller deployment 113
5.1 Deploying controller prerequisites 116
Preparing the environment 116 ■
Configuring the network
interface 117 ■
Updating packages 120 ■
Installing software
dependencies 121
5.2 Deploying shared services 124
Deploying the Identity Service (Keystone) 125 ■
Deploying the
Image Service (Glance) 135
5.3 Deploying the Block Storage (Cinder) service 142
Creating the Cinder data store 143 ■
Configuring a Cinder
Keystone user 144 ■
Creating the Cinder service and
endpoint 145 ■
Installing Cinder 146
5.4 Deploying the Networking (Neutron) service 147
Creating the Neutron data store 148 ■
Configuring a Neutron
Keystone user 149 ■
Installing Neutron 151
5.5 Deploying the Compute (Nova) service 152
Creating the Nova data store 153 ■
Configuring a Nova
Keystone user 154 ■
Assigning a role to the nova user 154
Creating the Nova service and endpoint 155 ■
Installing
the Nova controller 156
5.6 Deploying the Dashboard (Horizon) service 158
Installing Horizon 158 ■
Accessing Horizon 159
Debugging Horizon 160
5.7 Summary 160
6 Walking through a Networking deployment 161
6.1 Deploying network prerequisites 163
Preparing the environment 164 ■
Configuring the network
interfaces 164 ■
Updating packages 167 ■
Software and
configuration dependencies 168 ■
Installing Open
vSwitch 171 ■
Configuring Open vSwitch 174
6.2 Installing Neutron 177
Installing Neutron components 177 ■
Configuring
Neutron 178 ■
Configuring the Neutron ML2
plug-in 178 ■
Configuring the Neutron L3 agent 179
Licensed to tracy moore <nordick.an@gmail.com>
CONTENTS
x
Configuring the Neutron DHCP agent 180 ■
Configuring
the Neutron Metadata agent 180 ■
Restarting and verifying
Neutron agents 181 ■
Creating Neutron networks 182
Relating Linux, OVS, and Neutron 191 ■
Checking
Horizon 193
6.3 Summary 194
7 Walking through a Block Storage deployment 195
7.1 Deploying Block Storage prerequisites 197
Preparing the environment 198 ■
Configuring the network
interface 198 ■
Updating packages 201 ■
Installing and
configuring the Logical Volume Manager 202
7.2 Deploying Cinder 206
Installing Cinder 208 ■
Configuring Cinder 209
Restarting and verifying the Cinder agents 210
7.3 Testing Cinder 211
Create a Cinder volume: command line 211 ■
Create a
Cinder volume: Dashboard 213
7.4 Summary 215
8 Walking through a Compute deployment 216
8.1 Deploying Compute prerequisites 219
Preparing the environment 219 ■
Configuring the
network interface 219 ■
Updating packages 222
Software and configuration dependencies 222
Installing Open vSwitch 223 ■
Configuring Open
vSwitch 225
8.2 Installing a hypervisor 226
Verifying your host as a hypervisor platform 226
Using KVM 227
8.3 Installing Neutron on Compute nodes 229
Installing the Neutron software 230 ■
Configuring
Neutron 230 ■
Configuring the Neutron ML2 plug-in 231
8.4 Installing Nova on compute nodes 231
Installing the Nova software 231 ■
Configuring core Nova
components 232 ■
Checking Horizon 233
8.5 Testing Nova 234
Creating an instance (VM): command line 234
8.6 Summary 238
Licensed to tracy moore <nordick.an@gmail.com>
CONTENTS xi
PART 3 BUILDING A PRODUCTION ENVIRONMENT........... 239
9 Architecting your OpenStack 241
9.1 Replacement of existing virtual server platforms 242
Making deployment choices 245 ■
What kind of network
are you? 246 ■
What type of storage are you? 247 ■
What
kind of server are you? 250
9.2 Why build a private cloud? 251
Public cloud economy-of-scale myth 251 ■
Global scale
or tight control 252 ■
Keeping data gravity private 252
Hybrid moments 253
9.3 Building a private cloud 254
OpenStack deployment tools 254 ■
Networking in your
private cloud 255 ■
Storage in your private cloud 257
9.4 Summary 258
10 Deploying Ceph 259
10.1 Preparing Ceph nodes 260
Node authentication and authorization 261 ■
Deploying
Ceph software 264
10.2 Creating a Ceph cluster 265
Creating the initial configuration 265 ■
Deploying Ceph
software 266 ■
Deploying the initial configuration 267
10.3 Adding OSD resources 268
Readying OSD devices 269 ■
Creating OSDs 271
10.4 Basic Ceph operations 273
Ceph pools 273 ■
Benchmarking a Ceph cluster 274
10.5 Summary 276
11 Automated HA OpenStack deployment with Fuel 277
11.1 Preparing your environment 279
Network hardware 279 ■
Server hardware 282
11.2 Deploying Fuel 290
Installing Fuel 290
11.3 Web-based basic Fuel OpenStack deployment 293
Server discovery 294 ■
Creating a Fuel deployment
environment 295 ■
Configuring the network for the
Licensed to tracy moore <nordick.an@gmail.com>
CONTENTS
xii
environment 296 ■
Allocating hosts to your environment 298
Final settings and verification 301 ■
Deploying changes 302
11.4 Summary 302
12 Cloud orchestration using OpenStack 303
12.1 OpenStack Heat 304
Heat templates 304 ■
A Heat demonstration 307
12.2 Ubuntu Juju 312
Preparing OpenStack for Juju 312 ■
Installing Juju 314
Deploying the charms CLI 317 ■
Deploying the Juju GUI 319
12.3 Summary 325
appendix Installing Linux 326
index 347
Licensed to tracy moore <nordick.an@gmail.com>
xiii
foreword
It’s difficult for me to believe that it’s already been five years since I was looking over
the original source code of the Nova project. The code had just been released by the
Anso Labs team who created it for NASA. Rackspace, where I worked at the time, was
seeking a new code base to act as the next generation of the Rackspace Cloud. A few
months later, Rackspace open-sourced the code for its Rackspace Cloud Files platform
as the Swift project. Nova and Swift became the first two pillars of the nascent Open-
Stack project.
Since that time, both projects have undergone substantial change. Swift’s core
team and code base have remained remarkably stable, though the project has added a
number of features and seen numerous enhancements in performance and scalabil-
ity. On the other hand, when compared with its humble beginnings, Nova’s source
code is nearly unrecognizable. New code bases like Glance, Cinder, Keystone, and
Neutron were constructed to deliver functionality that originally was handled by Nova.
At the same time that this new source code emerged to handle functionality essen-
tial to managing large computing infrastructure, a new kind of open source commu-
nity was beginning to take form. Open source developers and advocates with
experience in operating system distribution and packaging, configuration manage-
ment, database design, automation, networking, and storage systems flocked to con-
tribute to OpenStack projects.
Our community grew (and continues to grow) at breakneck pace, quickly becom-
ing one of the largest, most active and influential open source communities on the
planet. The OpenStack Foundation was created to handle the governance challenges
that accompany the growth of a successful community. Design summits and confer-
ences have grown to host more than 3,500 contributors per year all around the planet.
Licensed to tracy moore <nordick.an@gmail.com>
FOREWORD
xiv
A world-class continuous integration and build system was created by the community
to support the massive growth in both source code and number of contributors. This
automated build system’s size and scope now rival or exceed those of much older
open source communities like the Apache and Eclipse foundations.
The OpenStack ecosystem has been the fertile ground from which new companies
like SwiftStack and Piston Cloud emerged. Existing companies like HP, Mirantis, and
Red Hat found the OpenStack landscape to be similarly fruitful, and they continue to
drive innovation across the now dozens of projects that comprise the big tent of the
OpenStack community.
This expansion of the OpenStack community has brought with it a bewildering
complexity to how distributed software components are deployed and how they inter-
operate. Those who deploy OpenStack “in the wild” need to understand a broad set of
concepts from networking and storage to virtualization and configuration manage-
ment. Obtaining the necessary knowledge and skills has been and remains one of the
key challenges facing those who wish to build cloud platforms using OpenStack. This
book, OpenStack in Action, will provide readers with the knowledge they need to deploy
and run OpenStack.
The author leads the audience through the complexity of an OpenStack deploy-
ment, demonstrating three ways to deploy the software: via a scripted tool called
DevStack, via manual installation of operating system packages, and via the Fuel
OpenStack installer. In each section, concepts around networking and storage setup
are thoroughly explained, allowing readers to gradually dip their toes into the cloud
computing waters and, by the end of the book, feel comfortable diving into the deep
end of the pool.
Besides excellent coverage of OpenStack technology, the author also explains how
to go about evaluating if and how your organization will benefit from cloud comput-
ing. The cloud does not magically solve the manual and time-consuming human-
based process problems that exist in many organizations. But, when implemented
smartly and for the right reasons, the cloud can transform an IT organization and dra-
matically improve the services they provide. In chapter 9, Mr. Bumgardner leads a dis-
cussion that should be required reading for any IT director who is considering
replacing existing virtualized IT infrastructure with OpenStack or constructing a new
private cloud offering for their internal customers.
In short, OpenStack in Action serves as an excellent primer on the complex world of
cloud computing and the OpenStack software ecosystem. Read it. Absorb it. And
become a “Stacker” at heart!
JAY PIPES
MEMBER, OPENSTACK TECHNICAL COMMITTEE
DIRECTOR OF ENGINEERING
MIRANTIS, INC.
Licensed to tracy moore <nordick.an@gmail.com>
xv
preface
My first exposure to OpenStack came in the summer of 2011 while I was working at
the University of Kentucky. My coworker and friend, Brent Salisbury, and I were
invited to meet with a Fortune 50 technology company to discuss a product develop-
ment project. During our meeting, the project’s executive sponsor gave us the option
to work with existing commercial tools or investigate the use of a community project
called OpenStack. Naturally, we chose to work with the framework we knew nothing
about, and so began our OpenStack journey. Nothing came of the product develop-
ment project, but the OpenStack encounter, as it turned out, became a turning point
in our professional, and in my case academic, careers. Brent left the university and
cofounded a startup that was acquired by Docker, where he currently works. I, on the
other hand, transferred from a master’s to a doctoral program and wrote this book.
By early 2013, the Grizzly release of OpenStack somewhat resembled current ver-
sions, but instabilities due to rapid feature inclusion prevented us from considering
OpenStack production-ready for our enterprise environment. But although I was not
ready to put my neck on the line with OpenStack for the enterprise, research comput-
ing was another story. As part of a graduate independent study class, I documented
the use cases, architecture, and strategy around using OpenStack in research comput-
ing. In addition, I described the process and eventual adoption of the platform as a
private cloud for our enterprise.
I used figure 1 in my original academic report to represent the component-level dis-
tribution of OpenStack. I suspect cooking an elephant, much like eating one, must be
done a piece at a time. Far too often in technology, we accept technological isolation as
an organizationally sound practice—“I am a storage guy,” or “I am a network girl”—but
this is paramount to someone only eating one part of the elephant. In this book I’ve
Licensed to tracy moore <nordick.an@gmail.com>
PREFACE
xvi
tried to mix recognizable morsels with new concepts for easier digestion. Although you
might not want to taste elephant feet, you’d better know, at least in principle, how they
work if you are going to be successful in your adoption of cloud computing.
I’m writing this preface exactly two years to the day after I first spoke with a Man-
ning acquisitions editor. When I started this project, there were fewer than 500 Open-
Stack contributors, and now there are thousands. Not only has OpenStack become
one of the fastest-growing open source communities ever, it has been adopted by the
biggest organizations in the world. More importantly, at least for you, OpenStack is
now mature and ready to serve as a foundation for your organization’s private cloud.
Figure 1 This image is from a sixteenth-
century edition of Libro de Arte Coquinaria
(Book on the Art of Cookery) by Maestro
Martino.
Licensed to tracy moore <nordick.an@gmail.com>
xvii
acknowledgments
This book would have never existed without the encouragement of my doctoral advi-
sor and friend, Professor Victor W. Marek. The pushing was always welcome, the confi-
dence was always needed, and the responsibility is mine to pay forward.
I would never have imagined the effort that it takes to produce a book if I hadn’t
experienced it myself. Whether or not this effort produced the desired result will be
decided by my readers, but there should be no doubt that an army of reviewers, edi-
tors, and other contributors spent many hours in the pursuit of a high-quality book.
Having contributed to and reviewed other books from other publishers as I wrote this
book, I can honestly say that Manning does everything they can to produce the very
best work possible. I especially want to thank Susan Conant, my development editor
for most of this book, for her tireless work, continually pushing for improvements.
Thanks also to publisher Marjan Bace and everyone on the editorial and production
teams, including Mary Piergies, Cynthia Kane, Andy Carroll, Katie Tennant, and many
others who worked behind the scenes. Finally, I want to thank the following individu-
als, who read drafts of this book and provided suggestions: Andy Kirsch, Chris Snow,
Fernando Rodrigues, Hafizur Rahman, Jeff Lim, Kosmas Chatzimichalis, Matt Hart-
ing, Mayur Patil, Michael Hamrah, Peeyush Maharshi, and Toby Lazar.
Special thanks go to you, Sarah, my wife, who between caring for our two small
children and supporting my work travel, graduate work, this book, and other work,
took on far more than your share. Although the papers, presentations, and books
have my first name on them, they will also always carry the name we share. Sarah, Syd-
ney, and Jack, I’m sorry for the lost time and energy. I hope you can be as proud of me
as I am of you. I love you all.
Licensed to tracy moore <nordick.an@gmail.com>
xviii
about this book
The primary topic of this book is deploying enterprise private clouds using Open-
Stack. In this context, I discuss private clouds as pools of infrastructure resources, or
infrastructure as a service (IaaS), that are owned and managed by the organizations they
serve. In contrast, public cloud IaaS resources are owned and operated by third-party
service providers.
Financially, one can think of private clouds as primarily a capital expense, whereas
public clouds are typically operational ones. The distinction is easy to understand,
given that in private cloud deployments, organizations typically purchase or lease a
fixed infrastructure for the duration of its serviceable life, regardless of actual usage.
In public cloud deployments, cost is typically directly related to hourly occupancy (on
or off) and communication costs.
The organizational adoption of private and public clouds is often related to the
size and scope of those organizations’ IT responsibilities. Enterprise IT departments,
whose responsibility it is to centrally provide technical architectures and resources for
the rest of the organization, have a vested interest in using a private cloud. A multi-
tenant, fully orchestrated, private cloud provides great resource-management effi-
ciency to enterprise IT. In this regard, enterprise IT becomes a cloud broker. In
contrast, departmental IT units often lack the data center facilities and personnel to
cost-effectively deploy private clouds. Often, due to their relatively small resource
requirements, departments can take advantage of public cloud resources. If they’re
available, departments can also take advantage of private cloud resources managed by
their enterprise IT units. Using both private and public clouds based on workload
results in a hybrid cloud.
Licensed to tracy moore <nordick.an@gmail.com>
ABOUT THIS BOOK xix
Despite the differences in clouds and the types of organizations that are best posi-
tioned to take advantage of them, the clouds themselves can be built using the same
technologies. Although the ingredients that make up cloud resources might be the
same, the recipes and methods of consumption can be very different.
OpenStack is a powerful framework for constructing both private and public
clouds. Fundamentally, OpenStack abstracts and provides a common API for the hard-
ware and software used in building clouds. The framework provides two very impor-
tant things:
 Abstraction of hardware and software resources, which prevents vendor lock-in
of any particular component
 A common API across resources, which allows for complete orchestration of
connected components
The first aspect is nice from a financial perspective, but the second is the key to a mod-
ern IT transformation. For enterprise IT, OpenStack brings the same level of transfor-
mational efficiency to cloud deployment.
Why OpenStack in Action?
This book is intended as a step-by-step, bottom-up guide for constructing computa-
tional clouds of resources. My intended audience includes researchers, administra-
tors, and students interested in the deployment of an OpenStack environment. There
are no technical prerequisites beyond a basic operational knowledge of Linux, and
the material is suited to people with very different backgrounds and technical abili-
ties. Similarly, OpenStack is suited for many use cases.
Despite separate use cases utilizing the same OpenStack framework, the require-
ments and design of private clouds can vary greatly from those of service providers.
Enterprises are interested in providing private resource clouds for their organizations.
These private clouds don’t just represent additional services; they can represent a
transformation in the way organizations provide computational resources.
This book comprises
 An introduction to OpenStack through the automated deployment of a single-
node development environment
 A deeper understanding of OpenStack through a step-by-step manual deploy-
ment of a multi-node environment
 The impacts of private cloud technologies (OpenStack, Ceph, Juju, and the
like) from the perspective of IT operations
 The deployment of a production OpenStack environment using vendor-
provided automated deployment and management tools
The architecture covered in the book is appropriate for small (5-node) to large enter-
prise (100-node) private cloud deployments. In addition, chapter 12 walks you
through the use of application orchestration tools like OpenStack Heat and Ubuntu
Juju on your newly constructed private cloud.
Licensed to tracy moore <nordick.an@gmail.com>
ABOUT THIS BOOK
xx
This book is about building an understanding of private cloud technologies, the
deployment and operation of those technologies, and the long-term impact of cloud
orchestration on traditional IT roles. This book will provide you with the ability to
develop a convincing argument for the deployment of an OpenStack private cloud in
your enterprise and will help you develop the technical knowledge to deploy your
private cloud. Configurations and operational scripts demonstrated in the book are
also available through the GitHub repository for the book at https://github.com/
codybum/OpenStackInAction.
The most important thing for you to understand is that an OpenStack private
cloud is not simply another virtualization tool. OpenStack is a framework that utilizes
existing virtualization tools to construct and manage clouds. You’ll learn how to think
about cloud construction, deployment, and organization. On the technical side, you’ll
gain an understanding of the components of OpenStack and supporting technolo-
gies—specifically, OpenStack Compute, Networking, Block Storage, Dashboard, and
API components.
Roadmap
The book is divided into three parts, where part 1 (chapters 1–4) gets you started, part 2
(chapters 5–8) provides a deep dive into the ecosystem, and part 3 (chapters 9–12)
prepares you for using OpenStack in a production environment.
Chapter 1 introduces the OpenStack cloud operating system, the motivations for
developing the framework, and what OpenStack can do for your organization.
In chapter 2 you’ll jump right in and take a test drive with OpenStack, using a
rapid deployment tool and minimal infrastructure. This test drive is not just to dem-
onstrate the OpenStack Dashboard user experience; it will also provide you with
a known working model to use while you learn the OpenStack framework. By the
end of chapter 2, you’ll be provisioning virtual machines under your own OpenStack
environment.
Chapter 3 makes use of the environment you constructed in chapter 2 and intro-
duces the OpenStack command-line interface (CLI). In this chapter, you’ll walk
through basic OpenStack operations as you create new tenants (projects), users, roles,
and internal networks.
In chapter 4 you’ll progress from using OpenStack to understanding the compo-
nent-level functions and their interactions with each other in the overall OpenStack
framework. You’ll learn about several cloud design methodologies, which will prepare
you for your own multi-node deployment. This chapter covers how OpenStack com-
ponents work together and the relationship between OpenStack components and
vendor resources.
Chapters 5–8 cover deep dives related to specific OpenStack projects, devoting
a chapter to each of the major projects. These chapters will walk you through a
manual deployment of OpenStack in a multi-node environment. Through these
chapters, you’ll gain a great understanding of how and why things work as they do in
Licensed to tracy moore <nordick.an@gmail.com>
ABOUT THIS BOOK xxi
the OpenStack ecosystem. In addition, this manual deployment will give you valuable
troubleshooting experience.
Chapter 9 covers architectural, organizational, and strategic decisions relating to a
production OpenStack deployment. Chapter 10 covers the basic deployment and
operation of Ceph storage. Chapter 11 will walk you through the automated HA
deployment of OpenStack using Fuel. Finally, chapter 12 covers cloud orchestration
using OpenStack Heat and Ubuntu Juju.
Who should read this book?
The book is suited for infrastructure specialists, engineers, architects, and support
personnel interested in deploying a private cloud environment using OpenStack.
Although the book has strategic value for those in executive and strategic roles, the
message is tailored for a technical reader. There are no technical prerequisites
beyond a basic operational knowledge of Linux.
Code conventions and downloads
All code in the book is presented in a fixed-width font like this to separate it from
ordinary text. Code annotations accompany many of the listings, highlighting impor-
tant concepts. In some cases, numbered bullets link to explanations that follow the
listing.
You can download the code for the examples in the book from the publisher’s web-
site at www.manning.com/books/openstack-in-action and also from https://github
.com/codybum/OpenStackInAction.
Author Online
The purchase of OpenStack in Action includes free access to a private web forum run by
Manning Publications, where you can make comments about the book, ask technical
questions, and receive help from the author and from other users. To access the forum
and subscribe to it, point your web browser to www.manning.com/books/openstack-
in-action. This page provides information on how to get on the forum once you are
registered, what kind of help is available, and the rules of conduct on the forum.
Manning’s commitment to our readers is to provide a venue where a meaningful
dialogue between individual readers and between readers and the author can take
place. It is not a commitment to any specific amount of participation on the part of
the author, whose contribution to the forum remains voluntary (and unpaid). We sug-
gest you try asking the author some challenging questions lest his interest stray! The
Author Online forum and the archives of previous discussions will be accessible from
the publisher’s website as long as the book is in print.
About the author
Cody Bumgardner (http://codybum.com) has been in the IT industry for over 20
years, during which he has worked in technical, managerial, and sales roles in the
Licensed to tracy moore <nordick.an@gmail.com>
ABOUT THIS BOOK
xxii
areas of IT architecture, software development, networking, research, systems, and
security. Over the last several years, he has focused on researching, implementing, and
speaking about cloud computing and computational economics. He is also currently a
PhD candidate in Computer Science at the University of Kentucky (UK), focusing on
computational economics and distributed resource management. Cody currently
serves as the Chief Technology Architect (CTA) of a large public land-grant university.
As CTA, he developed a five-year university strategy and roadmap for cloud comput-
ing. This roadmap outlined the introduction of disruptive cloud technologies along
with the related transformations of the IT workforce. The plan centered around the
deployment of an enterprise OpenStack private cloud, supporting over 40,000 users
in academic, research, and health care (academic) divisions. Cody is responsible for
the architecture, financial model, deployment, and long-term strategy of the Open-
Stack private cloud, research computing, and other cloud computing initiatives.
About the cover
The figure on the cover of OpenStack in Action is captioned “Milkmaid from Cou-
tances.” The illustration is taken from a collection of works by many artists, edited by
Louis Curmer and published in Paris in 1841. The title of the collection is Les Français
peints par eux-mêmes, which translates as The French People Painted by Themselves. Each
illustration is finely drawn and colored by hand, and the rich variety of drawings in the
collection reminds us vividly of how culturally apart the world’s regions, towns, vil-
lages, and neighborhoods were just 200 years ago. Isolated from each other, people
spoke different dialects and languages. In the streets or in the countryside, it was easy
to identify where they lived and what their trade or station in life was just by their
dress.
Dress codes have changed since then, and the diversity by region, so rich at the time,
has faded away. It’s now hard to tell apart the inhabitants of different continents, let
alone different towns or regions. Perhaps we have traded cultural diversity for a more
varied personal life—certainly for a more varied and fast-paced technological life.
At a time when it’s hard to tell one computer book from another, Manning cele-
brates the inventiveness and initiative of the computer business with book covers
based on the rich diversity of regional life of two centuries ago, brought back to life by
pictures from collections such as this one.
Licensed to tracy moore <nordick.an@gmail.com>
Part 1
Getting started
The first part of this book is an introduction to the OpenStack framework:
how and why you’ll want to use it. OpenStack components are decomposed,
and relationships to underlying resources (compute, storage, network, and so
on) are explained. You’ll deploy OpenStack on a single node using the DevStack
deployment tool. Along the way, this part will help you start thinking about how
OpenStack could be used in your environment and develop your interest in the
framework enough to gain a deeper understanding of how things work under
the covers.
Licensed to tracy moore <nordick.an@gmail.com>
Licensed to tracy moore <nordick.an@gmail.com>
3
Introducing OpenStack
Only a few decades ago, many large computer hardware companies had their own
fabrication facilities and maintained competitive advantage by making specialty
processors, but as costs rose, fewer companies produced the volume of chips
needed to remain profitable. Merchant chip fabricators emerged, able to produce
general-purpose processors at scale, and drove down costs significantly. Having just
a few computer chip manufacturers encouraged standardized desktop and server
platforms around the Intel x86 instruction set, and eventually led to commodity
hardware in the client-server market.
The rapid growth of the World Wide Web during the dot-com years of the early
2000s created huge data centers filled with this commodity hardware. But although
the commodity hardware was powerful and inexpensive, its architecture was often
like that found in desktop computing, which was not designed with centralized
This chapter covers
 OpenStack and the cloud ecosystem
 Reasons to choose OpenStack
 What OpenStack can do for you and your
organization
 Key components of OpenStack
Licensed to tracy moore <nordick.an@gmail.com>
4 CHAPTER 1 Introducing OpenStack
management in mind. No tools existed to manage commodity hardware as a collec-
tion of resources. To make matters worse, servers during this period generally lacked
hardware management capabilities (secondary management cards), just like their
desktop cousins. Unlike mainframes and large symmetric multiprocessing (SMP)
machines, these commodity servers, like desktops, required layers of management
software to coordinate otherwise independent resources.
During this period, many management frameworks were developed internally by
both public and private organizations to manage commodity resources. Figure 1.1
shows collections of interconnected resources spread across several data centers. With
management frameworks, these common resources could be used interchangeably,
based on availability or user requirements. While it’s unclear exactly who coined the
term, those able to harness the power of commodity computing through management
frameworks would say they had a “cloud” of resources.
Out of many commercial and open source cloud management packages to be
developed during this period, the OpenStack project was one of the most popular.
OpenStack provides a common platform for controlling clouds of servers, storage,
networks, and even application resources. OpenStack is managed through a web-
based interface, a command-line interface (CLI), and an application programming
interface (API). Not only does this platform control resources, it does so without
requiring you to choose a specific hardware or software vendor. Vendor-specific
Data center
Mumbi
Data center
Paris
Data center
New York
Data center
San Francisco
Data center
Applications
Platform
Switch
Hypervisor OS
Physical
A A A
Data centers
have racks
Each rack has
resources
Figure 1.1 Cloud of interconnected
commodity resources
Licensed to tracy moore <nordick.an@gmail.com>
5
components can be replaced with minimum effort. OpenStack provides value for a
wide range of people in IT organizations.
One way to think about OpenStack is in the context of the Amazon buying experi-
ence. Users log in to Amazon and purchase products, and products are delivered.
Behind the scenes, an orchestra of highly optimized steps are taken to get products to
your door as quickly and inexpensively as possible. Twelve years after Amazon was
founded, Amazon Web Services (AWS) was launched. AWS brought the Amazon expe-
rience to computing resource delivery. A server request that might take weeks from a
local IT department could be fulfilled with a credit card and a few mouse clicks with
AWS. OpenStack aims to provide the same level of orchestrated efficiency demon-
strated by Amazon and other service providers to your organization.
What is OpenStack?
 For cloud/system/storage/network administrators—OpenStack controls many types
of commercial and open source hardware and software, providing a cloud man-
agement layer on top of vendor-specific resources. Repetitive manual tasks like
disk and network provisioning are automated with the OpenStack framework.
In fact, the entire process of provisioning virtual machines and even applica-
tions can be automated using the OpenStack framework.
 For the developer—OpenStack is a platform that can be used not only as an
Amazon-like service for procuring resources (virtual machines, storage, and so
on) used in development environments, but also as a cloud orchestration plat-
form for deploying extensible applications based on application templates.
Imagine the ability to describe the infrastructure (X servers with Y RAM) and
software dependencies (MySQL, Apache2, and so on) of your application, and
having the OpenStack framework deploy those resources for you.
 For the end user—OpenStack is a self-service system for infrastructure and appli-
cations. Users can do everything from simply provisioning virtual machines
(VMs) like with AWS, to constructing advanced virtual networks and applica-
tions, all within an isolated tenant (project) space. Tenants, also known as pro-
jects, are the way that OpenStack isolates assignments of resources. Tenant
isolation includes storage, network, and VM isolation, so end users can be given
much more freedom than in traditional virtual server environments. Imagine
end users being assigned a quota of resources that they could easily provision
how and when they want.
Virtual machines and tenants
Throughout the book, the term virtual machine (VM) will refer to an instance of an
emulated physical machine (server). Virtual machines perform the same functions as
physical machines and, from the perspective of the operating system, are intended
to be indistinguishable from physical hardware. VMs are used for a variety of reasons,
but most virtualization motivations boil down to the flexibility of controlling things
through software outweighing the performance penalty. From a high-level view, you
Licensed to tracy moore <nordick.an@gmail.com>
6 CHAPTER 1 Introducing OpenStack
The OpenStack foundation has hundreds of official corporate sponsors and a com-
munity of tens of thousands of people in over 130 countries. Like Linux, many people
will be attracted to OpenStack as a community-supported alternative to commercial
products. But what they’ll soon learn is that when it comes to cloud frameworks, there
are few that compare to OpenStack in terms of depth and breadth of services. Perhaps
more importantly, there might not be another product, commercial or otherwise, that
the average system administrator, developer, or architect can use on their own and
that can provide a greater benefit to their organization.
1.1 What is OpenStack?
Let’s expand on the definition of OpenStack as a framework for managing, defining,
and utilizing cloud resources. The official OpenStack website (www.openstack.org)
describes the framework as “open source software for creating private and public
clouds.” It goes on to say, “OpenStack Software delivers a massively scalable cloud
operating system.” If you have experience in server virtualization, you may quickly, yet
incorrectly, conclude that OpenStack is just another way to provide virtual machines.
Although this is a service enabled by the OpenStack framework, it’s by no means
OpenStack’s definitive function.
Figure 1.2 shows several of the resource components that OpenStack coordinates
to create public and private clouds. As the figure illustrates, OpenStack doesn’t
replace these resource providers; it simply manages them, through control points
built into the framework.
An experienced systems administrator might take the description of OpenStack as
a “cloud operating system” with great skepticism. It’s not like administrators run
around to hundreds of servers with a boot disk, and load OpenStack on bare metal,
like a traditional operating system. Nevertheless, through its management of
resources, OpenStack shares operating systems characteristics, but in the context of
cloud computing.
With an OpenStack cloud you can
 Harness the resources of physical and virtual servers, networks, and storage systems
 Efficiently manage clouds of resources through tenants, quotas, and user roles
 Provide a common interface to control resources regardless of the underlying
vendor subsystem
(continued)
can think of OpenStack as bringing the same level of operational efficiency to your
data center that the software hypervisor brought to the server.
As you’ll learn in this book, the word tenant has a specific meaning in OpenStack. It’s
sufficient at this point to consider a tenant to be a quota-limited collection of
resources used by VMs that are logically isolated from each other. For example, if a
user misconfigures the network in tenant A, tenant B is unaffected.
Licensed to tracy moore <nordick.an@gmail.com>
7
What is OpenStack?
At first glance, OpenStack doesn’t look like a traditional operating system, but then
again, the “cloud” doesn’t look like a normal computer. One must take a step back
and consider the fundamental benefits of an operating system.
Before there were operating systems or even hardware-level abstraction languages
(assembly), programs were written in the language (binary machine code) of a spe-
cific computer. Then traditional operating systems came along and, among other
things, allowed users to standardize not just application code, but also the manage-
ment functions of the hardware. Administrators could now manage hardware
instances using a common interface, developers could write code for a common sys-
tem, and users only had to learn a single user interface. This held true regardless of
underlying hardware, as long as the operating system remained the same. In the evo-
lution of computers, the development and proliferation of operating systems gave rise
to the field of systems engineering and administration.
Figure 1.3 shows the many layers of abstraction in modern computational systems.
No doubt, in the past there were developers who didn’t like the idea of losing
direct control over hardware through the use of an operating system, just as some sys-
tems administrators don’t like the idea of losing control over the underlying hardware
and operating systems through server virtualization. In each of these transitions, from
External
network
Private or
public cloud
OpenStack manages physical
and virtual resources.
Storage
Physical Virtual
Server
Network
Figure 1.2 OpenStack is a cloud
operating system.
Licensed to tracy moore <nordick.an@gmail.com>
8 CHAPTER 1 Introducing OpenStack
machine code to assembly to the virtual layer, we didn’t lose the underlying layer; it
was simply standardized through abstraction. We still have highly optimized hardware,
we still have operating systems, and often we have a layer of hardware virtualization
between those layers.
Wide adoption of a new abstraction layer typically occurs when the benefits of opti-
mizing beyond the standard approach outweigh the cost of translating (virtualization)
between those layers. This is to say, when the overall utility of a computational envi-
ronment can be increased by sacrificing raw performance for usability, then a layer of
abstraction is typically adopted. This phenomenon is most clearly demonstrated by
central processing units (CPUs) that conform to the same instruction set for decades,
while radically changing their internal architectures.
When most people think of CPUs, they don’t think of virtualization and execution
variability on the hardware level, but this is the case. Many of the instructions on x86
processors are virtualized inside the processors themselves, where some complex leg-
acy instruction is executed through a series of simpler, yet faster, instructions. The
complexity of instruction-level optimization is beyond the scope of this book, but it’s
important to understand that even when using bare metal, some form of virtualization
is at play, even on the processor level. Now, instead of focusing on losing control,
imagine taking it through the use of a common framework for managing, monitoring,
and deploying private and public clouds of infrastructure and applications. Once you
take this evolutionary step forward, you have OpenStack.
Common layers of abstraction
Common access methods per layer
Processor-
specific
architecture
Machine
code
Instruction
set
architecture
Operating
system
Virtual
layer
OpenStack
Assembly Bytecode Vendor
API
OpenStack
API
Figure 1.3 Layers of computational abstraction
Decades of CPU abstraction and virtualization
The Intel x86 instruction set was introduced with the Intel 8086 CPU in 1978, as a
backward-compatible alternative to the Intel 8080. The x86 instruction set defined
assembly instructions that would remain available regardless of processor changes.
Since then, new “processor extensions” were added and clock cycles were
increased, but the existing instructions remained.
Licensed to tracy moore <nordick.an@gmail.com>
9
Understanding cloud computing and OpenStack
1.2 Understanding cloud computing and OpenStack
This book focuses on deploying private enterprise clouds using OpenStack. In this
context, I’ll describe private clouds as pools of infrastructure resources (VMs, storage,
and so on), also known as infrastructure as a service (IaaS), owned and managed by the
organizations they serve. In contrast, public cloud IaaS resources are owned and oper-
ated by third-party service providers, like Amazon AWS, Microsoft Azure, and the like.
The goal of this book is to help you bring the ease and efficiencies of public cloud
offerings to your enterprise.
Whether organizations opt for private or public clouds is often related to the size and
scope of those organizations’ IT responsibilities. Enterprise IT departments, with the
responsibility to centrally provide the technical architecture and resources for the rest
of the organization, have a vested interest in leveraging a private cloud. A multi-tenant
(where data, configuration, and user management are logically isolated per tenant),
fully orchestrated private cloud provides enterprise IT the ability to become a private
cloud broker.
As the demand for faster processors increased, so did the desire to ensure software
interoperability between processor generations. CPU designers needed the flexibility
to optimize at lower levels of abstraction, while maintaining instruction-level compat-
ibility (standardization). Designers didn’t worry about keeping the underlying hard-
ware the same, which allowed them to greatly increase the clock speed of processors
between generations. In 1995, the Pentium Pro introduced the idea of micro-op
decoding. Instead of a specific instruction taking a single clock cycle, it might be
translated into several simple instructions, which could take many cycles.
In addition to micro-ops, the Pentium Pro processor introduced optimizations through
out-of-order execution of instructions and memory virtualization (addressing 36 bits
of memory with a 32-bit bus). But this was all completely abstracted from the devel-
oper, allowing the same applications to run on several generations of processors
from multiple vendors. This method of maintaining instruction-level compatibility con-
tinues to this day with the current generation of x86_64 processors.
The economics of private vs. public clouds
Financially, one can think of private clouds as primarily capital expenses, whereas
public clouds are typically operational expenses. The distinction is easy to under-
stand given that in private cloud deployments, organizations typically purchase or
lease a fixed infrastructure for the duration of its serviceable life, regardless of actual
usage. In public clouds, the cost is typically directly related to hourly occupancy (if
it’s on and provisioned, you pay; if it’s off and destroyed, you don’t) and communica-
tion costs.
Licensed to tracy moore <nordick.an@gmail.com>
10 CHAPTER 1 Introducing OpenStack
In contrast, departmental IT units often lack the data center facilities and personnel
to cost-effectively deploy private clouds. Due to their relatively small resource require-
ments, departmental IT units can often take advantage of public cloud resources, or
also take advantage of private cloud resources managed by their enterprise IT units, if
any are available.
If you use both private and public clouds based on workload, that combination is
referred to as a hybrid cloud. Both public and private clouds are built using the same
technologies, but although the building blocks might be the same, the motivations for
using private and public clouds can be very different. For instance, users often use a
private cloud for security compliance reasons. It’s common for a public cloud to be
used for workloads that are cyclic in nature or that require a global scale that would be
very costly for an enterprise to provide.
Although this book focuses on using OpenStack for private clouds, many of the les-
sons learned translate directly to public cloud provider services that are based on the
OpenStack API.
1.2.1 Abstraction and the OpenStack API
Fundamentally, OpenStack abstracts and provides a common API for controlling hard-
ware and software resources provided by a wide range of vendors. The framework pro-
vides two very important things:
 Abstraction of hardware and software resources, which prevents vendor lock-in
for any particular component. This is accomplished by managing resources
through OpenStack, not directly using the vendor component. The drawback is
that not all vendor features are supported by OpenStack, but common required
features are.
 A common API across resources, which allows for complete orchestration of
connected components.
Multi-tenancy and full orchestration
Multi-tenant refers to the ability of a cloud platform to manage computational
resources on a departmental level. For instance, a marketing department could be
allocated a portion of shared resources (X VMs, Y storage, and so on), and from this
resource allocation the department could provision resources without interacting with
the central organization (think of the Amazon purchase model). Likewise, fully orches-
trated describes the ability to allocate resources in relation to application dependen-
cies. For instance, an accounting application along with its web and database server
dependencies could be programmatically deployed in this environment. So not only
could the marketing department manage its own resources, platform orchestration
could be used to deploy both the infrastructure (VMs) and applications (MySQL,
Apache2, custom application, and so on) inside a dedicated tenant.
Licensed to tracy moore <nordick.an@gmail.com>
11
Relating OpenStack to the computational resources it controls
While the first point is nice from a financial perspective, the second is the key to a
modern IT transformation.
The next section will relate OpenStack to other technologies that you might be
familiar with.
1.3 Relating OpenStack to the
computational resources it controls
You’ve read all about the great things that OpenStack provides, but how does it work?
Perhaps the easiest way to grasp how OpenStack works is to relate the framework to
common technologies found in an enterprise environment.
In this section, you’ll learn how OpenStack is related to the foundational resources
(compute, storage, network, and so on) that it controls. As you’ll see, OpenStack gen-
erally doesn’t provide the actual resource; it simply controls lower-level resources. Fig-
ure 1.4 shows how OpenStack manages providers of resources, which in turn are used
by virtual machines.
In the following subsections, you’ll see the details related to specific resource com-
ponents: server virtualization, via the control of hypervisors; networking, via the con-
trol of vendor-provided hardware and OpenStack services; block and object storage,
via the control of vendor and OpenStack services. Finally, we’ll look at OpenStack ser-
vices in relation to common cloud terms. As you’ll see, OpenStack is a framework that
coordinates resources and services, regardless of the underlying technology vendor.
1.3.1 OpenStack and hypervisors
A hypervisor or virtual machine monitor (VMM) is software that manages the emulation of
physical hardware for virtual machines. OpenStack is not a hypervisor, but it does con-
trol hypervisor operations. Many hypervisors are supported under the OpenStack
framework, including XenServer/XCP, KVM, QEMU, LXC, ESXi, Hyper-V, BareMetal,
OK, what’s the catch?
OpenStack provides support for a wide range of functions that are both scalable and
abstracted from the underlying hardware. What OpenStack (or any other cloud frame-
work) can’t do is conform to all of your current practices. To take advantage of the
power of cloud computing, you might have to change some of your own business and
architectural practices.
If your architectural standards are based on using <insert propriety vendor feature>
to do <some function> for all servers in your data center, this approach may be in
conflict with a vendor-abstracted cloud deployment. If your business practice is to cre-
ate virtual machines for users on request, you’re missing the point of cloud self-
service. If end-user requests can be effectively automated, or end users can provision
resources themselves, then you’re harnessing the power of cloud computing.
Licensed to tracy moore <nordick.an@gmail.com>
12 CHAPTER 1 Introducing OpenStack
and others (see the hypervisor support matrix: https://wiki.openstack.org/wiki/
HypervisorSupportMatrix). You’re likely familiar with VMware ESX, VMware ESXi,
and Microsoft Hyper-V, which at the current time are the dominant hypervisors in
enterprise virtualization space. Because of licensing restrictions, cost, and other fac-
tors, there has been less OpenStack community support for commercial hypervisors
than for open source alternatives.
Figure 1.5 shows OpenStack managing resources that are virtualized by a hypervi-
sor on physical hardware. OpenStack coordinates the management of many hypervisor
resources and virtual machines in an OpenStack cluster.
The majority of people and organizations, regardless of deployment size, use either
XenServer or KVM hypervisors, which currently support the widest range of features.
XenServer, a Citrix product, is technically an open source hypervisor, but commercial
support is available through Citrix. KVM is included as part of the Linux kernel, so
many Linux distribution maintainers provide commercial KVM support, including
Red Hat, Ubuntu, and SUSE, to name a few.
ARE YOU CERTIFIED? As large providers started designing public IaaS offer-
ings based on the OpenStack framework, they soon realized that their cus-
tomers would require Microsoft certification for Windows hosts running
OpenStack services
OpenStack Dashboard
provides UI to services
OpenStack manages
the resources
Vendors provide
resources…
…used by virtual
machines
Compute
Vendor
hypervisor
Vendor storage
system
Storage
VM
compute
VM
volume
Vendor
network
Networking
VM
network
Figure 1.4 OpenStack resource management model
Licensed to tracy moore <nordick.an@gmail.com>
13
Relating OpenStack to the computational resources it controls
under their hypervisors. At the time, Citrix had gone through the Microsoft
certification process with XenServer and fulfilled those requirements. But
despite Citrix having a competing platform in the form of CloudStack, many
organizations used XenServer as their OpenStack hypervisor. Since that time
several Linux distribution providers have gone through the Microsoft certifi-
cation process and now fully support Windows guests on the KVM hypervisor,
including hypervisors controlled by OpenStack.
Throughout this book, the Kernel-based Virtual Machine (KVM) will be used. KVM
has been part of the Linux kernel since the 2.6.20 release in early 2007, and it’s fully
supported by OpenStack. KVM also provides paravirtualization, which must be either
supported natively by the operating system or added through the use of hypervisor-
specific drivers installed on the virtualized operating system image. The traditional
problem with open source hypervisors is that there’s a steep learning curve for
deploying and maintaining them, often requiring experience in system, network, and
application administration. In organizations lucky enough to have centrally sup-
ported virtualized resources, the resource request process must pass through the
organization’s network, systems, security, and financial elements in the provisioning
process. This typically leaves users with three choices:
 Self-support using community code—Using community support for community-
maintained software, you take responsibility for the design, development, and
operation of your deployment.
OpenStack
Compute
Manages the
hypervisor
Server
hardware
Virtual
hardware
Compute
VM
compute
CPU
Disk
RAM
Net
Figure 1.5 OpenStack manages
the hypervisor
Licensed to tracy moore <nordick.an@gmail.com>
14 CHAPTER 1 Introducing OpenStack
 Commercial support using community code—Using vendor support for community-
maintained software, you and/or the vendor are responsible for your deployment.
 Commercial support using a vendor branch of a community project—Using vendor-
provided support and software, you are typically responsible for operation and
vendor management in relation to your deployment.
Although several vendors support OpenStack and KVM commercially, many internal
clouds are built for workloads that don’t require commercial support or certifica-
tion, so OpenStack support of KVM without commercial support is a very popular
option. This book covers material that’s useful regardless of your deployment and
support path.
1.3.2 OpenStack and network services
OpenStack isn’t a virtual switch, but it does manage several physical and virtual net-
work devices and virtual overlay networks. Unlike the OpenStack control of hypervi-
sors, which is limited to the services provided by the hypervisor alone, OpenStack
directly provides network services like DHCP, routing, and so on. But much like hyper-
visor management, OpenStack is agnostic to the underlying vendor technology, which
could be a commercial or open source technology.
More importantly, a backend technology change like moving from one type of
network or vendor to another doesn’t necessitate client configuration changes. Given
the great deal of proprietary hardware, software, and user interfaces involved in net-
working, it’s often not trivial to switch from one vendor or technology to another.
With OpenStack, those interfaces are abstracted by the OpenStack API, as shown in
figure 1.6.
OpenStack can manage many types of network technology (mechanisms), includ-
ing those provided by Arista Networks, Cisco Nexus, Linux bridging, Open vSwitch
(OVS), and others. Throughout this book we use networking services provided by
Linux containers
Recently, there has been great interest in the use of operating-system-level virtualiza-
tion in place of infrastructure-level visualization for providing OpenStack instances.
Operating-system-level virtualization provides the ability to run multiple isolated OS
instances (containers) on a single server. But it isn’t a hypervisor technology—it oper-
ates on the system level where containers share the same kernel. You can think of
containers as providing virtual separation where needed, without the emulation over-
head of full virtualization.
The two most popular operating-system-level virtualization projects are Docker
(https://www.docker.com/) and Rocket (https://github.com/coreos/rkt). Although it
can be argued that containers are better suited for application runtime delivery than
OS-level instances, technologies based on containers will undoubtedly be widely
adopted for building clouds.
Licensed to tracy moore <nordick.an@gmail.com>
15
Relating OpenStack to the computational resources it controls
OpenStack and OVS. OVS is a common
switch choice for OpenStack that you can
easily obtain and replicate in your environ-
ment without specific hardware require-
ments. Along with the network
mechanisms, there are several network
types (VLANs, tunnels, and so on) sup-
ported by OpenStack, and those are cov-
ered in chapter 6.
1.3.3 OpenStack and storage
OpenStack isn’t a storage array, at least not
in the way you’d generally think of storage.
OpenStack doesn’t physically provide the
storage used by virtual machines.
If you’ve ever used a file share (NFS,
CIFS, and the like), you were using “file-
based” storage. This type of storage is easy
for humans to navigate and computers to
access, but it’s generally an abstraction of
another type of storage: block storage. You
can think of operating systems or filesys-
tems as being the primary users of block storage.
There’s also another type of storage that people in systems roles might not be
familiar with: object-based storage. This type of storage is generally accessed through
software APIs (for example, GET /obj=xxx). Object-based storage is a further abstrac-
tion of file and block storage, but without the restrictions of either. Object-based stor-
age can be easily distributed and replicated between many participating nodes. Unlike
block storage, which must quickly be accessed by a VM, distributed object storage is
much more latent and wouldn’t be used for things like VM volumes (which are actively
attached to an instance). It’s common to use object storage to store backups of vol-
umes and images (containing operating systems) to be applied to volumes when
they’re created.
Let’s first address how OpenStack works with block storage, and then we’ll talk
about object storage.
BLOCK STORAGE
OpenStack doesn’t currently manage file-based storage for end users. In figure 1.7,
you can see that OpenStack manages block (VM) storage much like it manages the
hypervisor and network.
This figure shows a complete picture from a basic VM resource-management pro-
spective. OpenStack can manage many vendor-provided storage solutions, including
solutions from Ceph, Dell, EMC, HP, IBM, NetApp, and others. As it does with hypervisor
OpenStack
Vendor
network
VM
network
VM
compute
Networking
Server
hardware
Figure 1.6 OpenStack manages the network
Licensed to tracy moore <nordick.an@gmail.com>
16 CHAPTER 1 Introducing OpenStack
and network components, OpenStack pro-
vides you with the flexibility to switch
between storage vendors and technologies
without changing the client configuration.
OBJECT STORAGE
Although OpenStack isn’t a storage array
for block storage (used to boot VMs), it
does have the native ability to provide
object storage. Other than physical hard-
ware running a supported version of
Linux, no other software is required for
OpenStack to provide a distributed object
storage cluster. This type of storage can be
used to store volume backups, and it’s also
common to use object storage for large
amounts of data that can be easily isolated
into binary objects. Figure 1.8 shows a
basic object server deployment that’s all
contained in the OpenStack environment.
Vendor
network
VM
network
VM
compute
Vendor storage
system
VM
volume
Server
hardware
OpenStack
Storage
Networking
Figure 1.7 OpenStack manages
block (VM) storage.
OpenStack
Proxy
node
Storage
node
Storage
node
Storage
node
Figure 1.8 OpenStack provides object-based
(API) storage.
Licensed to tracy moore <nordick.an@gmail.com>
17
Relating OpenStack to the computational resources it controls
Object storage doesn’t have to be in a single location. In fact, nodes (proxy and stor-
age) could be in several locations that replicate between each other.
The traditional use case for object storage is to store data that will be accessed by
an application, such as a document or file that will be used by an application on a
user’s behalf. There are several use cases for object storage in OpenStack environ-
ments. For example, it’s common to use this type of storage as a repository for VM
images. This isn’t to say that the VMs use this storage directly, but they’re provisioned
from data maintained in this system. This is reasonable because the provisioning pro-
cess won’t need low-latency access to random data. Object storage might also be used
to back up a snapshot of an existing VM for a long-term backup.
1.3.4 OpenStack and cloud terminology
OpenStack is a framework for cloud construction and is used to construct both public
and private clouds. Aside from the public and private cloud definitions, there are the
“as-a-service” cloud destinations. Which as-a-service is OpenStack? OpenStack can be
used as the foundation for several as-a-service clouds.
Suppose you’re interested in providing your enterprise with an Amazon-like expe-
rience for acquiring VMs and storage resources. This would be considered infrastruc-
ture as a service (IaaS). In this context, users are given direct access to provision
individual virtual machines, which users directly manage. Although the physical com-
ponents that make up the cloud are hidden from the user, virtual components are
directly accessible. The responsibility of OpenStack is to control resources that pro-
vide end users with the infrastructure.
Now suppose your cloud users are not given direct access to IaaS features and are
only given access to application orchestration functions provided or supported by
OpenStack. In this context, OpenStack could be considered the back end of a platform
as a service (PaaS) offering. The underlying physical and virtual infrastructure compo-
nents are hidden from the user. Consider the case where a development team
requires an isolated application landscape (application-layer deployment on IaaS) for
software testing. Through cloud orchestration, OpenStack could be used on the back
end in the deployment of the described testing platform.
Now suppose your company provides a service to its customers using either IaaS or
PaaS provided by OpenStack. In this context, OpenStack serves as the back end com-
ponent of software as a service (SaaS). As you can see, OpenStack can be used as a fun-
damental component in many layers of cloud computing.
Now that you have a better idea of what OpenStack does and how it does it, it’s
time to introduce you to the components of OpenStack that do the work. The next
section introduces the individual components of OpenStack and their role in the
overall framework.
Licensed to tracy moore <nordick.an@gmail.com>
18 CHAPTER 1 Introducing OpenStack
1.4 Introducing OpenStack components
I introduced the basic capabilities of OpenStack in section 1.1; in this section we’ll
look at the fundamental components that make up the framework.
Table 1.1 lists several of OpenStack’s components or core projects. There are many
more projects in various stages of development, but these are the foundational com-
ponents of OpenStack. The most up-to-date roadmap of OpenStack’s services can be
found on the OpenStack Roadmap page: www.openstack.org/software/roadmap/.
Now that you know a bit about what OpenStack is and does, let’s take a quick look at
where it came from.
1.5 History of OpenStack
On his first day in office in 2009, US President Barack Obama signed a memorandum
to all federal agencies directing them to break down barriers to transparency, partici-
pation, and collaboration between the federal government and the people it serves.
The memorandum became known as the Open Government Directive.
One hundred and twenty days after the directive was issued, NASA announced its
Open Government framework, which outlined the sharing of a tool called Nebula.
Nebula was developed to speed the delivery of IaaS resources to NASA scientists and
researchers. At the same time, the cloud computing provider Rackspace announced it
would open-source its object storage platform, Swift.
Table 1.1 Core projects
Project Code name Description
Compute Nova Manages VM resources, including CPU, memory, disk, and net-
work interfaces.
Networking Neutron Provides resources used by the VM network interface, including
IP addressing, routing, and software-defined networking (SDN).
Object Storage Swift Provides object-level storage, accessible via a RESTful API.
Block Storage Cinder Provides block-level (traditional disk) storage to VMs.
Identity Keystone Manages role-based access control (RBAC) for OpenStack
components. Provides authorization services.
Image Service Glance Manages VM disk images. Provides image delivery to VMs and
snapshot (backup) services.
Dashboard Horizon Provides a web-based GUI for working with OpenStack.
Telemetry Ceilometer Provides collection for metering and monitoring OpenStack
components.
Orchestration Heat Provides template-based cloud application orchestration for
OpenStack environments.
Licensed to tracy moore <nordick.an@gmail.com>
19
Summary
In July 2010, Rackspace and NASA, along with 25 other companies, launched the
OpenStack project. Over the past five years there have been ten releases. OpenStack
releases are shown in table 1.2.
OpenStack has maintained a six-month release cycle, which is coordinated with Open-
Stack Summits. The project has grown from 25 participating companies to over 200,
with thousands of participating users in over 130 countries.
1.6 Summary
 IaaS clouds are collections of commodity resources, which are coordinated
through management frameworks.
 OpenStack is a management framework that provides end-user self-service coor-
dination of IaaS and application orchestration (PaaS/SaaS).
 OpenStack controls existing commercial and community technologies like
hypervisors, storage systems, and networking hardware and software.
 OpenStack is composed of a collection of projects, each with a specific purpose.
 Each OpenStack project has a related code name.
Table 1.2 OpenStack releases
Name Date Core components
Austin October 2010 Nova, Swift
Bexar February 2011 Nova, Glance, Swift
Cactus April 2011 Nova, Glance, Swift
Diablo September 2011 Nova, Glance, Swift
Essex April 2012 Nova, Glance, Swift, Horizon, Keystone
Folsom September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Grizzly April 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Havana October 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder,
Ceilometer, Heat
Icehouse April 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder,
Ceilometer, Heat, Trove
Juno October 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder,
Ceilometer, Heat, Trove, Sahara
Kilo April 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder,
Ceilometer, Heat, Trove, Sahara, Ironic
Liberty October 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder,
Ceilometer, Heat, Marconi, Trove, Sahara, Ironic, Searchlight,
Designate, Zaqar, DBaaS, Barbican, Manila
Licensed to tracy moore <nordick.an@gmail.com>
20
Taking an OpenStack
test-drive
In chapter 1 you learned many of the benefits of OpenStack and how OpenStack
fits into the cloud ecosystem. But now that you have an idea of what OpenStack can
do for you, you may wonder what it looks like. What will the experience be like for
your users? This chapter lets you test-drive OpenStack through the use of DevStack,
a rapid OpenStack deployment tool, and answers these questions.
DevStack lets you interact with OpenStack on a small scale that’s representative
of a much larger deployment. You can quickly deploy or “stack” (as fellow Open-
Stackers call it) components and evaluate them for production use cases. DevStack
This chapter covers
 Using DevStack to take a test-drive with OpenStack
 Preparing an environment for DevStack
 Configuring and deploying DevStack
 Interacting with the OpenStack Dashboard
 Understanding the OpenStack tenant (project) model
 Creating virtual machines with OpenStack
Licensed to tracy moore <nordick.an@gmail.com>
21
helps you deploy the same OpenStack components found in large multiserver envi-
ronments on a single server, as shown in figure 2.1. Without knowing a great deal
about OpenStack and without the need for a bunch of hardware, you can use
DevStack to get the OpenStack experience, just on a smaller scale.
The figure shows several components, including Cinder, Nova, and Neutron,
deployed on an arbitrary number of nodes. OpenStack uses codenames for its compo-
nents, so the codename Cinder refers to storage components, Nova to compute
components, and Neutron to network components. At this point it’s not important that
you know the OpenStack components, the codenames, or what they do; this is
explained in detail in chapter 4. What you need to know now is that OpenStack is
made up of several core components that can be distributed among nodes (servers)
based on the intended design. Information related to OpenStack design is also cov-
ered in chapter 9.
OpenStack services
Networking
Shared services
Storage
Compute
Nova
Neutron Cinder
Controller
(server 0)
Neutron
(server 2)
VM
Cinder
(server 3)
Nova
(server 1)
Figure 2.1 Multiserver OpenStack
Licensed to tracy moore <nordick.an@gmail.com>
22 CHAPTER 2 Taking an OpenStack test-drive
2.1 What is DevStack?
DevStack was created to make the job of deploying OpenStack in test and develop-
ment environments quicker, easier, and more understandable, but the ease with
which it allows users to deploy OpenStack makes it a natural starting point for learn-
ing the framework. DevStack is a collection of documented Bash (command-line inter-
preter) shell scripts that are used to prepare an environment for, configure, and
deploy OpenStack. The choice of using a shell-scripting language for DevStack was
deliberate. The code is intended to be read by humans and computers alike, and it’s
used as a source of documentation by developers. Developers of OpenStack compo-
nents can document dependencies outside of raw code segments, and users can
understand how these dependencies must be provided in a working system.
Despite the daunting size and complexity of the OpenStack framework, DevStack
makes things look easy. Figure 2.2 may look like an oversimplification, but it’s an accu-
rate illustration of the function of DevStack.
Users with very little experience with virtualization, storage, networking, or—
frankly—Linux, can quickly get a single-server OpenStack environment working. In
many ways, DevStack does for OpenStack what OpenStack can do for infrastructure
(as you learned in chapter 1): it simplifies and abstracts it.
But I don’t want to give the impression that DevStack will be used for deploying
OpenStack in production. In fact, in OpenStack circles it’s common to hear the
phrase, “Friends don’t let friends run DevStack in production.” In chapters 5 through
8, we’ll explore manual deployments of OpenStack. This manual exercise will allow
DevStack server
(fresh Linux install)
Execute
DevStack
Before:
Install OpenStack software
and related dependencies
DevStack server
(OpenStack deployment)
After:
Configure OpenStack components
to work with each other
Figure 2.2 DevStack will install and configure OpenStack on a single node automatically.
Licensed to tracy moore <nordick.an@gmail.com>
23
Deploying DevStack
you to learn about the configuration options and components of OpenStack and
develop your ability to troubleshoot OpenStack deployments. In chapter 11, we’ll
cover an automated deployment of OpenStack that’s intended to be used in a produc-
tion environment.
In this chapter, you’ll prepare an environment and deploy OpenStack using
DevStack. You don’t need to know much about Linux, storage, or networking to
deploy a working single-server OpenStack environment. Using this deployment, we’ll
walk through ways you can interact with OpenStack, and this will give you some famil-
iarity with both the components and the overall system. Then we’ll discuss the Open-
Stack tenant model, which is how OpenStack logically separates, controls, and assigns
resources to projects. In OpenStack terminology, tenant and project can be used inter-
changeably. Finally, you’ll take what you’ve learned and create a virtual machine in a
virtualization environment.
Let’s get started stacking!
2.2 Deploying DevStack
As the name suggests, DevStack is a development tool, and its related OpenStack code
is under constant development. The support packages used by DevStack to deploy
OpenStack code are also under development. When DevStack works, it works beauti-
fully, but when it fails, things get ugly, and first-time users get very frustrated. Although
a large part of this chapter is dedicated to deploying OpenStack using DevStack,
there’s no way of knowing from day to day if a set of instructions will work with the lat-
est versions of DevStack and OpenStack. The same DevStack instructions might fail on
Monday but work on Friday.
To reduce reader frustration, a companion virtual machine (VM) that contains a
DevStack-deployed OpenStack instance is provided for this book. This VM can be used
to test-drive OpenStack with limited hardware resources and effort. In the event that
DevStack doesn’t work for you, simply make use of the companion VM. You can always
try DevStack again when you have a better grasp of the overall OpenStack framework.
If you end up using the companion VM, follow the instructions found in the sidebar
entitled “Instructions for using the companion VM,” and then skip to section 2.3.
What version of OpenStack does the companion VM use?
The companion VM, along with examples in the first and second parts of this book,
use the Icehouse release of OpenStack. Although Icehouse was already several revi-
sions old at the time of writing, it was still the most widely deployed and arguably
stable version of OpenStack. In addition, there are several Linux distributions and
OpenStack production deployment tools that maintain the Icehouse release in long-
term support. The third part of the book covers production deployment tools, which
can be used to deploy several versions of OpenStack, including Icehouse or the
most recent.
Licensed to tracy moore <nordick.an@gmail.com>
24 CHAPTER 2 Taking an OpenStack test-drive
ARE YOU A VAGRANT USER? Although covering the use of Vagrant is outside the
scope of this book, there are several community projects that use Vagrant to
deploy DevStack on VirtualBox (such as devstack-vagrant at https://github.com/
openstack-dev/devstack-vagrant and vagrant_devstack at https://github.com/
bcwaldon/vagrant_devstack).
It’s recommended that you attempt to deploy OpenStack using DevStack, as outlined
in the following steps. This process will provide you with quick access to the framework,
while you build a foundational understanding of OpenStack components. Although
DevStack can be used to get started quickly, the documented scripts hide nothing from
you, and each OpenStack component is configurable based on your needs. It’s even
possible to use DevStack to deploy a multiserver OpenStack environment.
Instructions for using the companion VM
Follow these steps:
1 Go to http://manning.com/bumgardner/ and download the VM image under
Links.
2 Make sure you have VirtualBox installed (this VM image was tested with ver-
sion 4.3.30).
3 Unzip the file devstack_icehouse_openstackinaction.
4 Double click the dev_stack_icehouse_openstackinaction.vbox file (or use
command-line arguments—see the VirtualBox docs for details).
5 VirtualBox should now be launched, and you should see the
devstack_icehouse_openstackinaction VM.
6 Start the devstack_icehouse_openstackinaction VM.
7 In the VM configuration, several ports are forwarded from the VM to your local
host (IP=127.0.0.1). These ports include 2222 for SSH access to the VM
and 8080 for access to the OpenStack Dashboard.
8 Once the VM is started, log in to the VM using the sysop ID and password
u$osuser01 (for example, ssh -u sysop@127.0.0.1 -p 2222).
9 Once on the console, switch to the stack user: sudo -i -u stack.
10 Execute the rejoin script: sudo /opt/devstack/rejoin-stack.sh.
11 You’ll now see screens related to the output of OpenStack components. To
select a specific screen, hold and release Control-+, and then press " (double-
quotes). You’ll be presented with a list of screens.
Here are a couple of tips for accessing OpenStack:
 If you want to access the VM for working with the OpenStack CLI, use the
instructions found in section 3.1, keeping in mind that the internal address of
the OpenStack VM instance is 10.0.2.32.
 If you want to access the VM for working with the Dashboard, access the
URL http://127.0.0.1:8080 with the username admin and the password
devstack.
Licensed to tracy moore <nordick.an@gmail.com>
25
Deploying DevStack
In this chapter, we’ll focus on deploying all components to a single server. This
approach reduces the configuration problems you might experience before you fully
understand the OpenStack component distribution model, which is discussed in
chapter 3. Once you understand the interaction of components on a single server,
deploying a multiserver configuration is far more understandable. In part 2 of this
book, we’ll discuss manual deployments, and in part 3 we’ll cover automated deploy-
ments of multiserver OpenStack configurations.
To get started, you’ll need a single physical or virtual server running a supported
distribution of Linux.
2.2.1 Creating the server
For your DevStack deployment, you’ll want to start with a fresh install of Linux. That
will ensure that dependency conflicts are avoided altogether. I recommend using
Ubuntu 14.04 (Trusty Tahr), which is one of the most widely documented and tested
Linux distributions for working with OpenStack.
The examples presented in this chapter are based on Ubuntu 14.04, but users with
experience in other distributions should be able to adapt the examples. Scripts and
configuration files for this and other chapters can be found in the source code for this
book: https://github.com/codybum/OpenStackInAction.
I recommend using physical hardware for the deployment if possible. Although it’s
possible to run OpenStack “nested” in a virtual environment, the VMs deployed in this
nested OpenStack environment are notably slow. In this context, I define a VM as vir-
tual hardware running a full operating system. I say that OpenStack (the hypervisor)
is nested if you’re trying to use a VM to virtualize another VM. If no hardware is avail-
able, the deployment process will be the same, with the exception of the noted perfor-
mance issues. A walk-through guide for a basic install of Ubuntu 14.04 can be found
in the appendix.
LINUX DISTRIBUTIONS Although Ubuntu is widely used, Fedora and CentOS/
RHEL are also well documented. Additional Linux flavors such as OpenSUSE
and Debian provide OpenStack packages and are known to work.
OpenStack on VMs (nested virtualization)
Hypervisors, or virtual machine monitors (VMMs), live between physical hardware and
virtual machines. The hypervisor emulates the operations of the physical hardware,
letting the operating system think that it has exclusive access to the underlying sys-
tem. Hypervisors can take advantage of CPU virtualization extensions, allowing spe-
cific operations that would normally be emulated in software to be offloaded to the
CPU directly. This greatly increases performance.
OpenStack manages the hypervisor to provide virtual infrastructure. When the hyper-
visor managed by OpenStack is run on a VM, CPU visualization extensions are gen-
erally not available. All instructions that would normally be offloaded to hardware are
emulated (via QEMU, an open source hypervisor) in software. Pure software emula-
tion of hardware is extremely slow and shouldn’t be used in practice.
Licensed to tracy moore <nordick.an@gmail.com>
26 CHAPTER 2 Taking an OpenStack test-drive
2.2.2 Preparing the server environment
As you might have gathered from figure 2.2, DevStack will install and configure the
entire OpenStack suite for you. The process of deploying the OpenStack framework,
regardless of the method, is called stacking. The stacking process will retrieve and con-
figure OpenStack software and related package dependencies from online reposito-
ries. OpenStack dependencies will be satisfied by the Advanced Packaging Tool
(APT), which along with packages is provided by the Linux distribution.
You’ll use the sudo command to execute commands with the security privileges of the
root user. According to Wikipedia, the name sudo is a concatenation of “su” (substitute
user) and “do.” Sudo privileges give the user the ability to execute a command with
the security privileges of another user. The other user is typically the root user, so sudo
privileges are exactly what you need. The user you created when you installed your
operating system would have the appropriate privileges.
In the following examples, the sysop user will be used as the normal user with sudo
privileges. The first time you use the sudo command, you’ll be prompted again for
your password, but don’t be confused: this is the same password you used for your nor-
mal account. Subsequent sudo commands executed within a timeout period (which,
for Ubuntu 14.04, is 15 minutes) won’t prompt for a password.
The APT database used to determine package availability and dependencies is
maintained locally, so by the time you install your Linux distribution, it’s already out
of date. Your first step in preparing the environment is to update your APT package
information from online sources. From a shell prompt, update your APT packages as
shown in the following listing. This process won’t update any packages, but any pack-
age installed after the update will be current.
sysop@devstack:~$ sudo apt-get -y update
[sudo] password for sysop:
Hit http://us.archive.ubuntu.com precise Release.gpg
...
Fetched 3,933 kB in 1s (2,143 kB/s)
Reading package lists... Done
Listing 2.1 Updating packages
What user are you running as?
Right now, you should be running as a user with sudo privileges, but not as the root
user. There are various permissions issues related to using the root user with a
default Ubuntu 14.04 install and DevStack, so it shouldn’t be used.
Once the environment is prepared, you can create and then switch to the stack user
for the deployment of DevStack. Specific user types used in this chapter will be
explained later in this section.
Updates local
package
information
Licensed to tracy moore <nordick.an@gmail.com>
27
Deploying DevStack
Your local package database is now up to date, as the first line of code synchronizes
the local package information with the newest online sources. After the update, it’s
recommended that you upgrade packages with the following command.
sudo apt-get -y upgrade
This upgrade step isn’t necessary from the DevStack component standpoint, but a
DevStack dependency could depend on a kernel update, which would require an
update and reboot. If you proceed with the upgrade step, it’s critical you reboot after
the upgrade.
DevStack doesn’t use the APT system to install OpenStack components, despite the
packages being available in its repository. This choice is understandable given the
need for component flexibility in a development and testing system. For example, you
might run several OpenStack components from a stable release, along with a few oth-
ers from a development branch. This level of modularity isn’t generally possible with
package management systems.
In place of using a package management system provided by the Linux distribu-
tion, DevStack retrieves OpenStack components directly from online OpenStack
repositories. Git, a source revision control utility, is used to access OpenStack reposito-
ries, so your next step is to install the git client, as shown in the next listing. The client
will be used both to retrieve the DevStack scripts and later by DevStack to retrieve
OpenStack components.
sysop@devstack:~$ sudo apt-get -y install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
git-man liberror-perl
Suggested packages:
git-daemon-run git-daemon-sysvinit git-doc git-el git-arch
git-cvs git-svn git-email git-gui gitk gitweb
The following NEW packages will be installed:
git git-man liberror-perl
0 upgraded, 3 newly installed, 0 to remove and 112 not upgraded.
...
Unpacking git (from .../git_1%3a1.7.9.5-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up liberror-perl (0.17-1) ...
Setting up git-man (1:1.7.9.5-1) ...
Setting up git (1:1.7.9.5-1) ...
Now that the git client is installed, you can proceed with retrieving the DevStack
scripts.
Listing 2.2 Upgrading packages
Listing 2.3 Installing git
Installing git from the
package management
system
Licensed to tracy moore <nordick.an@gmail.com>
Random documents with unrelated
content Scribd suggests to you:
MY BLANKET-ROLL
A warm old friend is my blanket-roll
We've been pals for many a year;
And when I look back at the days gone by
I almost drop a tear.
A warmer friend I never had
Than you! old roll of a bed,
And after I've sung all your praises I can,
Not half enough has been said.
You were a friend in summer heat,
A friend in winter's snow;
And whenever the wanderlust seized me,
You were always ready to go.
From the sunny South to the Hudson Bay
Or the land of the Western Sea;
Then to Alaska's frozen shores
You have traveled along with me.
Now you're getting worn, and your tarp is torn,
You have stood too much hard weather;
But I am the same, and it seems a shame,
Yet,—we are growing old together!
You're a good old friend, I will say again,
And you, I will not discard.
And as long as the Lord will let me roam
I will keep you for my pard.
But some day I'll cross to the other side,
Where we all some day must go;
Where there is no wind, or no more rain,
And unheard of is the snow;
And when I take that last long trip
To that eternal goal;
My dying wish is to snuggle up
In you,—my blanket-roll.
THE CHINOOK WIND
There's a soft warm breeze upon the air,
'Tis moaning soft and low,
'Tis cold and chill upon the hill,
Yet it's melting all the snow.
The Indians all tell us,
That many moons gone by
Right here within the mountains,
The North wind it did cry.
The Chinook wind made answer,
And said, "I'm not afraid,"
And then there raged a battle,
For a beautiful Indian Maid.
The Chinook wind was the victor,
The North wind went away,
But the Maiden fair had died of despair,
And deep in her grave she lay.
So every year his voice we hear,
Calling so soft and sweet,
Searching the grave of the one he would save,
Melting the snow at our feet.
'Tis the lover's wind, so the Indians say,
And his heart is ever sad,
But they welcome his coming, every one,
For the North wind is gone and they're glad.
THE PALE HORSE
When I saddle the pale horse, to take my last ride,
To the home ranch, over the Great Divide,
Will I find the trail blazed all the way,
A place to camp, at the close of day?
Will the trail be smooth, and the weather fair?
(For no one has ever come back from there)
But the good book says, if we shoot square,
"Have no fear of the trails over there!"
An unseen hand guides the pale horse straight,
O'er the summit height, to the home ranch gate,
Where we all must meet the Boss Supreme,
And all will be one pleasant dream.
No herding of dogies on frost night,
Or wild stampede in the morning's light.
No cinching of saddles, or shipping of steers.
No sorrow or trouble or bitter tears.
But the sun will shine, and cool breezes blow,
Over a range ever free from snow;
And for those who lived as He who died
To save us riders—that Great Divide
Will be only a foothill, so very low;
That on its summit sweet flowers do grow,
And the trail itself will be smooth all the way,
With a place to camp at the close of day.
When at last I reach that Home Ranch gate,
Peter will say, "You sure shot straight,"
And the gate will open for me, I know,
Saying, "Pull off your saddle, and let him go!"
THE SNOWSTORM
The snow has started falling,
'Tis falling o'er mountain and plain,
The trees bend under their burden,
Shake free, and are draped again.
While I sit here safe in my cabin
Where all is cozy and warm,
I can peer into the future,
And view the woods after the storm.
I can see the deer seeking the low-lands,
In search of their daily food,
I can see the hunter's eyes glisten,
For he knows that the tracking is good.
The lion dogs leap in their kennels,
There is barking and wagging of tails,
The hunter examines his snow-shoes,
And dreams of "kills" and of trails.
The bear trails lead far up the mountain
Where the cliffs are rugged and steep,
And there is some cave in the ledges,
They're beginning their winter's sleep.
They will sleep till the wild geese awaken them,
As they take their Northern flight,
Then again they will seek the hill-sides
Where the sun shines clear and bright.
Now the wild geese honk as they leave us,
Followed close by wind-driven snow;
They are telling all of us trappers,
But, of course, all us trappers know
That whenever the wild geese go homing,
It is time that our traps are set;—
Snow, I have been waiting for you!
You are a welcome visitor—you bet.
SILENT VOICES OF THE NIGHT
When the shades of evening gather,
And night's curtain's dropping low,
And the stars they dot the heavens
With their candles, all aglow;—
Then to me there come the voices
On each cool and fragrant breeze,
Stealing in from every quarter,
Creeping through among the trees.
And these voices, ever silent,
Scarcely heard, their steps so light;
Yet, to me are ever welcome;
Silent voices of the night.
When within the noisy city,
With its surging, busy crowd,
The voices keep a-calling,
And they seem to call so loud.
I can hear them pleading, coaxing,
And to me they call so plain,
And they have the self-same message,
"Yes, we want you back again."
Voices of my little camp-fire,
Voices of the woods and hills,
Voices from the snow-capped mountains,
Voices from the crystal-rills;
And I ever hear them calling,
'Till I feel like taking flight,
Back to where the voices whisper,—
Silent voices of the night.
Oh! those voices, how I love them!
Whether near or far away,
And they ask me not to leave them,
"Won't you please come back and stay?"
"Come and we will try to please you,"
Calling from their wildwood home,
"Yes, my loved ones, I am coming,
And from you no more will roam."
THE PACK TRAIN
Did you hear that far off tinkle
In the canyon far below?
Listen! can't you hear it?
It is ringing very slow.
'Tis the bell upon the lead-mare,
As she's winding up the trail,
Guiding all the other horses,
Hitched to one another's tail.
They are headed for the camps,
Where they've lately made a find;
And the pack trains are all busy
Carrying grubstake to the mine.
Every horse is heavy loaded;
Ask me how that I can tell?
That is easy for the packer,
'Tis the tinkle of the bell.
Away back in the eighties
When they made the Wild Horse strike;—
We were in there with a pack train,
Me and old Pack Saddle Mike.
Mike could throw more knots and hitches
Than an expert sailor's crew,
Was a wizard with a lash-rope,
Knew what every horse could do.
Well, we packed for them there miners,
'Till the weather got so cold
It would freeze the lash-ropes solid,
And 'twas hard to make them hold;
It was hard to cinch a saddle,
Harder still to cinch a pack,
But the cold we never heeded;
We were making piles of "jack."
We left camp one frosty morning,
Started for our winter range;
Two hard days to reach the summit,
Then the weather took a change,
Hurled the snow into our faces,
Cut our eyes like broken glass,
And we had to stop the horses,
While the snow fell thick and fast.
For two days we held the horses
On that mountain in the snow,
While the mercury was flirting
Close to forty or more below.
Well, we had to shoot the horses,
Better far that, than let them die,
Made us snow-shoes from the saddles
And climbed o'er the summit high.
When at last we reached the ranches,
Almost dead from wind and snow;
Mike took down with the pneumonia,
And the next day had to go.
While he lay upon his pillow,
All his body racked with pain,
He'd keep talking of his horses,
Calling each one by its name.
Then he called me to his bedside,
And he said, "I'm going to ride,
And I know I'll find the horses
Over on the other side."
MOONLIGHT
When the moon has climbed the heavens,
And the sun has gone to rest,
And the evening shadows gather,
That's the time I love the best.
Seated by our little camp-fire,
In the forest dark and tall,
With the silence all around us,
Save the roar of water-fall—
Then the deer steal in the meadows,
Velvet shod, so still are they,
While among the waving grass-tops
Spotted fawns are there at play.
Then to me there comes a memory,
Of the days, now past and gone,
When my life was just in blossom,
I was young and life was dawn.
When I roamed the virgin forest,
Just as free as birds that fly,
With the moonbeams for a candle,
And my cover was the sky.
Still the moon shines just as brightly,
And the stars are just as clear,
But I see I'm growing older
Like the ending of the year.
Frost is gathering on my temple,
Soon my hair will be like snow,
But His will we all must follow
And some day we all must go.
Yet, I'm ever, ever hoping
That upon those shores of gold,
We will have the self-same moonlight
As we had in the days of old.
MY DREAM
I dreamed of a beautiful forest
That lies back in the hills,
With lakes of crystal clearness
And such noisy mountain rills.
Where there are no trails of trappers,
Where the game unchallenged roam—
Could I only find that forest,
That's the place I'd call my home.
There were beaver, lynx and marten,
Elk so stately, and so tall,
And such sunlit open hillsides,
And such lovely water-fall.
There was deep grass in the meadows,
There were breezes, sweet and cool,
There were trout, so lazy, swimming
In each clear and crystal pool.
There the birds were singing sweetly
Their sweet, yet plaintive song,
That told me of God's great wonders
There among their happy throng.
There were deer-trails, without number,
Bear-tracks everywhere were seen,
And the squirrels were never silent
In those forests dark and green.
There the wild ducks they were nesting,
There the loon called on the pond,
There the snow-caps rose to sky-line
In the distance far beyond.
Then I was suddenly wakened,
Grabbed by the shoulder so hard,
"Roll out now, breakfast is ready!"
It was Jack, my "bunkie" and "pard."
THE OLD FRYING PAN
You may talk of your broilers, both single and
double,
Your roasters and toasters, they're all lots of trouble;
But when out in the hills, just find if you can,
Any kind of a dish like the old frying pan.
Over a campfire you don't need a stove,
Out in the hills, the place we all love,
Such hotcakes they never were tasted by man,
With many the thanks to the old frying pan.
When the trout are all fried to a rich golden brown,
I know old epicures would look, with a frown
At the meal set before me; dispute it who can,
With naught for a plate but the old frying pan.
With the venison cooked, the potatoes all fried,
Bannocks like bed-quilts, with coffee beside,
You could eat till you busted, dispute it who can;
Was dish e'er invented like the old frying pan?
Many a miner, in the good days of old,
Way back in the foothills a-searching for gold
Deep in some creek-bed, for the rich yellow sand,
Has panned out a grub-stake with the old frying
pan.
There's been cattle rustlers, when in a great hurry
Used no other iron, but why should they worry,
For many and many and many the brand,
That has been blotched out with an old frying pan.
So your praises I'll shout, both far, wide and high,
That you're the best dish, till the day that I die;
Why, there's many a woman "cleaned up" on her
man
With no other club but the old frying pan.
THE RAINY DAY
The hills are smothered in a fog,
The sky is somber-grey,
The rain is coming in a mist,
A cheerless rainy day.
To me the trees are weeping,
With their branches drooping low,
Their tears are steady falling,
With heavy drops, yet slow.
The birds they all are silent,
And not one sweet silvery note,
Re-echoes through the forest,
From our feathered songster's throat.
Not one thing to break the silence,
Save the rain-drops as they fall,
As I watch the clouds roll onward,
Or climb the mountain wall.
And somehow I feel so happy,
Though the world seems full of pain,
So I let my gaze go farther,
When the sun will shine again.
The trees and flowers and grasses,
They will all the fresher seem,
And the laughter will be louder
From the rippling mountain stream.
The birds will sing far sweeter
Than they did in days gone by,
The air will be the fresher,
And of bluer tint the sky.
We all do love the sunshine,
We love the moonlight, too,
We also love the twilight,
And the falling of the dew;
But I never growl or grumble,
Only this I wish to say;—
That this world would be a desert
Without you, oh! Rainy Day!
THE STREAMLET
Tell me little streamlet,
As you onward flow;
Why in such a hurry,
Whither do you go?
The stream slowed up a moment
Within the alder's shade;
"I go to join my brothers,
And of us are rivers made.
We water the hills and meadows,
We turn the mills' great wheel,
We carry logs to the mill-dam,
Where they're cut by teeth of steel.
We furnish power for the motor
That pulls the railroad train;
And after they have used our power,
It is given back again.
So you see we enjoy working,
That's why we laugh all day,
For when one's heart is in one's work,
Why! work is greatest play!
And growing broader and deeper,
We carry ships on our breasts,
'Till at last we reach the ocean,
And there we have time to rest."
ED ENDERS' GRAVE
When old Ed Enders first took ill,
'Twas first a fever and then a chill,
His respiration was very weak,
Throat so clogged he could scarcely speak.
The doctors prescribed all kinds of dope
And hotwater bottles, but had no hope.
Then old Bill Wallace and old Hank Lee,
And old Dad Lyons got on a spree;
And when half full old Bill did cry,
And says, "Old Ed is about to die.
I ain't no doctor, I can't shoot pills,
I've never prescribed for no one's ills
But I do believe we can pull Ed through,
If you all will help me;—I mean you two.
If old Ed dies, just stop and think,
He will never buy us another drink!
He has the money in that there claim,
If we let him die it will be a shame.
Old Ed is a feller no one can ride,
He will always take the other side.
If you say no, why he'll say 'yes'
Just to be contrary up to the last.
So now we'll try old Ed to save,—
A committee of three to pick his grave.
As we can't agree where to make his bed,
We will have to leave it to poor old Ed."
"It will work," says Dad, with a tear in his eye,
"And I for one am ready to try."
Then up spoke Hank, "This ain't no joke,
Fill up the glasses and then we'll smoke."
So the three went down to Old Ed's room,
Faces as solemn as any tomb.
Old Ed says, "Boys, I'm on my way!"
Bill says, "You'll never see the day,
And as we were idle, and time to save,
We've been picking a place to dig your grave.
Now Hank wants to plant you in the shade,
Where the trail climbs up that steepest grade,
For you hunted the shade when the sun was hot,
And the land is worthless in that there spot.
But Dad wants you laid on that sunny slope,
There's a hole all ready in that old stope.
You hunted the sun when the weather was cold,
And he wants you planted in that old hole.
But I says, 'Boys, it is my wish,
To plant him where he liked to fish;
For he always fished at the same old hole,
Too lazy to walk and carry his pole.'
Now Ed, we as a committee of three,
Will leave it to you, we can't agree."
Old Ed looked up from his bed of pain,
Looked at them over and over again.
What he said to them won't do to tell,
At least he said, "You can go to hell!
You won't find the likes wherever you roam,
Rake the hot place over with a fine-tooth comb.
Such a bunch as you,—right here I swear,
Pick what you damn please, I won't be there."
Now listen, dear folks, I am here to tell,
In just three days old Ed got well.
SPRINGTIME
When sun begins to melt the snow
And the birds commence to sing,
And the days are getting longer,
Then we know 'tis surely spring.
It is then you get a fever,
But your temp'ture does not raise,
It's a kind of lazy feeling
On those balmy warm spring days.
And it starts your mind to working,
While your thoughts commence to stray,
To the hills and lakes and rivers,
And green woodlands far away.
And it makes you feel so drowsy
That you long to go to sleep,
Out beneath some tall green pine tree,
Where the shadows cool and deep
Just seem to be a-calling,
While the stream beneath the hill
Is chuckling with glad laughter,
And I seem to hear it still.
'Tis then memory breaks its halter
And stampedes and starts to go,
Till it stops in childhood's pasture
In the days of long ago;
Where the birds were all a-singing,
Songs so rare and pure and sweet,
Squirrel's chatter in the tree-tops,—
Flowers blooming at your feet.
Then the city seems a prison,
While brick walls like prison bars,
Seem to reach clear up to heaven,
Till they mingle with the stars.
Still I do not call a doctor,
For he cannot ease, I know,
Any longings for the wildwood
Of the days of long ago.
THE CALL OF NATURE
My traps are getting rusty
Here upon my cabin wall;
The leaves are turning golden,
'Tis already early fall.
My snow-shoes need repairing,
And so does my canoe;
My dogs are begging, coaxing,
And there's just one thing to do.
I'll have to quit this cruising,
And a-looking over land,
And lay aside my compass,
They can get another man.
For a section-line can't hold me,
I despise a "bearing" tree,
When I hear the wild geese honking,
And I know they're calling me.
I'll go back into the mountains,
Back of Uncle Sam's survey,
Where the only line's a trap-line,
And I'm going there to stay;
Where the only trails are game-trails,
Where the moose unchallenged roam,
There I'll build for me a cabin
And I'll call that cabin "home."
In the wildest, greenest forest,
That no man has come to spoil,
With his sawmills and his railroads,
And his many slaves of toil—
Where the streams are not polluted,
Stopped by dams of mine or mill,
Where everything is Nature's
And the rush of life is still.
So I'll send my resignation,
And I know the Boss will say,
"Won't you stay until the winter,
And of course, we'll raise your pay."
But no salary can hold me,
I have heard that line before;—
So here's good-bye to cruising
From today for evermore.
MY REQUEST
When I leave this old dreary world
To cross to the Great Unknown;
Don't bury me in a costly tomb
Or raise a shaft of stone—
But lay me on some hill-side,
Mid the forest that I love;
Where the wild flowers bloom around me
And the eagle soars above:
With an ancient ledge above me,
One that is all moss-grown;
These words inscribed upon it,
"He is one of Nature's own.
One who loved the forest,
One who loved the hills,
Although his soul has taken flight,
His foot-steps echo still."
MEMORY'S CAMP-FIRE
Come with me to the forest tall,
And spend a few of autumn days,
And study nature at first hand,
Learn how they lived in early days.
Take up your pack and rod and gun,
And once again to seek the wild,
Leave all your sorrows far behind,
And be as carefree as a child.
Then memory's camp-fire kindle bright
And as you feel its friendly blaze,
Just let your mind go back o'er time
To happy scenes of early days.
When you yourself were but a child
That roamed at will the woodland o'er;
Oh! how your heart did exultant leap
Always new country to explore.
Then take your gun from memory's rack
Which for many moons has forgotten hung
And see if you again can sing,
The songs that for years, you've left unsung.
Then tell some tale of early days
Of when you hunted in the glade,
Or when you caught the bear asleep,
Or lured the trout from the alder shade.
And as each spark arises high
From this camp-fire's golden light,
The moon will shed its yellow rays
On distant snow-caps clear and bright.
And should these lines make you recall
Some happy days 'neath skies so fair,
To me this little camp-fire smoke
Will be sweet incense on the air.
INDIAN TRAILS
Creeping along the mountain,
Or winding along the stream,
Each year growing dimmer and dimmer,
Then fading away like a dream—
Almost impossible to follow,
Still in the days long ago,
These trails were the only highways
And whither did they go?
Some lead deep in the forest
Where they hunted the deer and bear,
Where they dried the meat for food
And skins made them clothes to wear.
While some lead to lakes and rivers
Where the loon and wild geese call,
To rice-fields in late October
When the snow commenced to fall,—
While some climbed high on the mountain
Where the huckleberries grew,
And ripened upon the sunny slopes,
Sweetened by mountain dew,—
Others found way to the border tribes
Where the war-whoops loud and shrill,
Echoed along the cliffs and crags,—
Me-thinks I can hear them still.
Now only a scar on some tree remains
Of the trails of the long ago,
The summer comes, the fall appears,
With winter's frost and snow.
And as each season passes,
Leaves dimmer every trace,
I can see the trails a-passing,
The same as the Indian race.
WINTER
Winter has descended o'er mountain and hill,
His mantle of snow has spread;
The grass and flowers are withered and brown,
The leaves on the bushes are dead.
The streams all are silent in icy embrace,
They are held in his bondage so strong:
Not even one faint murmur is heard,
Where they laughed so loud and so long.
The trees are draped in a mantle of snow,
That clings to their boughs like a shroud,
And the mountains cold and still and white
Appear like a light fleecy cloud.
The cattle have come from their good summer
range,
The sheep have all entered the fold,
Winter, they know, is starting its slumber,
And the wind is so searching and cold.
The logs in the fire-place crackle and glow—
Our cabin's all cozy and warm,
The dogs are a-sleeping,—content as can be,
So why worry o'er winter's storm.
PASSING OF THE RANGE
Today as I gaze o'er the prairie
That stretches away into space,
I look back only a few short years
At the change that's taken place.
When I was one of the cowboys,
All our time was spent on the range;
Now I don't see even one rider,—
'Tis then I feel lonesome and strange.
No trail-herds with plaintive lowing,
No shouting, or singing to steers,
No sound of horses mad galloping,—
It almost moves me to tears.
For then we rode stirrup to stirrup,
While the jingle of spurs played a tune;
Oh! could I go back to the round-up
For a day at the cow-camp in June.
When the grass was so green on the prairie,
With the cattle all sleek and so fat,
Each rider all dressed for hard riding,
With high heels and chaps and wide hat.
Each with his string of horses,
Some broken and others half wild,
The wilder the better he liked them,
Happy and carefree as a child;—
Wild as the steers that they wrangled,
Hardy as the bronchos they rode,
Ready to take others' troubles,
Or carry another one's load.
Those were the real days I tell you—
Night-herding by light of the stars;
Three weeks drive to the stockyards
Where we loaded the steers in the cars.
Then when the loading was finished
And the cattle were on their way,
The Boss called the bunch together
And gave us our season's pay.
We were just like a bunch of children,
And many an old-timer like me
Recalls being served in his saddle,
When on a periodical spree.
Now, cattle are held in pastures,
They no longer roam wild and free,—
And the cowboys are gone forever,
Leaving only a memory.
And as each one crosses the border
That is over the Great Divide,
I hope the bunk-house is ample
And none will be left outside.
THE CABIN OF MYSTERY
No trail leads to this cabin,
Not even a blaze on a tree,
Hidden beneath the tall dark firs
Is this cabin of mystery.
No one knew its builder
Or when this cabin was made,
Not one of the oldest trappers
Can explain or give any aid.
The stove still stands in the corner,
The table all neat and clean
And the cupboard still holds its grubstake
As fine as ever was seen.
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com

More Related Content

PDF
JavaScript Application Design A Build First Approach 1st Edition Nicolas Beva...
rcfbour9744
 
PDF
Continuous Integration in NET Marcin Kawalerowicz
sursefie
 
PDF
Continuous Integration in NET Marcin Kawalerowicz
senawoalklb
 
PDF
Docker In Action Second Edition 2nd Edition Jeff Nickoloff
chabokhewin
 
PDF
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
nqaoylllvg977
 
PDF
Download full ebook of Azure in Action 1st Edition Chris Hay instant download...
adobaherrami8
 
PDF
Testing Microservices With Mountebank 1st Edition Brandon Byars
moaudndingo
 
PDF
Reengineering Legacy Software Chris Birchall
mattyychonr
 
JavaScript Application Design A Build First Approach 1st Edition Nicolas Beva...
rcfbour9744
 
Continuous Integration in NET Marcin Kawalerowicz
sursefie
 
Continuous Integration in NET Marcin Kawalerowicz
senawoalklb
 
Docker In Action Second Edition 2nd Edition Jeff Nickoloff
chabokhewin
 
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
nqaoylllvg977
 
Download full ebook of Azure in Action 1st Edition Chris Hay instant download...
adobaherrami8
 
Testing Microservices With Mountebank 1st Edition Brandon Byars
moaudndingo
 
Reengineering Legacy Software Chris Birchall
mattyychonr
 

Similar to Openstack In Action 1st Edition V K Cody Bumgardner (20)

PDF
Spring Security in Action 1st Edition Laurentiu Spilca
qbjpyqyprq1924
 
PDF
JavaScript Application Design A Build First Approach 1st Edition Nicolas Beva...
mechagoins28
 
PDF
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
sherajqublan
 
PDF
Azure Infrastructure As Code With Arm Templates And Bicep 1st Edition Henry Been
biprolarebo
 
PDF
WebWork in Action In Action First Edition Patrick Lightbody
sminkasimian
 
PDF
Kubernetes in Action First Edition Marko Luksa
linnjhmkoq2198
 
PDF
Kubernetes in Action First Edition Marko Luksa
garelunya
 
PDF
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
lbsnmhb824
 
PDF
Immediate download Kubernetes Best Practices 1st Edition Brendan Burns ebooks...
seinersofhia
 
PDF
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
abucdaroga
 
PDF
Production Kubernetes: Building Successful Application Platforms 1st Edition ...
rosiikjenne
 
PDF
WebWork in Action In Action First Edition Patrick Lightbody
goddesabot79
 
PDF
Spring Microservices In Action 1st Edition John Carnell
kcjsuwx115
 
PDF
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
eljantnezar
 
PDF
Kubernetes Best Practices 1st Edition Brendan Burns Eddie Villalba
duukkoofi65
 
PDF
Kubernetes in Action First Edition Marko Luksa
faregyasuko
 
PDF
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
spatzoachskq
 
PDF
Using Docker Developing And Deploying Software With Containers 1st Edition Ad...
graankloen
 
PDF
Cloud Foundry the definitive guide develop deploy and scale First Edition Winn
fazbemcanaj
 
PDF
WebWork in Action In Action First Edition Patrick Lightbody
qvpsslwlk478
 
Spring Security in Action 1st Edition Laurentiu Spilca
qbjpyqyprq1924
 
JavaScript Application Design A Build First Approach 1st Edition Nicolas Beva...
mechagoins28
 
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
sherajqublan
 
Azure Infrastructure As Code With Arm Templates And Bicep 1st Edition Henry Been
biprolarebo
 
WebWork in Action In Action First Edition Patrick Lightbody
sminkasimian
 
Kubernetes in Action First Edition Marko Luksa
linnjhmkoq2198
 
Kubernetes in Action First Edition Marko Luksa
garelunya
 
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
lbsnmhb824
 
Immediate download Kubernetes Best Practices 1st Edition Brendan Burns ebooks...
seinersofhia
 
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
abucdaroga
 
Production Kubernetes: Building Successful Application Platforms 1st Edition ...
rosiikjenne
 
WebWork in Action In Action First Edition Patrick Lightbody
goddesabot79
 
Spring Microservices In Action 1st Edition John Carnell
kcjsuwx115
 
Using Docker Developing and Deploying Software with Containers 1st Edition Ad...
eljantnezar
 
Kubernetes Best Practices 1st Edition Brendan Burns Eddie Villalba
duukkoofi65
 
Kubernetes in Action First Edition Marko Luksa
faregyasuko
 
Eclipse In Action A Guide For Java Developers 1st Edition David Gallardo
spatzoachskq
 
Using Docker Developing And Deploying Software With Containers 1st Edition Ad...
graankloen
 
Cloud Foundry the definitive guide develop deploy and scale First Edition Winn
fazbemcanaj
 
WebWork in Action In Action First Edition Patrick Lightbody
qvpsslwlk478
 
Ad

Recently uploaded (20)

PPTX
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PPTX
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
PDF
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
PPTX
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PDF
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
PPTX
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PDF
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
PPTX
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
DOCX
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
PDF
Module 2: Public Health History [Tutorial Slides]
JonathanHallett4
 
PPTX
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PPTX
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PDF
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
DOCX
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
2.Reshaping-Indias-Political-Map.ppt/pdf/8th class social science Exploring S...
Sandeep Swamy
 
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
Module 2: Public Health History [Tutorial Slides]
JonathanHallett4
 
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
Ad

Openstack In Action 1st Edition V K Cody Bumgardner

  • 1. Openstack In Action 1st Edition V K Cody Bumgardner download https://ebookbell.com/product/openstack-in-action-1st-edition-v- k-cody-bumgardner-49560534 Explore and download more ebooks at ebookbell.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. Containers In Openstack Leverage Openstack Services To Make The Most Of Docker Kubernetes And Mesos Pradeep Kumar Singh Madhuri Kumari Singh https://ebookbell.com/product/containers-in-openstack-leverage- openstack-services-to-make-the-most-of-docker-kubernetes-and-mesos- pradeep-kumar-singh-madhuri-kumari-singh-22851932 Containers In Openstack Leverage Openstack Services To Make The Most Of Docker Kubernetes And Mesos Pradeep Kumar Singh Madhuri Kumari https://ebookbell.com/product/containers-in-openstack-leverage- openstack-services-to-make-the-most-of-docker-kubernetes-and-mesos- pradeep-kumar-singh-madhuri-kumari-22851938 Identity Authentication And Access Management In Openstack Implementing And Deploying Keystone Steve Martinelli https://ebookbell.com/product/identity-authentication-and-access- management-in-openstack-implementing-and-deploying-keystone-steve- martinelli-5471654 How To Succeed In Physics And Reduce Your Workload Kyle Thomas https://ebookbell.com/product/how-to-succeed-in-physics-and-reduce- your-workload-kyle-thomas-49612358
  • 3. Accelerated Linux Api For Software Diagnostics With Category Theory In View 1st Edition Dmitry Vostokov https://ebookbell.com/product/accelerated-linux-api-for-software- diagnostics-with-category-theory-in-view-1st-edition-dmitry- vostokov-50902594 Openstack Cloud Computing Cookbook Kevin Jackson https://ebookbell.com/product/openstack-cloud-computing-cookbook- kevin-jackson-2612642 Openstack For Architects 2nd Edition Ben Silverman Michael Solberg https://ebookbell.com/product/openstack-for-architects-2nd-edition- ben-silverman-michael-solberg-34794992 Openstack Cloud Computing Cookbook Second Edition 2nd Edition Kevin Jackson https://ebookbell.com/product/openstack-cloud-computing-cookbook- second-edition-2nd-edition-kevin-jackson-4652894 Openstack Operations Guide 1st Edition Tom Fifield Diane Fleming https://ebookbell.com/product/openstack-operations-guide-1st-edition- tom-fifield-diane-fleming-4656184
  • 5. M A N N I N G V. K. Cody Bumgardner FOREWORD BY Jay Pipes
  • 8. OpenStack in Action V. K. CODY BUMGARDNER M A N N I N G SHELTER ISLAND Licensed to tracy moore <[email protected]>
  • 9. For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 761 Shelter Island, NY 11964 Email: [email protected] ©2016 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine. Manning Publications Co. Development editors: Susan Conant, Cynthia Kane 20 Baldwin Road Technical development editor: Bill Bruns PO Box 761 Copyeditor: Andy Carroll Shelter Island, NY 11964 Proofreader: Katie Tennant Technical proofreaders: Alain Couniot, David Pombal Typesetter: Dottie Marsico Cover designer: Marija Tudor ISBN 9781617292163 Printed in the United States of America 1 2 3 4 5 6 7 8 9 10 – EBM – 21 20 19 18 17 16 Licensed to tracy moore <[email protected]>
  • 10. v brief contents PART 1 GETTING STARTED ........................................................1 1 ■ Introducing OpenStack 3 2 ■ Taking an OpenStack test-drive 20 3 ■ Learning basic OpenStack operations 55 4 ■ Understanding private cloud building blocks 84 PART 2 WALKING THROUGH A MANUAL DEPLOYMENT.............111 5 ■ Walking through a Controller deployment 113 6 ■ Walking through a Networking deployment 161 7 ■ Walking through a Block Storage deployment 195 8 ■ Walking through a Compute deployment 216 PART 3 BUILDING A PRODUCTION ENVIRONMENT 239 9 ■ Architecting your OpenStack 241 10 ■ Deploying Ceph 259 11 ■ Automated HA OpenStack deployment with Fuel 277 12 ■ Cloud orchestration using OpenStack 303 Licensed to tracy moore <[email protected]>
  • 12. vii contents foreword xiii preface xv acknowledgements xvii about this book xviii PART 1 GETTING STARTED..................................................1 1 Introducing OpenStack 3 1.1 What is OpenStack? 6 1.2 Understanding cloud computing and OpenStack 9 Abstraction and the OpenStack API 10 1.3 Relating OpenStack to the computational resources it controls 11 OpenStack and hypervisors 11 ■ OpenStack and network services 14 ■ OpenStack and storage 15 ■ OpenStack and cloud terminology 17 1.4 Introducing OpenStack components 18 1.5 History of OpenStack 18 1.6 Summary 19 Licensed to tracy moore <[email protected]>
  • 13. CONTENTS viii 2 Taking an OpenStack test-drive 20 2.1 What is DevStack? 22 2.2 Deploying DevStack 23 Creating the server 25 ■ Preparing the server environment 26 Preparing DevStack 28 ■ Executing DevStack 29 2.3 Using the OpenStack Dashboard 36 Overview screen 38 ■ Access & Security screen 38 Images & Snapshots screen 41 ■ Volumes screen 44 Instances screen 47 2.4 Accessing your first private cloud server 51 Assigning a floating IP to an instance 53 ■ Permitting network traffic to your floating IP 53 2.5 Summary 54 3 Learning basic OpenStack operations 55 3.1 Using the OpenStack CLI 56 3.2 Using the OpenStack APIs 58 3.3 Tenant model operations 59 The tenant model 61 ■ Creating tenants, users, and roles 62 ■ Tenant networks 65 3.4 Quotas 78 Tenant quotas 79 ■ Tenant-user quotas 80 Additional quotas 82 3.5 Summary 83 4 Understanding private cloud building blocks 84 4.1 How are OpenStack components related? 85 Understanding component communication 85 Distributed computing model 91 4.2 How is OpenStack related to vendor technologies? 95 Using vendor storage systems with OpenStack 96 Using vendor network systems with OpenStack 101 4.3 Why walk through a manual deployment? 108 4.4 Summary 109 Licensed to tracy moore <[email protected]>
  • 14. CONTENTS ix PART 2 WALKING THROUGH A MANUAL DEPLOYMENT......111 5 Walking through a Controller deployment 113 5.1 Deploying controller prerequisites 116 Preparing the environment 116 ■ Configuring the network interface 117 ■ Updating packages 120 ■ Installing software dependencies 121 5.2 Deploying shared services 124 Deploying the Identity Service (Keystone) 125 ■ Deploying the Image Service (Glance) 135 5.3 Deploying the Block Storage (Cinder) service 142 Creating the Cinder data store 143 ■ Configuring a Cinder Keystone user 144 ■ Creating the Cinder service and endpoint 145 ■ Installing Cinder 146 5.4 Deploying the Networking (Neutron) service 147 Creating the Neutron data store 148 ■ Configuring a Neutron Keystone user 149 ■ Installing Neutron 151 5.5 Deploying the Compute (Nova) service 152 Creating the Nova data store 153 ■ Configuring a Nova Keystone user 154 ■ Assigning a role to the nova user 154 Creating the Nova service and endpoint 155 ■ Installing the Nova controller 156 5.6 Deploying the Dashboard (Horizon) service 158 Installing Horizon 158 ■ Accessing Horizon 159 Debugging Horizon 160 5.7 Summary 160 6 Walking through a Networking deployment 161 6.1 Deploying network prerequisites 163 Preparing the environment 164 ■ Configuring the network interfaces 164 ■ Updating packages 167 ■ Software and configuration dependencies 168 ■ Installing Open vSwitch 171 ■ Configuring Open vSwitch 174 6.2 Installing Neutron 177 Installing Neutron components 177 ■ Configuring Neutron 178 ■ Configuring the Neutron ML2 plug-in 178 ■ Configuring the Neutron L3 agent 179 Licensed to tracy moore <[email protected]>
  • 15. CONTENTS x Configuring the Neutron DHCP agent 180 ■ Configuring the Neutron Metadata agent 180 ■ Restarting and verifying Neutron agents 181 ■ Creating Neutron networks 182 Relating Linux, OVS, and Neutron 191 ■ Checking Horizon 193 6.3 Summary 194 7 Walking through a Block Storage deployment 195 7.1 Deploying Block Storage prerequisites 197 Preparing the environment 198 ■ Configuring the network interface 198 ■ Updating packages 201 ■ Installing and configuring the Logical Volume Manager 202 7.2 Deploying Cinder 206 Installing Cinder 208 ■ Configuring Cinder 209 Restarting and verifying the Cinder agents 210 7.3 Testing Cinder 211 Create a Cinder volume: command line 211 ■ Create a Cinder volume: Dashboard 213 7.4 Summary 215 8 Walking through a Compute deployment 216 8.1 Deploying Compute prerequisites 219 Preparing the environment 219 ■ Configuring the network interface 219 ■ Updating packages 222 Software and configuration dependencies 222 Installing Open vSwitch 223 ■ Configuring Open vSwitch 225 8.2 Installing a hypervisor 226 Verifying your host as a hypervisor platform 226 Using KVM 227 8.3 Installing Neutron on Compute nodes 229 Installing the Neutron software 230 ■ Configuring Neutron 230 ■ Configuring the Neutron ML2 plug-in 231 8.4 Installing Nova on compute nodes 231 Installing the Nova software 231 ■ Configuring core Nova components 232 ■ Checking Horizon 233 8.5 Testing Nova 234 Creating an instance (VM): command line 234 8.6 Summary 238 Licensed to tracy moore <[email protected]>
  • 16. CONTENTS xi PART 3 BUILDING A PRODUCTION ENVIRONMENT........... 239 9 Architecting your OpenStack 241 9.1 Replacement of existing virtual server platforms 242 Making deployment choices 245 ■ What kind of network are you? 246 ■ What type of storage are you? 247 ■ What kind of server are you? 250 9.2 Why build a private cloud? 251 Public cloud economy-of-scale myth 251 ■ Global scale or tight control 252 ■ Keeping data gravity private 252 Hybrid moments 253 9.3 Building a private cloud 254 OpenStack deployment tools 254 ■ Networking in your private cloud 255 ■ Storage in your private cloud 257 9.4 Summary 258 10 Deploying Ceph 259 10.1 Preparing Ceph nodes 260 Node authentication and authorization 261 ■ Deploying Ceph software 264 10.2 Creating a Ceph cluster 265 Creating the initial configuration 265 ■ Deploying Ceph software 266 ■ Deploying the initial configuration 267 10.3 Adding OSD resources 268 Readying OSD devices 269 ■ Creating OSDs 271 10.4 Basic Ceph operations 273 Ceph pools 273 ■ Benchmarking a Ceph cluster 274 10.5 Summary 276 11 Automated HA OpenStack deployment with Fuel 277 11.1 Preparing your environment 279 Network hardware 279 ■ Server hardware 282 11.2 Deploying Fuel 290 Installing Fuel 290 11.3 Web-based basic Fuel OpenStack deployment 293 Server discovery 294 ■ Creating a Fuel deployment environment 295 ■ Configuring the network for the Licensed to tracy moore <[email protected]>
  • 17. CONTENTS xii environment 296 ■ Allocating hosts to your environment 298 Final settings and verification 301 ■ Deploying changes 302 11.4 Summary 302 12 Cloud orchestration using OpenStack 303 12.1 OpenStack Heat 304 Heat templates 304 ■ A Heat demonstration 307 12.2 Ubuntu Juju 312 Preparing OpenStack for Juju 312 ■ Installing Juju 314 Deploying the charms CLI 317 ■ Deploying the Juju GUI 319 12.3 Summary 325 appendix Installing Linux 326 index 347 Licensed to tracy moore <[email protected]>
  • 18. xiii foreword It’s difficult for me to believe that it’s already been five years since I was looking over the original source code of the Nova project. The code had just been released by the Anso Labs team who created it for NASA. Rackspace, where I worked at the time, was seeking a new code base to act as the next generation of the Rackspace Cloud. A few months later, Rackspace open-sourced the code for its Rackspace Cloud Files platform as the Swift project. Nova and Swift became the first two pillars of the nascent Open- Stack project. Since that time, both projects have undergone substantial change. Swift’s core team and code base have remained remarkably stable, though the project has added a number of features and seen numerous enhancements in performance and scalabil- ity. On the other hand, when compared with its humble beginnings, Nova’s source code is nearly unrecognizable. New code bases like Glance, Cinder, Keystone, and Neutron were constructed to deliver functionality that originally was handled by Nova. At the same time that this new source code emerged to handle functionality essen- tial to managing large computing infrastructure, a new kind of open source commu- nity was beginning to take form. Open source developers and advocates with experience in operating system distribution and packaging, configuration manage- ment, database design, automation, networking, and storage systems flocked to con- tribute to OpenStack projects. Our community grew (and continues to grow) at breakneck pace, quickly becom- ing one of the largest, most active and influential open source communities on the planet. The OpenStack Foundation was created to handle the governance challenges that accompany the growth of a successful community. Design summits and confer- ences have grown to host more than 3,500 contributors per year all around the planet. Licensed to tracy moore <[email protected]>
  • 19. FOREWORD xiv A world-class continuous integration and build system was created by the community to support the massive growth in both source code and number of contributors. This automated build system’s size and scope now rival or exceed those of much older open source communities like the Apache and Eclipse foundations. The OpenStack ecosystem has been the fertile ground from which new companies like SwiftStack and Piston Cloud emerged. Existing companies like HP, Mirantis, and Red Hat found the OpenStack landscape to be similarly fruitful, and they continue to drive innovation across the now dozens of projects that comprise the big tent of the OpenStack community. This expansion of the OpenStack community has brought with it a bewildering complexity to how distributed software components are deployed and how they inter- operate. Those who deploy OpenStack “in the wild” need to understand a broad set of concepts from networking and storage to virtualization and configuration manage- ment. Obtaining the necessary knowledge and skills has been and remains one of the key challenges facing those who wish to build cloud platforms using OpenStack. This book, OpenStack in Action, will provide readers with the knowledge they need to deploy and run OpenStack. The author leads the audience through the complexity of an OpenStack deploy- ment, demonstrating three ways to deploy the software: via a scripted tool called DevStack, via manual installation of operating system packages, and via the Fuel OpenStack installer. In each section, concepts around networking and storage setup are thoroughly explained, allowing readers to gradually dip their toes into the cloud computing waters and, by the end of the book, feel comfortable diving into the deep end of the pool. Besides excellent coverage of OpenStack technology, the author also explains how to go about evaluating if and how your organization will benefit from cloud comput- ing. The cloud does not magically solve the manual and time-consuming human- based process problems that exist in many organizations. But, when implemented smartly and for the right reasons, the cloud can transform an IT organization and dra- matically improve the services they provide. In chapter 9, Mr. Bumgardner leads a dis- cussion that should be required reading for any IT director who is considering replacing existing virtualized IT infrastructure with OpenStack or constructing a new private cloud offering for their internal customers. In short, OpenStack in Action serves as an excellent primer on the complex world of cloud computing and the OpenStack software ecosystem. Read it. Absorb it. And become a “Stacker” at heart! JAY PIPES MEMBER, OPENSTACK TECHNICAL COMMITTEE DIRECTOR OF ENGINEERING MIRANTIS, INC. Licensed to tracy moore <[email protected]>
  • 20. xv preface My first exposure to OpenStack came in the summer of 2011 while I was working at the University of Kentucky. My coworker and friend, Brent Salisbury, and I were invited to meet with a Fortune 50 technology company to discuss a product develop- ment project. During our meeting, the project’s executive sponsor gave us the option to work with existing commercial tools or investigate the use of a community project called OpenStack. Naturally, we chose to work with the framework we knew nothing about, and so began our OpenStack journey. Nothing came of the product develop- ment project, but the OpenStack encounter, as it turned out, became a turning point in our professional, and in my case academic, careers. Brent left the university and cofounded a startup that was acquired by Docker, where he currently works. I, on the other hand, transferred from a master’s to a doctoral program and wrote this book. By early 2013, the Grizzly release of OpenStack somewhat resembled current ver- sions, but instabilities due to rapid feature inclusion prevented us from considering OpenStack production-ready for our enterprise environment. But although I was not ready to put my neck on the line with OpenStack for the enterprise, research comput- ing was another story. As part of a graduate independent study class, I documented the use cases, architecture, and strategy around using OpenStack in research comput- ing. In addition, I described the process and eventual adoption of the platform as a private cloud for our enterprise. I used figure 1 in my original academic report to represent the component-level dis- tribution of OpenStack. I suspect cooking an elephant, much like eating one, must be done a piece at a time. Far too often in technology, we accept technological isolation as an organizationally sound practice—“I am a storage guy,” or “I am a network girl”—but this is paramount to someone only eating one part of the elephant. In this book I’ve Licensed to tracy moore <[email protected]>
  • 21. PREFACE xvi tried to mix recognizable morsels with new concepts for easier digestion. Although you might not want to taste elephant feet, you’d better know, at least in principle, how they work if you are going to be successful in your adoption of cloud computing. I’m writing this preface exactly two years to the day after I first spoke with a Man- ning acquisitions editor. When I started this project, there were fewer than 500 Open- Stack contributors, and now there are thousands. Not only has OpenStack become one of the fastest-growing open source communities ever, it has been adopted by the biggest organizations in the world. More importantly, at least for you, OpenStack is now mature and ready to serve as a foundation for your organization’s private cloud. Figure 1 This image is from a sixteenth- century edition of Libro de Arte Coquinaria (Book on the Art of Cookery) by Maestro Martino. Licensed to tracy moore <[email protected]>
  • 22. xvii acknowledgments This book would have never existed without the encouragement of my doctoral advi- sor and friend, Professor Victor W. Marek. The pushing was always welcome, the confi- dence was always needed, and the responsibility is mine to pay forward. I would never have imagined the effort that it takes to produce a book if I hadn’t experienced it myself. Whether or not this effort produced the desired result will be decided by my readers, but there should be no doubt that an army of reviewers, edi- tors, and other contributors spent many hours in the pursuit of a high-quality book. Having contributed to and reviewed other books from other publishers as I wrote this book, I can honestly say that Manning does everything they can to produce the very best work possible. I especially want to thank Susan Conant, my development editor for most of this book, for her tireless work, continually pushing for improvements. Thanks also to publisher Marjan Bace and everyone on the editorial and production teams, including Mary Piergies, Cynthia Kane, Andy Carroll, Katie Tennant, and many others who worked behind the scenes. Finally, I want to thank the following individu- als, who read drafts of this book and provided suggestions: Andy Kirsch, Chris Snow, Fernando Rodrigues, Hafizur Rahman, Jeff Lim, Kosmas Chatzimichalis, Matt Hart- ing, Mayur Patil, Michael Hamrah, Peeyush Maharshi, and Toby Lazar. Special thanks go to you, Sarah, my wife, who between caring for our two small children and supporting my work travel, graduate work, this book, and other work, took on far more than your share. Although the papers, presentations, and books have my first name on them, they will also always carry the name we share. Sarah, Syd- ney, and Jack, I’m sorry for the lost time and energy. I hope you can be as proud of me as I am of you. I love you all. Licensed to tracy moore <[email protected]>
  • 23. xviii about this book The primary topic of this book is deploying enterprise private clouds using Open- Stack. In this context, I discuss private clouds as pools of infrastructure resources, or infrastructure as a service (IaaS), that are owned and managed by the organizations they serve. In contrast, public cloud IaaS resources are owned and operated by third-party service providers. Financially, one can think of private clouds as primarily a capital expense, whereas public clouds are typically operational ones. The distinction is easy to understand, given that in private cloud deployments, organizations typically purchase or lease a fixed infrastructure for the duration of its serviceable life, regardless of actual usage. In public cloud deployments, cost is typically directly related to hourly occupancy (on or off) and communication costs. The organizational adoption of private and public clouds is often related to the size and scope of those organizations’ IT responsibilities. Enterprise IT departments, whose responsibility it is to centrally provide technical architectures and resources for the rest of the organization, have a vested interest in using a private cloud. A multi- tenant, fully orchestrated, private cloud provides great resource-management effi- ciency to enterprise IT. In this regard, enterprise IT becomes a cloud broker. In contrast, departmental IT units often lack the data center facilities and personnel to cost-effectively deploy private clouds. Often, due to their relatively small resource requirements, departments can take advantage of public cloud resources. If they’re available, departments can also take advantage of private cloud resources managed by their enterprise IT units. Using both private and public clouds based on workload results in a hybrid cloud. Licensed to tracy moore <[email protected]>
  • 24. ABOUT THIS BOOK xix Despite the differences in clouds and the types of organizations that are best posi- tioned to take advantage of them, the clouds themselves can be built using the same technologies. Although the ingredients that make up cloud resources might be the same, the recipes and methods of consumption can be very different. OpenStack is a powerful framework for constructing both private and public clouds. Fundamentally, OpenStack abstracts and provides a common API for the hard- ware and software used in building clouds. The framework provides two very impor- tant things:  Abstraction of hardware and software resources, which prevents vendor lock-in of any particular component  A common API across resources, which allows for complete orchestration of connected components The first aspect is nice from a financial perspective, but the second is the key to a mod- ern IT transformation. For enterprise IT, OpenStack brings the same level of transfor- mational efficiency to cloud deployment. Why OpenStack in Action? This book is intended as a step-by-step, bottom-up guide for constructing computa- tional clouds of resources. My intended audience includes researchers, administra- tors, and students interested in the deployment of an OpenStack environment. There are no technical prerequisites beyond a basic operational knowledge of Linux, and the material is suited to people with very different backgrounds and technical abili- ties. Similarly, OpenStack is suited for many use cases. Despite separate use cases utilizing the same OpenStack framework, the require- ments and design of private clouds can vary greatly from those of service providers. Enterprises are interested in providing private resource clouds for their organizations. These private clouds don’t just represent additional services; they can represent a transformation in the way organizations provide computational resources. This book comprises  An introduction to OpenStack through the automated deployment of a single- node development environment  A deeper understanding of OpenStack through a step-by-step manual deploy- ment of a multi-node environment  The impacts of private cloud technologies (OpenStack, Ceph, Juju, and the like) from the perspective of IT operations  The deployment of a production OpenStack environment using vendor- provided automated deployment and management tools The architecture covered in the book is appropriate for small (5-node) to large enter- prise (100-node) private cloud deployments. In addition, chapter 12 walks you through the use of application orchestration tools like OpenStack Heat and Ubuntu Juju on your newly constructed private cloud. Licensed to tracy moore <[email protected]>
  • 25. ABOUT THIS BOOK xx This book is about building an understanding of private cloud technologies, the deployment and operation of those technologies, and the long-term impact of cloud orchestration on traditional IT roles. This book will provide you with the ability to develop a convincing argument for the deployment of an OpenStack private cloud in your enterprise and will help you develop the technical knowledge to deploy your private cloud. Configurations and operational scripts demonstrated in the book are also available through the GitHub repository for the book at https://github.com/ codybum/OpenStackInAction. The most important thing for you to understand is that an OpenStack private cloud is not simply another virtualization tool. OpenStack is a framework that utilizes existing virtualization tools to construct and manage clouds. You’ll learn how to think about cloud construction, deployment, and organization. On the technical side, you’ll gain an understanding of the components of OpenStack and supporting technolo- gies—specifically, OpenStack Compute, Networking, Block Storage, Dashboard, and API components. Roadmap The book is divided into three parts, where part 1 (chapters 1–4) gets you started, part 2 (chapters 5–8) provides a deep dive into the ecosystem, and part 3 (chapters 9–12) prepares you for using OpenStack in a production environment. Chapter 1 introduces the OpenStack cloud operating system, the motivations for developing the framework, and what OpenStack can do for your organization. In chapter 2 you’ll jump right in and take a test drive with OpenStack, using a rapid deployment tool and minimal infrastructure. This test drive is not just to dem- onstrate the OpenStack Dashboard user experience; it will also provide you with a known working model to use while you learn the OpenStack framework. By the end of chapter 2, you’ll be provisioning virtual machines under your own OpenStack environment. Chapter 3 makes use of the environment you constructed in chapter 2 and intro- duces the OpenStack command-line interface (CLI). In this chapter, you’ll walk through basic OpenStack operations as you create new tenants (projects), users, roles, and internal networks. In chapter 4 you’ll progress from using OpenStack to understanding the compo- nent-level functions and their interactions with each other in the overall OpenStack framework. You’ll learn about several cloud design methodologies, which will prepare you for your own multi-node deployment. This chapter covers how OpenStack com- ponents work together and the relationship between OpenStack components and vendor resources. Chapters 5–8 cover deep dives related to specific OpenStack projects, devoting a chapter to each of the major projects. These chapters will walk you through a manual deployment of OpenStack in a multi-node environment. Through these chapters, you’ll gain a great understanding of how and why things work as they do in Licensed to tracy moore <[email protected]>
  • 26. ABOUT THIS BOOK xxi the OpenStack ecosystem. In addition, this manual deployment will give you valuable troubleshooting experience. Chapter 9 covers architectural, organizational, and strategic decisions relating to a production OpenStack deployment. Chapter 10 covers the basic deployment and operation of Ceph storage. Chapter 11 will walk you through the automated HA deployment of OpenStack using Fuel. Finally, chapter 12 covers cloud orchestration using OpenStack Heat and Ubuntu Juju. Who should read this book? The book is suited for infrastructure specialists, engineers, architects, and support personnel interested in deploying a private cloud environment using OpenStack. Although the book has strategic value for those in executive and strategic roles, the message is tailored for a technical reader. There are no technical prerequisites beyond a basic operational knowledge of Linux. Code conventions and downloads All code in the book is presented in a fixed-width font like this to separate it from ordinary text. Code annotations accompany many of the listings, highlighting impor- tant concepts. In some cases, numbered bullets link to explanations that follow the listing. You can download the code for the examples in the book from the publisher’s web- site at www.manning.com/books/openstack-in-action and also from https://github .com/codybum/OpenStackInAction. Author Online The purchase of OpenStack in Action includes free access to a private web forum run by Manning Publications, where you can make comments about the book, ask technical questions, and receive help from the author and from other users. To access the forum and subscribe to it, point your web browser to www.manning.com/books/openstack- in-action. This page provides information on how to get on the forum once you are registered, what kind of help is available, and the rules of conduct on the forum. Manning’s commitment to our readers is to provide a venue where a meaningful dialogue between individual readers and between readers and the author can take place. It is not a commitment to any specific amount of participation on the part of the author, whose contribution to the forum remains voluntary (and unpaid). We sug- gest you try asking the author some challenging questions lest his interest stray! The Author Online forum and the archives of previous discussions will be accessible from the publisher’s website as long as the book is in print. About the author Cody Bumgardner (http://codybum.com) has been in the IT industry for over 20 years, during which he has worked in technical, managerial, and sales roles in the Licensed to tracy moore <[email protected]>
  • 27. ABOUT THIS BOOK xxii areas of IT architecture, software development, networking, research, systems, and security. Over the last several years, he has focused on researching, implementing, and speaking about cloud computing and computational economics. He is also currently a PhD candidate in Computer Science at the University of Kentucky (UK), focusing on computational economics and distributed resource management. Cody currently serves as the Chief Technology Architect (CTA) of a large public land-grant university. As CTA, he developed a five-year university strategy and roadmap for cloud comput- ing. This roadmap outlined the introduction of disruptive cloud technologies along with the related transformations of the IT workforce. The plan centered around the deployment of an enterprise OpenStack private cloud, supporting over 40,000 users in academic, research, and health care (academic) divisions. Cody is responsible for the architecture, financial model, deployment, and long-term strategy of the Open- Stack private cloud, research computing, and other cloud computing initiatives. About the cover The figure on the cover of OpenStack in Action is captioned “Milkmaid from Cou- tances.” The illustration is taken from a collection of works by many artists, edited by Louis Curmer and published in Paris in 1841. The title of the collection is Les Français peints par eux-mêmes, which translates as The French People Painted by Themselves. Each illustration is finely drawn and colored by hand, and the rich variety of drawings in the collection reminds us vividly of how culturally apart the world’s regions, towns, vil- lages, and neighborhoods were just 200 years ago. Isolated from each other, people spoke different dialects and languages. In the streets or in the countryside, it was easy to identify where they lived and what their trade or station in life was just by their dress. Dress codes have changed since then, and the diversity by region, so rich at the time, has faded away. It’s now hard to tell apart the inhabitants of different continents, let alone different towns or regions. Perhaps we have traded cultural diversity for a more varied personal life—certainly for a more varied and fast-paced technological life. At a time when it’s hard to tell one computer book from another, Manning cele- brates the inventiveness and initiative of the computer business with book covers based on the rich diversity of regional life of two centuries ago, brought back to life by pictures from collections such as this one. Licensed to tracy moore <[email protected]>
  • 28. Part 1 Getting started The first part of this book is an introduction to the OpenStack framework: how and why you’ll want to use it. OpenStack components are decomposed, and relationships to underlying resources (compute, storage, network, and so on) are explained. You’ll deploy OpenStack on a single node using the DevStack deployment tool. Along the way, this part will help you start thinking about how OpenStack could be used in your environment and develop your interest in the framework enough to gain a deeper understanding of how things work under the covers. Licensed to tracy moore <[email protected]>
  • 30. 3 Introducing OpenStack Only a few decades ago, many large computer hardware companies had their own fabrication facilities and maintained competitive advantage by making specialty processors, but as costs rose, fewer companies produced the volume of chips needed to remain profitable. Merchant chip fabricators emerged, able to produce general-purpose processors at scale, and drove down costs significantly. Having just a few computer chip manufacturers encouraged standardized desktop and server platforms around the Intel x86 instruction set, and eventually led to commodity hardware in the client-server market. The rapid growth of the World Wide Web during the dot-com years of the early 2000s created huge data centers filled with this commodity hardware. But although the commodity hardware was powerful and inexpensive, its architecture was often like that found in desktop computing, which was not designed with centralized This chapter covers  OpenStack and the cloud ecosystem  Reasons to choose OpenStack  What OpenStack can do for you and your organization  Key components of OpenStack Licensed to tracy moore <[email protected]>
  • 31. 4 CHAPTER 1 Introducing OpenStack management in mind. No tools existed to manage commodity hardware as a collec- tion of resources. To make matters worse, servers during this period generally lacked hardware management capabilities (secondary management cards), just like their desktop cousins. Unlike mainframes and large symmetric multiprocessing (SMP) machines, these commodity servers, like desktops, required layers of management software to coordinate otherwise independent resources. During this period, many management frameworks were developed internally by both public and private organizations to manage commodity resources. Figure 1.1 shows collections of interconnected resources spread across several data centers. With management frameworks, these common resources could be used interchangeably, based on availability or user requirements. While it’s unclear exactly who coined the term, those able to harness the power of commodity computing through management frameworks would say they had a “cloud” of resources. Out of many commercial and open source cloud management packages to be developed during this period, the OpenStack project was one of the most popular. OpenStack provides a common platform for controlling clouds of servers, storage, networks, and even application resources. OpenStack is managed through a web- based interface, a command-line interface (CLI), and an application programming interface (API). Not only does this platform control resources, it does so without requiring you to choose a specific hardware or software vendor. Vendor-specific Data center Mumbi Data center Paris Data center New York Data center San Francisco Data center Applications Platform Switch Hypervisor OS Physical A A A Data centers have racks Each rack has resources Figure 1.1 Cloud of interconnected commodity resources Licensed to tracy moore <[email protected]>
  • 32. 5 components can be replaced with minimum effort. OpenStack provides value for a wide range of people in IT organizations. One way to think about OpenStack is in the context of the Amazon buying experi- ence. Users log in to Amazon and purchase products, and products are delivered. Behind the scenes, an orchestra of highly optimized steps are taken to get products to your door as quickly and inexpensively as possible. Twelve years after Amazon was founded, Amazon Web Services (AWS) was launched. AWS brought the Amazon expe- rience to computing resource delivery. A server request that might take weeks from a local IT department could be fulfilled with a credit card and a few mouse clicks with AWS. OpenStack aims to provide the same level of orchestrated efficiency demon- strated by Amazon and other service providers to your organization. What is OpenStack?  For cloud/system/storage/network administrators—OpenStack controls many types of commercial and open source hardware and software, providing a cloud man- agement layer on top of vendor-specific resources. Repetitive manual tasks like disk and network provisioning are automated with the OpenStack framework. In fact, the entire process of provisioning virtual machines and even applica- tions can be automated using the OpenStack framework.  For the developer—OpenStack is a platform that can be used not only as an Amazon-like service for procuring resources (virtual machines, storage, and so on) used in development environments, but also as a cloud orchestration plat- form for deploying extensible applications based on application templates. Imagine the ability to describe the infrastructure (X servers with Y RAM) and software dependencies (MySQL, Apache2, and so on) of your application, and having the OpenStack framework deploy those resources for you.  For the end user—OpenStack is a self-service system for infrastructure and appli- cations. Users can do everything from simply provisioning virtual machines (VMs) like with AWS, to constructing advanced virtual networks and applica- tions, all within an isolated tenant (project) space. Tenants, also known as pro- jects, are the way that OpenStack isolates assignments of resources. Tenant isolation includes storage, network, and VM isolation, so end users can be given much more freedom than in traditional virtual server environments. Imagine end users being assigned a quota of resources that they could easily provision how and when they want. Virtual machines and tenants Throughout the book, the term virtual machine (VM) will refer to an instance of an emulated physical machine (server). Virtual machines perform the same functions as physical machines and, from the perspective of the operating system, are intended to be indistinguishable from physical hardware. VMs are used for a variety of reasons, but most virtualization motivations boil down to the flexibility of controlling things through software outweighing the performance penalty. From a high-level view, you Licensed to tracy moore <[email protected]>
  • 33. 6 CHAPTER 1 Introducing OpenStack The OpenStack foundation has hundreds of official corporate sponsors and a com- munity of tens of thousands of people in over 130 countries. Like Linux, many people will be attracted to OpenStack as a community-supported alternative to commercial products. But what they’ll soon learn is that when it comes to cloud frameworks, there are few that compare to OpenStack in terms of depth and breadth of services. Perhaps more importantly, there might not be another product, commercial or otherwise, that the average system administrator, developer, or architect can use on their own and that can provide a greater benefit to their organization. 1.1 What is OpenStack? Let’s expand on the definition of OpenStack as a framework for managing, defining, and utilizing cloud resources. The official OpenStack website (www.openstack.org) describes the framework as “open source software for creating private and public clouds.” It goes on to say, “OpenStack Software delivers a massively scalable cloud operating system.” If you have experience in server virtualization, you may quickly, yet incorrectly, conclude that OpenStack is just another way to provide virtual machines. Although this is a service enabled by the OpenStack framework, it’s by no means OpenStack’s definitive function. Figure 1.2 shows several of the resource components that OpenStack coordinates to create public and private clouds. As the figure illustrates, OpenStack doesn’t replace these resource providers; it simply manages them, through control points built into the framework. An experienced systems administrator might take the description of OpenStack as a “cloud operating system” with great skepticism. It’s not like administrators run around to hundreds of servers with a boot disk, and load OpenStack on bare metal, like a traditional operating system. Nevertheless, through its management of resources, OpenStack shares operating systems characteristics, but in the context of cloud computing. With an OpenStack cloud you can  Harness the resources of physical and virtual servers, networks, and storage systems  Efficiently manage clouds of resources through tenants, quotas, and user roles  Provide a common interface to control resources regardless of the underlying vendor subsystem (continued) can think of OpenStack as bringing the same level of operational efficiency to your data center that the software hypervisor brought to the server. As you’ll learn in this book, the word tenant has a specific meaning in OpenStack. It’s sufficient at this point to consider a tenant to be a quota-limited collection of resources used by VMs that are logically isolated from each other. For example, if a user misconfigures the network in tenant A, tenant B is unaffected. Licensed to tracy moore <[email protected]>
  • 34. 7 What is OpenStack? At first glance, OpenStack doesn’t look like a traditional operating system, but then again, the “cloud” doesn’t look like a normal computer. One must take a step back and consider the fundamental benefits of an operating system. Before there were operating systems or even hardware-level abstraction languages (assembly), programs were written in the language (binary machine code) of a spe- cific computer. Then traditional operating systems came along and, among other things, allowed users to standardize not just application code, but also the manage- ment functions of the hardware. Administrators could now manage hardware instances using a common interface, developers could write code for a common sys- tem, and users only had to learn a single user interface. This held true regardless of underlying hardware, as long as the operating system remained the same. In the evo- lution of computers, the development and proliferation of operating systems gave rise to the field of systems engineering and administration. Figure 1.3 shows the many layers of abstraction in modern computational systems. No doubt, in the past there were developers who didn’t like the idea of losing direct control over hardware through the use of an operating system, just as some sys- tems administrators don’t like the idea of losing control over the underlying hardware and operating systems through server virtualization. In each of these transitions, from External network Private or public cloud OpenStack manages physical and virtual resources. Storage Physical Virtual Server Network Figure 1.2 OpenStack is a cloud operating system. Licensed to tracy moore <[email protected]>
  • 35. 8 CHAPTER 1 Introducing OpenStack machine code to assembly to the virtual layer, we didn’t lose the underlying layer; it was simply standardized through abstraction. We still have highly optimized hardware, we still have operating systems, and often we have a layer of hardware virtualization between those layers. Wide adoption of a new abstraction layer typically occurs when the benefits of opti- mizing beyond the standard approach outweigh the cost of translating (virtualization) between those layers. This is to say, when the overall utility of a computational envi- ronment can be increased by sacrificing raw performance for usability, then a layer of abstraction is typically adopted. This phenomenon is most clearly demonstrated by central processing units (CPUs) that conform to the same instruction set for decades, while radically changing their internal architectures. When most people think of CPUs, they don’t think of virtualization and execution variability on the hardware level, but this is the case. Many of the instructions on x86 processors are virtualized inside the processors themselves, where some complex leg- acy instruction is executed through a series of simpler, yet faster, instructions. The complexity of instruction-level optimization is beyond the scope of this book, but it’s important to understand that even when using bare metal, some form of virtualization is at play, even on the processor level. Now, instead of focusing on losing control, imagine taking it through the use of a common framework for managing, monitoring, and deploying private and public clouds of infrastructure and applications. Once you take this evolutionary step forward, you have OpenStack. Common layers of abstraction Common access methods per layer Processor- specific architecture Machine code Instruction set architecture Operating system Virtual layer OpenStack Assembly Bytecode Vendor API OpenStack API Figure 1.3 Layers of computational abstraction Decades of CPU abstraction and virtualization The Intel x86 instruction set was introduced with the Intel 8086 CPU in 1978, as a backward-compatible alternative to the Intel 8080. The x86 instruction set defined assembly instructions that would remain available regardless of processor changes. Since then, new “processor extensions” were added and clock cycles were increased, but the existing instructions remained. Licensed to tracy moore <[email protected]>
  • 36. 9 Understanding cloud computing and OpenStack 1.2 Understanding cloud computing and OpenStack This book focuses on deploying private enterprise clouds using OpenStack. In this context, I’ll describe private clouds as pools of infrastructure resources (VMs, storage, and so on), also known as infrastructure as a service (IaaS), owned and managed by the organizations they serve. In contrast, public cloud IaaS resources are owned and oper- ated by third-party service providers, like Amazon AWS, Microsoft Azure, and the like. The goal of this book is to help you bring the ease and efficiencies of public cloud offerings to your enterprise. Whether organizations opt for private or public clouds is often related to the size and scope of those organizations’ IT responsibilities. Enterprise IT departments, with the responsibility to centrally provide the technical architecture and resources for the rest of the organization, have a vested interest in leveraging a private cloud. A multi-tenant (where data, configuration, and user management are logically isolated per tenant), fully orchestrated private cloud provides enterprise IT the ability to become a private cloud broker. As the demand for faster processors increased, so did the desire to ensure software interoperability between processor generations. CPU designers needed the flexibility to optimize at lower levels of abstraction, while maintaining instruction-level compat- ibility (standardization). Designers didn’t worry about keeping the underlying hard- ware the same, which allowed them to greatly increase the clock speed of processors between generations. In 1995, the Pentium Pro introduced the idea of micro-op decoding. Instead of a specific instruction taking a single clock cycle, it might be translated into several simple instructions, which could take many cycles. In addition to micro-ops, the Pentium Pro processor introduced optimizations through out-of-order execution of instructions and memory virtualization (addressing 36 bits of memory with a 32-bit bus). But this was all completely abstracted from the devel- oper, allowing the same applications to run on several generations of processors from multiple vendors. This method of maintaining instruction-level compatibility con- tinues to this day with the current generation of x86_64 processors. The economics of private vs. public clouds Financially, one can think of private clouds as primarily capital expenses, whereas public clouds are typically operational expenses. The distinction is easy to under- stand given that in private cloud deployments, organizations typically purchase or lease a fixed infrastructure for the duration of its serviceable life, regardless of actual usage. In public clouds, the cost is typically directly related to hourly occupancy (if it’s on and provisioned, you pay; if it’s off and destroyed, you don’t) and communica- tion costs. Licensed to tracy moore <[email protected]>
  • 37. 10 CHAPTER 1 Introducing OpenStack In contrast, departmental IT units often lack the data center facilities and personnel to cost-effectively deploy private clouds. Due to their relatively small resource require- ments, departmental IT units can often take advantage of public cloud resources, or also take advantage of private cloud resources managed by their enterprise IT units, if any are available. If you use both private and public clouds based on workload, that combination is referred to as a hybrid cloud. Both public and private clouds are built using the same technologies, but although the building blocks might be the same, the motivations for using private and public clouds can be very different. For instance, users often use a private cloud for security compliance reasons. It’s common for a public cloud to be used for workloads that are cyclic in nature or that require a global scale that would be very costly for an enterprise to provide. Although this book focuses on using OpenStack for private clouds, many of the les- sons learned translate directly to public cloud provider services that are based on the OpenStack API. 1.2.1 Abstraction and the OpenStack API Fundamentally, OpenStack abstracts and provides a common API for controlling hard- ware and software resources provided by a wide range of vendors. The framework pro- vides two very important things:  Abstraction of hardware and software resources, which prevents vendor lock-in for any particular component. This is accomplished by managing resources through OpenStack, not directly using the vendor component. The drawback is that not all vendor features are supported by OpenStack, but common required features are.  A common API across resources, which allows for complete orchestration of connected components. Multi-tenancy and full orchestration Multi-tenant refers to the ability of a cloud platform to manage computational resources on a departmental level. For instance, a marketing department could be allocated a portion of shared resources (X VMs, Y storage, and so on), and from this resource allocation the department could provision resources without interacting with the central organization (think of the Amazon purchase model). Likewise, fully orches- trated describes the ability to allocate resources in relation to application dependen- cies. For instance, an accounting application along with its web and database server dependencies could be programmatically deployed in this environment. So not only could the marketing department manage its own resources, platform orchestration could be used to deploy both the infrastructure (VMs) and applications (MySQL, Apache2, custom application, and so on) inside a dedicated tenant. Licensed to tracy moore <[email protected]>
  • 38. 11 Relating OpenStack to the computational resources it controls While the first point is nice from a financial perspective, the second is the key to a modern IT transformation. The next section will relate OpenStack to other technologies that you might be familiar with. 1.3 Relating OpenStack to the computational resources it controls You’ve read all about the great things that OpenStack provides, but how does it work? Perhaps the easiest way to grasp how OpenStack works is to relate the framework to common technologies found in an enterprise environment. In this section, you’ll learn how OpenStack is related to the foundational resources (compute, storage, network, and so on) that it controls. As you’ll see, OpenStack gen- erally doesn’t provide the actual resource; it simply controls lower-level resources. Fig- ure 1.4 shows how OpenStack manages providers of resources, which in turn are used by virtual machines. In the following subsections, you’ll see the details related to specific resource com- ponents: server virtualization, via the control of hypervisors; networking, via the con- trol of vendor-provided hardware and OpenStack services; block and object storage, via the control of vendor and OpenStack services. Finally, we’ll look at OpenStack ser- vices in relation to common cloud terms. As you’ll see, OpenStack is a framework that coordinates resources and services, regardless of the underlying technology vendor. 1.3.1 OpenStack and hypervisors A hypervisor or virtual machine monitor (VMM) is software that manages the emulation of physical hardware for virtual machines. OpenStack is not a hypervisor, but it does con- trol hypervisor operations. Many hypervisors are supported under the OpenStack framework, including XenServer/XCP, KVM, QEMU, LXC, ESXi, Hyper-V, BareMetal, OK, what’s the catch? OpenStack provides support for a wide range of functions that are both scalable and abstracted from the underlying hardware. What OpenStack (or any other cloud frame- work) can’t do is conform to all of your current practices. To take advantage of the power of cloud computing, you might have to change some of your own business and architectural practices. If your architectural standards are based on using <insert propriety vendor feature> to do <some function> for all servers in your data center, this approach may be in conflict with a vendor-abstracted cloud deployment. If your business practice is to cre- ate virtual machines for users on request, you’re missing the point of cloud self- service. If end-user requests can be effectively automated, or end users can provision resources themselves, then you’re harnessing the power of cloud computing. Licensed to tracy moore <[email protected]>
  • 39. 12 CHAPTER 1 Introducing OpenStack and others (see the hypervisor support matrix: https://wiki.openstack.org/wiki/ HypervisorSupportMatrix). You’re likely familiar with VMware ESX, VMware ESXi, and Microsoft Hyper-V, which at the current time are the dominant hypervisors in enterprise virtualization space. Because of licensing restrictions, cost, and other fac- tors, there has been less OpenStack community support for commercial hypervisors than for open source alternatives. Figure 1.5 shows OpenStack managing resources that are virtualized by a hypervi- sor on physical hardware. OpenStack coordinates the management of many hypervisor resources and virtual machines in an OpenStack cluster. The majority of people and organizations, regardless of deployment size, use either XenServer or KVM hypervisors, which currently support the widest range of features. XenServer, a Citrix product, is technically an open source hypervisor, but commercial support is available through Citrix. KVM is included as part of the Linux kernel, so many Linux distribution maintainers provide commercial KVM support, including Red Hat, Ubuntu, and SUSE, to name a few. ARE YOU CERTIFIED? As large providers started designing public IaaS offer- ings based on the OpenStack framework, they soon realized that their cus- tomers would require Microsoft certification for Windows hosts running OpenStack services OpenStack Dashboard provides UI to services OpenStack manages the resources Vendors provide resources… …used by virtual machines Compute Vendor hypervisor Vendor storage system Storage VM compute VM volume Vendor network Networking VM network Figure 1.4 OpenStack resource management model Licensed to tracy moore <[email protected]>
  • 40. 13 Relating OpenStack to the computational resources it controls under their hypervisors. At the time, Citrix had gone through the Microsoft certification process with XenServer and fulfilled those requirements. But despite Citrix having a competing platform in the form of CloudStack, many organizations used XenServer as their OpenStack hypervisor. Since that time several Linux distribution providers have gone through the Microsoft certifi- cation process and now fully support Windows guests on the KVM hypervisor, including hypervisors controlled by OpenStack. Throughout this book, the Kernel-based Virtual Machine (KVM) will be used. KVM has been part of the Linux kernel since the 2.6.20 release in early 2007, and it’s fully supported by OpenStack. KVM also provides paravirtualization, which must be either supported natively by the operating system or added through the use of hypervisor- specific drivers installed on the virtualized operating system image. The traditional problem with open source hypervisors is that there’s a steep learning curve for deploying and maintaining them, often requiring experience in system, network, and application administration. In organizations lucky enough to have centrally sup- ported virtualized resources, the resource request process must pass through the organization’s network, systems, security, and financial elements in the provisioning process. This typically leaves users with three choices:  Self-support using community code—Using community support for community- maintained software, you take responsibility for the design, development, and operation of your deployment. OpenStack Compute Manages the hypervisor Server hardware Virtual hardware Compute VM compute CPU Disk RAM Net Figure 1.5 OpenStack manages the hypervisor Licensed to tracy moore <[email protected]>
  • 41. 14 CHAPTER 1 Introducing OpenStack  Commercial support using community code—Using vendor support for community- maintained software, you and/or the vendor are responsible for your deployment.  Commercial support using a vendor branch of a community project—Using vendor- provided support and software, you are typically responsible for operation and vendor management in relation to your deployment. Although several vendors support OpenStack and KVM commercially, many internal clouds are built for workloads that don’t require commercial support or certifica- tion, so OpenStack support of KVM without commercial support is a very popular option. This book covers material that’s useful regardless of your deployment and support path. 1.3.2 OpenStack and network services OpenStack isn’t a virtual switch, but it does manage several physical and virtual net- work devices and virtual overlay networks. Unlike the OpenStack control of hypervi- sors, which is limited to the services provided by the hypervisor alone, OpenStack directly provides network services like DHCP, routing, and so on. But much like hyper- visor management, OpenStack is agnostic to the underlying vendor technology, which could be a commercial or open source technology. More importantly, a backend technology change like moving from one type of network or vendor to another doesn’t necessitate client configuration changes. Given the great deal of proprietary hardware, software, and user interfaces involved in net- working, it’s often not trivial to switch from one vendor or technology to another. With OpenStack, those interfaces are abstracted by the OpenStack API, as shown in figure 1.6. OpenStack can manage many types of network technology (mechanisms), includ- ing those provided by Arista Networks, Cisco Nexus, Linux bridging, Open vSwitch (OVS), and others. Throughout this book we use networking services provided by Linux containers Recently, there has been great interest in the use of operating-system-level virtualiza- tion in place of infrastructure-level visualization for providing OpenStack instances. Operating-system-level virtualization provides the ability to run multiple isolated OS instances (containers) on a single server. But it isn’t a hypervisor technology—it oper- ates on the system level where containers share the same kernel. You can think of containers as providing virtual separation where needed, without the emulation over- head of full virtualization. The two most popular operating-system-level virtualization projects are Docker (https://www.docker.com/) and Rocket (https://github.com/coreos/rkt). Although it can be argued that containers are better suited for application runtime delivery than OS-level instances, technologies based on containers will undoubtedly be widely adopted for building clouds. Licensed to tracy moore <[email protected]>
  • 42. 15 Relating OpenStack to the computational resources it controls OpenStack and OVS. OVS is a common switch choice for OpenStack that you can easily obtain and replicate in your environ- ment without specific hardware require- ments. Along with the network mechanisms, there are several network types (VLANs, tunnels, and so on) sup- ported by OpenStack, and those are cov- ered in chapter 6. 1.3.3 OpenStack and storage OpenStack isn’t a storage array, at least not in the way you’d generally think of storage. OpenStack doesn’t physically provide the storage used by virtual machines. If you’ve ever used a file share (NFS, CIFS, and the like), you were using “file- based” storage. This type of storage is easy for humans to navigate and computers to access, but it’s generally an abstraction of another type of storage: block storage. You can think of operating systems or filesys- tems as being the primary users of block storage. There’s also another type of storage that people in systems roles might not be familiar with: object-based storage. This type of storage is generally accessed through software APIs (for example, GET /obj=xxx). Object-based storage is a further abstrac- tion of file and block storage, but without the restrictions of either. Object-based stor- age can be easily distributed and replicated between many participating nodes. Unlike block storage, which must quickly be accessed by a VM, distributed object storage is much more latent and wouldn’t be used for things like VM volumes (which are actively attached to an instance). It’s common to use object storage to store backups of vol- umes and images (containing operating systems) to be applied to volumes when they’re created. Let’s first address how OpenStack works with block storage, and then we’ll talk about object storage. BLOCK STORAGE OpenStack doesn’t currently manage file-based storage for end users. In figure 1.7, you can see that OpenStack manages block (VM) storage much like it manages the hypervisor and network. This figure shows a complete picture from a basic VM resource-management pro- spective. OpenStack can manage many vendor-provided storage solutions, including solutions from Ceph, Dell, EMC, HP, IBM, NetApp, and others. As it does with hypervisor OpenStack Vendor network VM network VM compute Networking Server hardware Figure 1.6 OpenStack manages the network Licensed to tracy moore <[email protected]>
  • 43. 16 CHAPTER 1 Introducing OpenStack and network components, OpenStack pro- vides you with the flexibility to switch between storage vendors and technologies without changing the client configuration. OBJECT STORAGE Although OpenStack isn’t a storage array for block storage (used to boot VMs), it does have the native ability to provide object storage. Other than physical hard- ware running a supported version of Linux, no other software is required for OpenStack to provide a distributed object storage cluster. This type of storage can be used to store volume backups, and it’s also common to use object storage for large amounts of data that can be easily isolated into binary objects. Figure 1.8 shows a basic object server deployment that’s all contained in the OpenStack environment. Vendor network VM network VM compute Vendor storage system VM volume Server hardware OpenStack Storage Networking Figure 1.7 OpenStack manages block (VM) storage. OpenStack Proxy node Storage node Storage node Storage node Figure 1.8 OpenStack provides object-based (API) storage. Licensed to tracy moore <[email protected]>
  • 44. 17 Relating OpenStack to the computational resources it controls Object storage doesn’t have to be in a single location. In fact, nodes (proxy and stor- age) could be in several locations that replicate between each other. The traditional use case for object storage is to store data that will be accessed by an application, such as a document or file that will be used by an application on a user’s behalf. There are several use cases for object storage in OpenStack environ- ments. For example, it’s common to use this type of storage as a repository for VM images. This isn’t to say that the VMs use this storage directly, but they’re provisioned from data maintained in this system. This is reasonable because the provisioning pro- cess won’t need low-latency access to random data. Object storage might also be used to back up a snapshot of an existing VM for a long-term backup. 1.3.4 OpenStack and cloud terminology OpenStack is a framework for cloud construction and is used to construct both public and private clouds. Aside from the public and private cloud definitions, there are the “as-a-service” cloud destinations. Which as-a-service is OpenStack? OpenStack can be used as the foundation for several as-a-service clouds. Suppose you’re interested in providing your enterprise with an Amazon-like expe- rience for acquiring VMs and storage resources. This would be considered infrastruc- ture as a service (IaaS). In this context, users are given direct access to provision individual virtual machines, which users directly manage. Although the physical com- ponents that make up the cloud are hidden from the user, virtual components are directly accessible. The responsibility of OpenStack is to control resources that pro- vide end users with the infrastructure. Now suppose your cloud users are not given direct access to IaaS features and are only given access to application orchestration functions provided or supported by OpenStack. In this context, OpenStack could be considered the back end of a platform as a service (PaaS) offering. The underlying physical and virtual infrastructure compo- nents are hidden from the user. Consider the case where a development team requires an isolated application landscape (application-layer deployment on IaaS) for software testing. Through cloud orchestration, OpenStack could be used on the back end in the deployment of the described testing platform. Now suppose your company provides a service to its customers using either IaaS or PaaS provided by OpenStack. In this context, OpenStack serves as the back end com- ponent of software as a service (SaaS). As you can see, OpenStack can be used as a fun- damental component in many layers of cloud computing. Now that you have a better idea of what OpenStack does and how it does it, it’s time to introduce you to the components of OpenStack that do the work. The next section introduces the individual components of OpenStack and their role in the overall framework. Licensed to tracy moore <[email protected]>
  • 45. 18 CHAPTER 1 Introducing OpenStack 1.4 Introducing OpenStack components I introduced the basic capabilities of OpenStack in section 1.1; in this section we’ll look at the fundamental components that make up the framework. Table 1.1 lists several of OpenStack’s components or core projects. There are many more projects in various stages of development, but these are the foundational com- ponents of OpenStack. The most up-to-date roadmap of OpenStack’s services can be found on the OpenStack Roadmap page: www.openstack.org/software/roadmap/. Now that you know a bit about what OpenStack is and does, let’s take a quick look at where it came from. 1.5 History of OpenStack On his first day in office in 2009, US President Barack Obama signed a memorandum to all federal agencies directing them to break down barriers to transparency, partici- pation, and collaboration between the federal government and the people it serves. The memorandum became known as the Open Government Directive. One hundred and twenty days after the directive was issued, NASA announced its Open Government framework, which outlined the sharing of a tool called Nebula. Nebula was developed to speed the delivery of IaaS resources to NASA scientists and researchers. At the same time, the cloud computing provider Rackspace announced it would open-source its object storage platform, Swift. Table 1.1 Core projects Project Code name Description Compute Nova Manages VM resources, including CPU, memory, disk, and net- work interfaces. Networking Neutron Provides resources used by the VM network interface, including IP addressing, routing, and software-defined networking (SDN). Object Storage Swift Provides object-level storage, accessible via a RESTful API. Block Storage Cinder Provides block-level (traditional disk) storage to VMs. Identity Keystone Manages role-based access control (RBAC) for OpenStack components. Provides authorization services. Image Service Glance Manages VM disk images. Provides image delivery to VMs and snapshot (backup) services. Dashboard Horizon Provides a web-based GUI for working with OpenStack. Telemetry Ceilometer Provides collection for metering and monitoring OpenStack components. Orchestration Heat Provides template-based cloud application orchestration for OpenStack environments. Licensed to tracy moore <[email protected]>
  • 46. 19 Summary In July 2010, Rackspace and NASA, along with 25 other companies, launched the OpenStack project. Over the past five years there have been ten releases. OpenStack releases are shown in table 1.2. OpenStack has maintained a six-month release cycle, which is coordinated with Open- Stack Summits. The project has grown from 25 participating companies to over 200, with thousands of participating users in over 130 countries. 1.6 Summary  IaaS clouds are collections of commodity resources, which are coordinated through management frameworks.  OpenStack is a management framework that provides end-user self-service coor- dination of IaaS and application orchestration (PaaS/SaaS).  OpenStack controls existing commercial and community technologies like hypervisors, storage systems, and networking hardware and software.  OpenStack is composed of a collection of projects, each with a specific purpose.  Each OpenStack project has a related code name. Table 1.2 OpenStack releases Name Date Core components Austin October 2010 Nova, Swift Bexar February 2011 Nova, Glance, Swift Cactus April 2011 Nova, Glance, Swift Diablo September 2011 Nova, Glance, Swift Essex April 2012 Nova, Glance, Swift, Horizon, Keystone Folsom September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly April 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Havana October 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Ceilometer, Heat Icehouse April 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Ceilometer, Heat, Trove Juno October 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Ceilometer, Heat, Trove, Sahara Kilo April 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Ceilometer, Heat, Trove, Sahara, Ironic Liberty October 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Ceilometer, Heat, Marconi, Trove, Sahara, Ironic, Searchlight, Designate, Zaqar, DBaaS, Barbican, Manila Licensed to tracy moore <[email protected]>
  • 47. 20 Taking an OpenStack test-drive In chapter 1 you learned many of the benefits of OpenStack and how OpenStack fits into the cloud ecosystem. But now that you have an idea of what OpenStack can do for you, you may wonder what it looks like. What will the experience be like for your users? This chapter lets you test-drive OpenStack through the use of DevStack, a rapid OpenStack deployment tool, and answers these questions. DevStack lets you interact with OpenStack on a small scale that’s representative of a much larger deployment. You can quickly deploy or “stack” (as fellow Open- Stackers call it) components and evaluate them for production use cases. DevStack This chapter covers  Using DevStack to take a test-drive with OpenStack  Preparing an environment for DevStack  Configuring and deploying DevStack  Interacting with the OpenStack Dashboard  Understanding the OpenStack tenant (project) model  Creating virtual machines with OpenStack Licensed to tracy moore <[email protected]>
  • 48. 21 helps you deploy the same OpenStack components found in large multiserver envi- ronments on a single server, as shown in figure 2.1. Without knowing a great deal about OpenStack and without the need for a bunch of hardware, you can use DevStack to get the OpenStack experience, just on a smaller scale. The figure shows several components, including Cinder, Nova, and Neutron, deployed on an arbitrary number of nodes. OpenStack uses codenames for its compo- nents, so the codename Cinder refers to storage components, Nova to compute components, and Neutron to network components. At this point it’s not important that you know the OpenStack components, the codenames, or what they do; this is explained in detail in chapter 4. What you need to know now is that OpenStack is made up of several core components that can be distributed among nodes (servers) based on the intended design. Information related to OpenStack design is also cov- ered in chapter 9. OpenStack services Networking Shared services Storage Compute Nova Neutron Cinder Controller (server 0) Neutron (server 2) VM Cinder (server 3) Nova (server 1) Figure 2.1 Multiserver OpenStack Licensed to tracy moore <[email protected]>
  • 49. 22 CHAPTER 2 Taking an OpenStack test-drive 2.1 What is DevStack? DevStack was created to make the job of deploying OpenStack in test and develop- ment environments quicker, easier, and more understandable, but the ease with which it allows users to deploy OpenStack makes it a natural starting point for learn- ing the framework. DevStack is a collection of documented Bash (command-line inter- preter) shell scripts that are used to prepare an environment for, configure, and deploy OpenStack. The choice of using a shell-scripting language for DevStack was deliberate. The code is intended to be read by humans and computers alike, and it’s used as a source of documentation by developers. Developers of OpenStack compo- nents can document dependencies outside of raw code segments, and users can understand how these dependencies must be provided in a working system. Despite the daunting size and complexity of the OpenStack framework, DevStack makes things look easy. Figure 2.2 may look like an oversimplification, but it’s an accu- rate illustration of the function of DevStack. Users with very little experience with virtualization, storage, networking, or— frankly—Linux, can quickly get a single-server OpenStack environment working. In many ways, DevStack does for OpenStack what OpenStack can do for infrastructure (as you learned in chapter 1): it simplifies and abstracts it. But I don’t want to give the impression that DevStack will be used for deploying OpenStack in production. In fact, in OpenStack circles it’s common to hear the phrase, “Friends don’t let friends run DevStack in production.” In chapters 5 through 8, we’ll explore manual deployments of OpenStack. This manual exercise will allow DevStack server (fresh Linux install) Execute DevStack Before: Install OpenStack software and related dependencies DevStack server (OpenStack deployment) After: Configure OpenStack components to work with each other Figure 2.2 DevStack will install and configure OpenStack on a single node automatically. Licensed to tracy moore <[email protected]>
  • 50. 23 Deploying DevStack you to learn about the configuration options and components of OpenStack and develop your ability to troubleshoot OpenStack deployments. In chapter 11, we’ll cover an automated deployment of OpenStack that’s intended to be used in a produc- tion environment. In this chapter, you’ll prepare an environment and deploy OpenStack using DevStack. You don’t need to know much about Linux, storage, or networking to deploy a working single-server OpenStack environment. Using this deployment, we’ll walk through ways you can interact with OpenStack, and this will give you some famil- iarity with both the components and the overall system. Then we’ll discuss the Open- Stack tenant model, which is how OpenStack logically separates, controls, and assigns resources to projects. In OpenStack terminology, tenant and project can be used inter- changeably. Finally, you’ll take what you’ve learned and create a virtual machine in a virtualization environment. Let’s get started stacking! 2.2 Deploying DevStack As the name suggests, DevStack is a development tool, and its related OpenStack code is under constant development. The support packages used by DevStack to deploy OpenStack code are also under development. When DevStack works, it works beauti- fully, but when it fails, things get ugly, and first-time users get very frustrated. Although a large part of this chapter is dedicated to deploying OpenStack using DevStack, there’s no way of knowing from day to day if a set of instructions will work with the lat- est versions of DevStack and OpenStack. The same DevStack instructions might fail on Monday but work on Friday. To reduce reader frustration, a companion virtual machine (VM) that contains a DevStack-deployed OpenStack instance is provided for this book. This VM can be used to test-drive OpenStack with limited hardware resources and effort. In the event that DevStack doesn’t work for you, simply make use of the companion VM. You can always try DevStack again when you have a better grasp of the overall OpenStack framework. If you end up using the companion VM, follow the instructions found in the sidebar entitled “Instructions for using the companion VM,” and then skip to section 2.3. What version of OpenStack does the companion VM use? The companion VM, along with examples in the first and second parts of this book, use the Icehouse release of OpenStack. Although Icehouse was already several revi- sions old at the time of writing, it was still the most widely deployed and arguably stable version of OpenStack. In addition, there are several Linux distributions and OpenStack production deployment tools that maintain the Icehouse release in long- term support. The third part of the book covers production deployment tools, which can be used to deploy several versions of OpenStack, including Icehouse or the most recent. Licensed to tracy moore <[email protected]>
  • 51. 24 CHAPTER 2 Taking an OpenStack test-drive ARE YOU A VAGRANT USER? Although covering the use of Vagrant is outside the scope of this book, there are several community projects that use Vagrant to deploy DevStack on VirtualBox (such as devstack-vagrant at https://github.com/ openstack-dev/devstack-vagrant and vagrant_devstack at https://github.com/ bcwaldon/vagrant_devstack). It’s recommended that you attempt to deploy OpenStack using DevStack, as outlined in the following steps. This process will provide you with quick access to the framework, while you build a foundational understanding of OpenStack components. Although DevStack can be used to get started quickly, the documented scripts hide nothing from you, and each OpenStack component is configurable based on your needs. It’s even possible to use DevStack to deploy a multiserver OpenStack environment. Instructions for using the companion VM Follow these steps: 1 Go to http://manning.com/bumgardner/ and download the VM image under Links. 2 Make sure you have VirtualBox installed (this VM image was tested with ver- sion 4.3.30). 3 Unzip the file devstack_icehouse_openstackinaction. 4 Double click the dev_stack_icehouse_openstackinaction.vbox file (or use command-line arguments—see the VirtualBox docs for details). 5 VirtualBox should now be launched, and you should see the devstack_icehouse_openstackinaction VM. 6 Start the devstack_icehouse_openstackinaction VM. 7 In the VM configuration, several ports are forwarded from the VM to your local host (IP=127.0.0.1). These ports include 2222 for SSH access to the VM and 8080 for access to the OpenStack Dashboard. 8 Once the VM is started, log in to the VM using the sysop ID and password u$osuser01 (for example, ssh -u [email protected] -p 2222). 9 Once on the console, switch to the stack user: sudo -i -u stack. 10 Execute the rejoin script: sudo /opt/devstack/rejoin-stack.sh. 11 You’ll now see screens related to the output of OpenStack components. To select a specific screen, hold and release Control-+, and then press " (double- quotes). You’ll be presented with a list of screens. Here are a couple of tips for accessing OpenStack:  If you want to access the VM for working with the OpenStack CLI, use the instructions found in section 3.1, keeping in mind that the internal address of the OpenStack VM instance is 10.0.2.32.  If you want to access the VM for working with the Dashboard, access the URL http://127.0.0.1:8080 with the username admin and the password devstack. Licensed to tracy moore <[email protected]>
  • 52. 25 Deploying DevStack In this chapter, we’ll focus on deploying all components to a single server. This approach reduces the configuration problems you might experience before you fully understand the OpenStack component distribution model, which is discussed in chapter 3. Once you understand the interaction of components on a single server, deploying a multiserver configuration is far more understandable. In part 2 of this book, we’ll discuss manual deployments, and in part 3 we’ll cover automated deploy- ments of multiserver OpenStack configurations. To get started, you’ll need a single physical or virtual server running a supported distribution of Linux. 2.2.1 Creating the server For your DevStack deployment, you’ll want to start with a fresh install of Linux. That will ensure that dependency conflicts are avoided altogether. I recommend using Ubuntu 14.04 (Trusty Tahr), which is one of the most widely documented and tested Linux distributions for working with OpenStack. The examples presented in this chapter are based on Ubuntu 14.04, but users with experience in other distributions should be able to adapt the examples. Scripts and configuration files for this and other chapters can be found in the source code for this book: https://github.com/codybum/OpenStackInAction. I recommend using physical hardware for the deployment if possible. Although it’s possible to run OpenStack “nested” in a virtual environment, the VMs deployed in this nested OpenStack environment are notably slow. In this context, I define a VM as vir- tual hardware running a full operating system. I say that OpenStack (the hypervisor) is nested if you’re trying to use a VM to virtualize another VM. If no hardware is avail- able, the deployment process will be the same, with the exception of the noted perfor- mance issues. A walk-through guide for a basic install of Ubuntu 14.04 can be found in the appendix. LINUX DISTRIBUTIONS Although Ubuntu is widely used, Fedora and CentOS/ RHEL are also well documented. Additional Linux flavors such as OpenSUSE and Debian provide OpenStack packages and are known to work. OpenStack on VMs (nested virtualization) Hypervisors, or virtual machine monitors (VMMs), live between physical hardware and virtual machines. The hypervisor emulates the operations of the physical hardware, letting the operating system think that it has exclusive access to the underlying sys- tem. Hypervisors can take advantage of CPU virtualization extensions, allowing spe- cific operations that would normally be emulated in software to be offloaded to the CPU directly. This greatly increases performance. OpenStack manages the hypervisor to provide virtual infrastructure. When the hyper- visor managed by OpenStack is run on a VM, CPU visualization extensions are gen- erally not available. All instructions that would normally be offloaded to hardware are emulated (via QEMU, an open source hypervisor) in software. Pure software emula- tion of hardware is extremely slow and shouldn’t be used in practice. Licensed to tracy moore <[email protected]>
  • 53. 26 CHAPTER 2 Taking an OpenStack test-drive 2.2.2 Preparing the server environment As you might have gathered from figure 2.2, DevStack will install and configure the entire OpenStack suite for you. The process of deploying the OpenStack framework, regardless of the method, is called stacking. The stacking process will retrieve and con- figure OpenStack software and related package dependencies from online reposito- ries. OpenStack dependencies will be satisfied by the Advanced Packaging Tool (APT), which along with packages is provided by the Linux distribution. You’ll use the sudo command to execute commands with the security privileges of the root user. According to Wikipedia, the name sudo is a concatenation of “su” (substitute user) and “do.” Sudo privileges give the user the ability to execute a command with the security privileges of another user. The other user is typically the root user, so sudo privileges are exactly what you need. The user you created when you installed your operating system would have the appropriate privileges. In the following examples, the sysop user will be used as the normal user with sudo privileges. The first time you use the sudo command, you’ll be prompted again for your password, but don’t be confused: this is the same password you used for your nor- mal account. Subsequent sudo commands executed within a timeout period (which, for Ubuntu 14.04, is 15 minutes) won’t prompt for a password. The APT database used to determine package availability and dependencies is maintained locally, so by the time you install your Linux distribution, it’s already out of date. Your first step in preparing the environment is to update your APT package information from online sources. From a shell prompt, update your APT packages as shown in the following listing. This process won’t update any packages, but any pack- age installed after the update will be current. sysop@devstack:~$ sudo apt-get -y update [sudo] password for sysop: Hit http://us.archive.ubuntu.com precise Release.gpg ... Fetched 3,933 kB in 1s (2,143 kB/s) Reading package lists... Done Listing 2.1 Updating packages What user are you running as? Right now, you should be running as a user with sudo privileges, but not as the root user. There are various permissions issues related to using the root user with a default Ubuntu 14.04 install and DevStack, so it shouldn’t be used. Once the environment is prepared, you can create and then switch to the stack user for the deployment of DevStack. Specific user types used in this chapter will be explained later in this section. Updates local package information Licensed to tracy moore <[email protected]>
  • 54. 27 Deploying DevStack Your local package database is now up to date, as the first line of code synchronizes the local package information with the newest online sources. After the update, it’s recommended that you upgrade packages with the following command. sudo apt-get -y upgrade This upgrade step isn’t necessary from the DevStack component standpoint, but a DevStack dependency could depend on a kernel update, which would require an update and reboot. If you proceed with the upgrade step, it’s critical you reboot after the upgrade. DevStack doesn’t use the APT system to install OpenStack components, despite the packages being available in its repository. This choice is understandable given the need for component flexibility in a development and testing system. For example, you might run several OpenStack components from a stable release, along with a few oth- ers from a development branch. This level of modularity isn’t generally possible with package management systems. In place of using a package management system provided by the Linux distribu- tion, DevStack retrieves OpenStack components directly from online OpenStack repositories. Git, a source revision control utility, is used to access OpenStack reposito- ries, so your next step is to install the git client, as shown in the next listing. The client will be used both to retrieve the DevStack scripts and later by DevStack to retrieve OpenStack components. sysop@devstack:~$ sudo apt-get -y install git Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: git-man liberror-perl Suggested packages: git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs git-svn git-email git-gui gitk gitweb The following NEW packages will be installed: git git-man liberror-perl 0 upgraded, 3 newly installed, 0 to remove and 112 not upgraded. ... Unpacking git (from .../git_1%3a1.7.9.5-1_amd64.deb) ... Processing triggers for man-db ... Setting up liberror-perl (0.17-1) ... Setting up git-man (1:1.7.9.5-1) ... Setting up git (1:1.7.9.5-1) ... Now that the git client is installed, you can proceed with retrieving the DevStack scripts. Listing 2.2 Upgrading packages Listing 2.3 Installing git Installing git from the package management system Licensed to tracy moore <[email protected]>
  • 55. Random documents with unrelated content Scribd suggests to you:
  • 56. MY BLANKET-ROLL A warm old friend is my blanket-roll We've been pals for many a year; And when I look back at the days gone by I almost drop a tear. A warmer friend I never had Than you! old roll of a bed, And after I've sung all your praises I can, Not half enough has been said. You were a friend in summer heat, A friend in winter's snow; And whenever the wanderlust seized me, You were always ready to go. From the sunny South to the Hudson Bay Or the land of the Western Sea; Then to Alaska's frozen shores You have traveled along with me. Now you're getting worn, and your tarp is torn, You have stood too much hard weather; But I am the same, and it seems a shame, Yet,—we are growing old together!
  • 57. You're a good old friend, I will say again, And you, I will not discard. And as long as the Lord will let me roam I will keep you for my pard. But some day I'll cross to the other side, Where we all some day must go; Where there is no wind, or no more rain, And unheard of is the snow; And when I take that last long trip To that eternal goal; My dying wish is to snuggle up In you,—my blanket-roll. THE CHINOOK WIND There's a soft warm breeze upon the air, 'Tis moaning soft and low, 'Tis cold and chill upon the hill, Yet it's melting all the snow. The Indians all tell us, That many moons gone by Right here within the mountains, The North wind it did cry.
  • 58. The Chinook wind made answer, And said, "I'm not afraid," And then there raged a battle, For a beautiful Indian Maid. The Chinook wind was the victor, The North wind went away, But the Maiden fair had died of despair, And deep in her grave she lay. So every year his voice we hear, Calling so soft and sweet, Searching the grave of the one he would save, Melting the snow at our feet. 'Tis the lover's wind, so the Indians say, And his heart is ever sad, But they welcome his coming, every one, For the North wind is gone and they're glad. THE PALE HORSE When I saddle the pale horse, to take my last ride, To the home ranch, over the Great Divide, Will I find the trail blazed all the way, A place to camp, at the close of day?
  • 59. Will the trail be smooth, and the weather fair? (For no one has ever come back from there) But the good book says, if we shoot square, "Have no fear of the trails over there!" An unseen hand guides the pale horse straight, O'er the summit height, to the home ranch gate, Where we all must meet the Boss Supreme, And all will be one pleasant dream. No herding of dogies on frost night, Or wild stampede in the morning's light. No cinching of saddles, or shipping of steers. No sorrow or trouble or bitter tears. But the sun will shine, and cool breezes blow, Over a range ever free from snow; And for those who lived as He who died To save us riders—that Great Divide Will be only a foothill, so very low; That on its summit sweet flowers do grow, And the trail itself will be smooth all the way, With a place to camp at the close of day. When at last I reach that Home Ranch gate, Peter will say, "You sure shot straight," And the gate will open for me, I know,
  • 60. Saying, "Pull off your saddle, and let him go!" THE SNOWSTORM The snow has started falling, 'Tis falling o'er mountain and plain, The trees bend under their burden, Shake free, and are draped again. While I sit here safe in my cabin Where all is cozy and warm, I can peer into the future, And view the woods after the storm. I can see the deer seeking the low-lands, In search of their daily food, I can see the hunter's eyes glisten, For he knows that the tracking is good. The lion dogs leap in their kennels, There is barking and wagging of tails, The hunter examines his snow-shoes, And dreams of "kills" and of trails. The bear trails lead far up the mountain Where the cliffs are rugged and steep,
  • 61. And there is some cave in the ledges, They're beginning their winter's sleep. They will sleep till the wild geese awaken them, As they take their Northern flight, Then again they will seek the hill-sides Where the sun shines clear and bright. Now the wild geese honk as they leave us, Followed close by wind-driven snow; They are telling all of us trappers, But, of course, all us trappers know That whenever the wild geese go homing, It is time that our traps are set;— Snow, I have been waiting for you! You are a welcome visitor—you bet. SILENT VOICES OF THE NIGHT When the shades of evening gather, And night's curtain's dropping low, And the stars they dot the heavens With their candles, all aglow;— Then to me there come the voices
  • 62. On each cool and fragrant breeze, Stealing in from every quarter, Creeping through among the trees. And these voices, ever silent, Scarcely heard, their steps so light; Yet, to me are ever welcome; Silent voices of the night. When within the noisy city, With its surging, busy crowd, The voices keep a-calling, And they seem to call so loud. I can hear them pleading, coaxing, And to me they call so plain, And they have the self-same message, "Yes, we want you back again." Voices of my little camp-fire, Voices of the woods and hills, Voices from the snow-capped mountains, Voices from the crystal-rills; And I ever hear them calling, 'Till I feel like taking flight, Back to where the voices whisper,— Silent voices of the night.
  • 63. Oh! those voices, how I love them! Whether near or far away, And they ask me not to leave them, "Won't you please come back and stay?" "Come and we will try to please you," Calling from their wildwood home, "Yes, my loved ones, I am coming, And from you no more will roam." THE PACK TRAIN Did you hear that far off tinkle In the canyon far below? Listen! can't you hear it? It is ringing very slow. 'Tis the bell upon the lead-mare, As she's winding up the trail, Guiding all the other horses, Hitched to one another's tail. They are headed for the camps, Where they've lately made a find; And the pack trains are all busy Carrying grubstake to the mine.
  • 64. Every horse is heavy loaded; Ask me how that I can tell? That is easy for the packer, 'Tis the tinkle of the bell. Away back in the eighties When they made the Wild Horse strike;— We were in there with a pack train, Me and old Pack Saddle Mike. Mike could throw more knots and hitches Than an expert sailor's crew, Was a wizard with a lash-rope, Knew what every horse could do. Well, we packed for them there miners, 'Till the weather got so cold It would freeze the lash-ropes solid, And 'twas hard to make them hold; It was hard to cinch a saddle, Harder still to cinch a pack, But the cold we never heeded; We were making piles of "jack." We left camp one frosty morning, Started for our winter range; Two hard days to reach the summit,
  • 65. Then the weather took a change, Hurled the snow into our faces, Cut our eyes like broken glass, And we had to stop the horses, While the snow fell thick and fast. For two days we held the horses On that mountain in the snow, While the mercury was flirting Close to forty or more below. Well, we had to shoot the horses, Better far that, than let them die, Made us snow-shoes from the saddles And climbed o'er the summit high. When at last we reached the ranches, Almost dead from wind and snow; Mike took down with the pneumonia, And the next day had to go. While he lay upon his pillow, All his body racked with pain, He'd keep talking of his horses, Calling each one by its name. Then he called me to his bedside,
  • 66. And he said, "I'm going to ride, And I know I'll find the horses Over on the other side." MOONLIGHT When the moon has climbed the heavens, And the sun has gone to rest, And the evening shadows gather, That's the time I love the best. Seated by our little camp-fire, In the forest dark and tall, With the silence all around us, Save the roar of water-fall— Then the deer steal in the meadows, Velvet shod, so still are they, While among the waving grass-tops Spotted fawns are there at play. Then to me there comes a memory, Of the days, now past and gone, When my life was just in blossom, I was young and life was dawn.
  • 67. When I roamed the virgin forest, Just as free as birds that fly, With the moonbeams for a candle, And my cover was the sky. Still the moon shines just as brightly, And the stars are just as clear, But I see I'm growing older Like the ending of the year. Frost is gathering on my temple, Soon my hair will be like snow, But His will we all must follow And some day we all must go. Yet, I'm ever, ever hoping That upon those shores of gold, We will have the self-same moonlight As we had in the days of old. MY DREAM I dreamed of a beautiful forest That lies back in the hills, With lakes of crystal clearness And such noisy mountain rills.
  • 68. Where there are no trails of trappers, Where the game unchallenged roam— Could I only find that forest, That's the place I'd call my home. There were beaver, lynx and marten, Elk so stately, and so tall, And such sunlit open hillsides, And such lovely water-fall. There was deep grass in the meadows, There were breezes, sweet and cool, There were trout, so lazy, swimming In each clear and crystal pool. There the birds were singing sweetly Their sweet, yet plaintive song, That told me of God's great wonders There among their happy throng. There were deer-trails, without number, Bear-tracks everywhere were seen, And the squirrels were never silent In those forests dark and green. There the wild ducks they were nesting, There the loon called on the pond, There the snow-caps rose to sky-line
  • 69. In the distance far beyond. Then I was suddenly wakened, Grabbed by the shoulder so hard, "Roll out now, breakfast is ready!" It was Jack, my "bunkie" and "pard." THE OLD FRYING PAN You may talk of your broilers, both single and double, Your roasters and toasters, they're all lots of trouble; But when out in the hills, just find if you can, Any kind of a dish like the old frying pan. Over a campfire you don't need a stove, Out in the hills, the place we all love, Such hotcakes they never were tasted by man, With many the thanks to the old frying pan. When the trout are all fried to a rich golden brown, I know old epicures would look, with a frown At the meal set before me; dispute it who can, With naught for a plate but the old frying pan. With the venison cooked, the potatoes all fried,
  • 70. Bannocks like bed-quilts, with coffee beside, You could eat till you busted, dispute it who can; Was dish e'er invented like the old frying pan? Many a miner, in the good days of old, Way back in the foothills a-searching for gold Deep in some creek-bed, for the rich yellow sand, Has panned out a grub-stake with the old frying pan. There's been cattle rustlers, when in a great hurry Used no other iron, but why should they worry, For many and many and many the brand, That has been blotched out with an old frying pan. So your praises I'll shout, both far, wide and high, That you're the best dish, till the day that I die; Why, there's many a woman "cleaned up" on her man With no other club but the old frying pan. THE RAINY DAY The hills are smothered in a fog, The sky is somber-grey, The rain is coming in a mist,
  • 71. A cheerless rainy day. To me the trees are weeping, With their branches drooping low, Their tears are steady falling, With heavy drops, yet slow. The birds they all are silent, And not one sweet silvery note, Re-echoes through the forest, From our feathered songster's throat. Not one thing to break the silence, Save the rain-drops as they fall, As I watch the clouds roll onward, Or climb the mountain wall. And somehow I feel so happy, Though the world seems full of pain, So I let my gaze go farther, When the sun will shine again. The trees and flowers and grasses, They will all the fresher seem, And the laughter will be louder From the rippling mountain stream. The birds will sing far sweeter
  • 72. Than they did in days gone by, The air will be the fresher, And of bluer tint the sky. We all do love the sunshine, We love the moonlight, too, We also love the twilight, And the falling of the dew; But I never growl or grumble, Only this I wish to say;— That this world would be a desert Without you, oh! Rainy Day! THE STREAMLET Tell me little streamlet, As you onward flow; Why in such a hurry, Whither do you go? The stream slowed up a moment Within the alder's shade; "I go to join my brothers, And of us are rivers made.
  • 73. We water the hills and meadows, We turn the mills' great wheel, We carry logs to the mill-dam, Where they're cut by teeth of steel. We furnish power for the motor That pulls the railroad train; And after they have used our power, It is given back again. So you see we enjoy working, That's why we laugh all day, For when one's heart is in one's work, Why! work is greatest play! And growing broader and deeper, We carry ships on our breasts, 'Till at last we reach the ocean, And there we have time to rest." ED ENDERS' GRAVE When old Ed Enders first took ill, 'Twas first a fever and then a chill, His respiration was very weak, Throat so clogged he could scarcely speak.
  • 74. The doctors prescribed all kinds of dope And hotwater bottles, but had no hope. Then old Bill Wallace and old Hank Lee, And old Dad Lyons got on a spree; And when half full old Bill did cry, And says, "Old Ed is about to die. I ain't no doctor, I can't shoot pills, I've never prescribed for no one's ills But I do believe we can pull Ed through, If you all will help me;—I mean you two. If old Ed dies, just stop and think, He will never buy us another drink! He has the money in that there claim, If we let him die it will be a shame. Old Ed is a feller no one can ride, He will always take the other side. If you say no, why he'll say 'yes' Just to be contrary up to the last. So now we'll try old Ed to save,— A committee of three to pick his grave. As we can't agree where to make his bed, We will have to leave it to poor old Ed." "It will work," says Dad, with a tear in his eye,
  • 75. "And I for one am ready to try." Then up spoke Hank, "This ain't no joke, Fill up the glasses and then we'll smoke." So the three went down to Old Ed's room, Faces as solemn as any tomb. Old Ed says, "Boys, I'm on my way!" Bill says, "You'll never see the day, And as we were idle, and time to save, We've been picking a place to dig your grave. Now Hank wants to plant you in the shade, Where the trail climbs up that steepest grade, For you hunted the shade when the sun was hot, And the land is worthless in that there spot. But Dad wants you laid on that sunny slope, There's a hole all ready in that old stope. You hunted the sun when the weather was cold, And he wants you planted in that old hole. But I says, 'Boys, it is my wish, To plant him where he liked to fish; For he always fished at the same old hole, Too lazy to walk and carry his pole.' Now Ed, we as a committee of three,
  • 76. Will leave it to you, we can't agree." Old Ed looked up from his bed of pain, Looked at them over and over again. What he said to them won't do to tell, At least he said, "You can go to hell! You won't find the likes wherever you roam, Rake the hot place over with a fine-tooth comb. Such a bunch as you,—right here I swear, Pick what you damn please, I won't be there." Now listen, dear folks, I am here to tell, In just three days old Ed got well. SPRINGTIME When sun begins to melt the snow And the birds commence to sing, And the days are getting longer, Then we know 'tis surely spring. It is then you get a fever, But your temp'ture does not raise, It's a kind of lazy feeling On those balmy warm spring days.
  • 77. And it starts your mind to working, While your thoughts commence to stray, To the hills and lakes and rivers, And green woodlands far away. And it makes you feel so drowsy That you long to go to sleep, Out beneath some tall green pine tree, Where the shadows cool and deep Just seem to be a-calling, While the stream beneath the hill Is chuckling with glad laughter, And I seem to hear it still. 'Tis then memory breaks its halter And stampedes and starts to go, Till it stops in childhood's pasture In the days of long ago; Where the birds were all a-singing, Songs so rare and pure and sweet, Squirrel's chatter in the tree-tops,— Flowers blooming at your feet. Then the city seems a prison, While brick walls like prison bars, Seem to reach clear up to heaven,
  • 78. Till they mingle with the stars. Still I do not call a doctor, For he cannot ease, I know, Any longings for the wildwood Of the days of long ago. THE CALL OF NATURE My traps are getting rusty Here upon my cabin wall; The leaves are turning golden, 'Tis already early fall. My snow-shoes need repairing, And so does my canoe; My dogs are begging, coaxing, And there's just one thing to do. I'll have to quit this cruising, And a-looking over land, And lay aside my compass, They can get another man. For a section-line can't hold me, I despise a "bearing" tree,
  • 79. When I hear the wild geese honking, And I know they're calling me. I'll go back into the mountains, Back of Uncle Sam's survey, Where the only line's a trap-line, And I'm going there to stay; Where the only trails are game-trails, Where the moose unchallenged roam, There I'll build for me a cabin And I'll call that cabin "home." In the wildest, greenest forest, That no man has come to spoil, With his sawmills and his railroads, And his many slaves of toil— Where the streams are not polluted, Stopped by dams of mine or mill, Where everything is Nature's And the rush of life is still. So I'll send my resignation, And I know the Boss will say, "Won't you stay until the winter, And of course, we'll raise your pay."
  • 80. But no salary can hold me, I have heard that line before;— So here's good-bye to cruising From today for evermore. MY REQUEST When I leave this old dreary world To cross to the Great Unknown; Don't bury me in a costly tomb Or raise a shaft of stone— But lay me on some hill-side, Mid the forest that I love; Where the wild flowers bloom around me And the eagle soars above: With an ancient ledge above me, One that is all moss-grown; These words inscribed upon it, "He is one of Nature's own. One who loved the forest, One who loved the hills, Although his soul has taken flight, His foot-steps echo still."
  • 81. MEMORY'S CAMP-FIRE Come with me to the forest tall, And spend a few of autumn days, And study nature at first hand, Learn how they lived in early days. Take up your pack and rod and gun, And once again to seek the wild, Leave all your sorrows far behind, And be as carefree as a child. Then memory's camp-fire kindle bright And as you feel its friendly blaze, Just let your mind go back o'er time To happy scenes of early days. When you yourself were but a child That roamed at will the woodland o'er; Oh! how your heart did exultant leap Always new country to explore. Then take your gun from memory's rack Which for many moons has forgotten hung And see if you again can sing, The songs that for years, you've left unsung. Then tell some tale of early days Of when you hunted in the glade,
  • 82. Or when you caught the bear asleep, Or lured the trout from the alder shade. And as each spark arises high From this camp-fire's golden light, The moon will shed its yellow rays On distant snow-caps clear and bright. And should these lines make you recall Some happy days 'neath skies so fair, To me this little camp-fire smoke Will be sweet incense on the air. INDIAN TRAILS Creeping along the mountain, Or winding along the stream, Each year growing dimmer and dimmer, Then fading away like a dream— Almost impossible to follow, Still in the days long ago, These trails were the only highways And whither did they go? Some lead deep in the forest Where they hunted the deer and bear,
  • 83. Where they dried the meat for food And skins made them clothes to wear. While some lead to lakes and rivers Where the loon and wild geese call, To rice-fields in late October When the snow commenced to fall,— While some climbed high on the mountain Where the huckleberries grew, And ripened upon the sunny slopes, Sweetened by mountain dew,— Others found way to the border tribes Where the war-whoops loud and shrill, Echoed along the cliffs and crags,— Me-thinks I can hear them still. Now only a scar on some tree remains Of the trails of the long ago, The summer comes, the fall appears, With winter's frost and snow. And as each season passes, Leaves dimmer every trace, I can see the trails a-passing, The same as the Indian race.
  • 84. WINTER Winter has descended o'er mountain and hill, His mantle of snow has spread; The grass and flowers are withered and brown, The leaves on the bushes are dead. The streams all are silent in icy embrace, They are held in his bondage so strong: Not even one faint murmur is heard, Where they laughed so loud and so long. The trees are draped in a mantle of snow, That clings to their boughs like a shroud, And the mountains cold and still and white Appear like a light fleecy cloud. The cattle have come from their good summer range, The sheep have all entered the fold, Winter, they know, is starting its slumber, And the wind is so searching and cold. The logs in the fire-place crackle and glow— Our cabin's all cozy and warm, The dogs are a-sleeping,—content as can be,
  • 85. So why worry o'er winter's storm. PASSING OF THE RANGE Today as I gaze o'er the prairie That stretches away into space, I look back only a few short years At the change that's taken place. When I was one of the cowboys, All our time was spent on the range; Now I don't see even one rider,— 'Tis then I feel lonesome and strange. No trail-herds with plaintive lowing, No shouting, or singing to steers, No sound of horses mad galloping,— It almost moves me to tears. For then we rode stirrup to stirrup, While the jingle of spurs played a tune; Oh! could I go back to the round-up For a day at the cow-camp in June. When the grass was so green on the prairie, With the cattle all sleek and so fat,
  • 86. Each rider all dressed for hard riding, With high heels and chaps and wide hat. Each with his string of horses, Some broken and others half wild, The wilder the better he liked them, Happy and carefree as a child;— Wild as the steers that they wrangled, Hardy as the bronchos they rode, Ready to take others' troubles, Or carry another one's load. Those were the real days I tell you— Night-herding by light of the stars; Three weeks drive to the stockyards Where we loaded the steers in the cars. Then when the loading was finished And the cattle were on their way, The Boss called the bunch together And gave us our season's pay. We were just like a bunch of children, And many an old-timer like me Recalls being served in his saddle, When on a periodical spree.
  • 87. Now, cattle are held in pastures, They no longer roam wild and free,— And the cowboys are gone forever, Leaving only a memory. And as each one crosses the border That is over the Great Divide, I hope the bunk-house is ample And none will be left outside. THE CABIN OF MYSTERY No trail leads to this cabin, Not even a blaze on a tree, Hidden beneath the tall dark firs Is this cabin of mystery. No one knew its builder Or when this cabin was made, Not one of the oldest trappers Can explain or give any aid. The stove still stands in the corner, The table all neat and clean And the cupboard still holds its grubstake As fine as ever was seen.
  • 88. Welcome to our website – the perfect destination for book lovers and knowledge seekers. We believe that every book holds a new world, offering opportunities for learning, discovery, and personal growth. That’s why we are dedicated to bringing you a diverse collection of books, ranging from classic literature and specialized publications to self-development guides and children's books. More than just a book-buying platform, we strive to be a bridge connecting you with timeless cultural and intellectual values. With an elegant, user-friendly interface and a smart search system, you can quickly find the books that best suit your interests. Additionally, our special promotions and home delivery services help you save time and fully enjoy the joy of reading. Join us on a journey of knowledge exploration, passion nurturing, and personal growth every day! ebookbell.com