Deploying To Openshift A Guide For Busy Developers Graham Dumpleton

hargesaryawq 9 views 50 slides May 11, 2025
Slide 1
Slide 1 of 50
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50

About This Presentation

Deploying To Openshift A Guide For Busy Developers Graham Dumpleton
Deploying To Openshift A Guide For Busy Developers Graham Dumpleton
Deploying To Openshift A Guide For Busy Developers Graham Dumpleton


Slide Content

Deploying To Openshift A Guide For Busy
Developers Graham Dumpleton download
https://ebookbell.com/product/deploying-to-openshift-a-guide-for-
busy-developers-graham-dumpleton-46943758
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.
Deploying To Openshift A Guide For Busy Developers Graham Dumpleton
https://ebookbell.com/product/deploying-to-openshift-a-guide-for-busy-
developers-graham-dumpleton-61856120
Deploying To Openshift First Edition Graham Dumpleton
https://ebookbell.com/product/deploying-to-openshift-first-edition-
graham-dumpleton-49182688
The Kubernetes Bible The Definitive Guide To Deploying And Managing
Kubernetes Across Major Cloud Platforms Nassim Tylenda Kebbani Piotr
Mckendrick
https://ebookbell.com/product/the-kubernetes-bible-the-definitive-
guide-to-deploying-and-managing-kubernetes-across-major-cloud-
platforms-nassim-tylenda-kebbani-piotr-mckendrick-38490246
Geological Co2 Storage Characterization The Key To Deploying Clean
Fossil Energy Technology 1st Edition Ronald C Surdam Auth
https://ebookbell.com/product/geological-co2-storage-characterization-
the-key-to-deploying-clean-fossil-energy-technology-1st-edition-
ronald-c-surdam-auth-4593714

Microsoft Intune An Administrators Guide To Deploying Applications
Using Powershell Owen Smith
https://ebookbell.com/product/microsoft-intune-an-administrators-
guide-to-deploying-applications-using-powershell-owen-smith-37290138
Mulesoft For Salesforce Developers A Practitioners Guide To Deploying
Mulesoft Apis And Integrations For Salesforce Enterprise Solutions
Arul Christhuraj Alphonse
https://ebookbell.com/product/mulesoft-for-salesforce-developers-a-
practitioners-guide-to-deploying-mulesoft-apis-and-integrations-for-
salesforce-enterprise-solutions-arul-christhuraj-alphonse-46507700
Enterprise Ai In The Cloud A Practical Guide To Deploying Endtoend
Machine Learning And Chatgpt Solutions Tech Today 1st Edition Jay
https://ebookbell.com/product/enterprise-ai-in-the-cloud-a-practical-
guide-to-deploying-endtoend-machine-learning-and-chatgpt-solutions-
tech-today-1st-edition-jay-54845836
Enterprise Ai In The Cloud A Practical Guide To Deploying Endtoend
Machine Learning And Chatgpt Solutions Rabi Jay
https://ebookbell.com/product/enterprise-ai-in-the-cloud-a-practical-
guide-to-deploying-endtoend-machine-learning-and-chatgpt-solutions-
rabi-jay-54874250
Mac Os X Deployment V106 A Guide To Deploying And Maintaining Mac Os X
And Mac Os X Software A Guide To Deploying And X V106 Snow Leopard
Sxstems And Software White
https://ebookbell.com/product/mac-os-x-deployment-v106-a-guide-to-
deploying-and-maintaining-mac-os-x-and-mac-os-x-software-a-guide-to-
deploying-and-x-v106-snow-leopard-sxstems-and-software-white-20016772

Graham Dumpleton
Deploying to
OpenShift
A GUIDE FOR BUSY DEVELOPERS
C
o
m
p
l
i
m
e
n
t
s

o
f

Graham Dumpleton
Deploying to OpenShift
A Guide for Busy Developers
BostonFarnhamSebastopolTokyoBeijingBostonFarnhamSebastopolTokyoBeijing

978-1-492-03248-9
[LSI]
Deploying to OpenShift
by Graham Dumpleton
Copyright © 2018 Red Hat, Inc. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are
also available for most titles (http://oreilly.com/safari). For more information, contact our corporate/insti‐
tutional sales department: 800-998-9938 or [email protected].
Editors: Virginia Wilson and Nikki McDonald
Production Editor: Melanie Yarbrough
Copyeditor: Dwight Ramsey
Proofreader: Rachel Head
Indexer: Judy McConville
Interior Designer: David Futato
Cover Designer: Karen Montgomery
Illustrator: Rebecca Demarest
April 2018:
First Edition
Revision History for the First Edition
2018-03-05: First Release
This work is part of a collaboration between O’Reilly and Red Hat. See our statement of editorial independ‐
ence.
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Deploying to OpenShift, the cover
image, and related trade dress are trademarks of O’Reilly Media, Inc.
While the publisher and the author have used good faith efforts to ensure that the information and
instructions contained in this work are accurate, the publisher and the author disclaim all responsibility
for errors or omissions, including without limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and instructions contained in this work is at your own
risk. If any code samples or other technology this work contains or describes is subject to open source
licenses or the intellectual property rights of others, it is your responsibility to ensure that your use
thereof complies with such licenses and/or rights.

Table of Contents
Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1.
The OpenShift Container Platform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
The Role of Containers 2
Orchestrating at Scale 3
Containers as a Service 4
Platform as a Service 4
Deploying Your Application 5
2.
Running an OpenShift Cluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Using OpenShift Online 7
Installing OpenShift Origin 8
Launching Using Minishift 8
Running oc cluster up 10
Summary 11
3.
Accessing the OpenShift Cluster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Using the Web Console 13
Using the Command Line 14
Using the OpenShift REST API 17
Summary 18
4.
Adding Applications to a Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The Role of a Project 19
Creating a Project 20
Adding a Collaborator 22
Deploying Applications 23
Deploying from the Catalog 24
iii

Deploying an Image 26
Deploying a Set of Resources 27
Summary 28
5.
Deploying Applications from Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Deploying Your First Image 29
Scaling Up the Application 33
Runtime Configuration 33
Deleting the Application 34
Deploying Using the Web Console 34
Importing an Image 36
Pushing to the Registry 37
Images and Security 38
Summary 38
6.
Building and Deploying from Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
The Source Build Strategy 42
Deploying from Source 42
Creating a Separate Build 43
Triggering a New Build 45
Building from a Local Source 46
Binary Input Builds 46
Testing the Container Image 47
Build and Runtime Configuration 48
Summary 49
7.
Building an Image from a Docker?le. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
The Docker Build Strategy 51
Security and Docker Builds 52
Creating the Build 52
Deploying the Image 53
Build and Runtime Configuration 53
Using an Inline Dockerfile 55
Summary 56
8.
Understanding Source-to-Image Builders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
The Source-to-Image Project 57
Building the Application Image 58
Assembling the Source Code 59
Creating an S2I Builder Image 60
Building the S2I Builder Image 62
Using the S2I Builder with OpenShift 62
iv | Table of Contents

Adding an S2I Builder to the Catalog 63
Summary 64
9.
Customizing Source-to-Image Builds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Using Environment Variables 65
Overriding the Builder Scripts 66
Read-Only Code Repositories 68
Overriding the Runtime Image 68
Updating the Image Metadata 69
Summary 71
10.
Using Incremental and Chained Builds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Faster Builds Using Caching 73
Using Incremental Builds 74
Saving Artifacts from a Build 75
Restoring the Build Artifacts 75
Enabling Incremental Builds 76
Using Chained Builds 77
Summary 78
11.
Webhooks and Build Automation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Using a Hosted Git Repository 79
Accessing a Private Git Repository 80
Adding a Repository Webhook 82
Customized Build Triggers 83
Summary 83
12.
Con?guration and Secrets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Passing Environment Variables 85
Working with Configuration Files 87
Handling of Secret Information 89
Deleting Configuration and Secrets 91
Summary 92
13.
Services, Networking, and Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Containers and Pods 93
Services and Endpoints 94
Connecting Between Projects 96
Creating External Routes 96
Using Secure Connections 98
Internal and External Ports 99
Exposing Non-HTTP Services 100
Table of Contents | v

Local Port Forwarding 100
Summary 101
14.
Working with Persistent Storage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Types of Persistent Storage 103
Claiming a Persistent Volume 105
Unmounting a Persistent Volume 106
Reusing a Persistent Volume Claim 106
Sharing Between Applications 106
Sharing Between Containers 107
Deleting a Persistent Volume 107
Copying Data to a Volume 108
Summary 108
15.
Resource Quotas and Limits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
What Is Managed by Quotas 109
Quotas versus Limit Ranges 111
Requests Versus Limits 112
Resource Requirements 113
Overriding Build Resources 114
Summary 114
16.
Monitoring Application Health. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
The Role of a Readiness Probe 115
The Role of a Liveness Probe 116
Using an HTTP Request 116
Using a Container Command 117
Using a Socket Connection 118
Probe Frequency and Timeouts 118
Summary 120
17.
Application Lifecycle Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Deployment Strategies 121
Rolling Deployment 122
Recreate Deployment 123
Custom Deployments 124
Container Runtime Hooks 125
Init Containers 126
Summary 127
18.
Logging, Monitoring, and Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Viewing the Build Logs 129
vi | Table of Contents

Viewing Application Logs 130
Monitoring Resource Objects 131
Monitoring System Events 132
Viewing Container Metrics 132
Running an Interactive Shell 133
Debugging Startup Failures 133
Summary 134
Afterword. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Table of Contents | vii

Preface
OpenShift implements a polyglot platform for the deployment of web applications
and services. It uses containers in conjunction with a Security-Enhanced Linux (SELi‐
nux) environment to implement a secure multitenant environment suitable for the
enterprise. You can deploy OpenShift in your own infrastructure or on public clouds,
or you can use OpenShift Online, Red Hat’s cloud-based hosting service.
The latest version of OpenShift uses the industry-standard Kubernetes platform from
the Cloud Native Computing Foundation (CNCF) for managing and running appli‐
cations within containers at scale. The ability to run any application image is ensured
through adherence to image and runtime specifications from the Open Container
Initiative (OCI).
OpenShift offers you the ability to easily deploy your web application code directly
using a library of predefined image builders, or you can bring your own container
images. With support in OpenShift for features such as persistent volumes, you are
not limited to just running stateless 12-factor or cloud-native applications. Using
OpenShift, you can also deploy databases and many legacy applications that you
otherwise would not be able to run on a traditional Platform as a Service (PaaS) offer‐
ing.
OpenShift is a complete container application platform. It is a modern take on the
traditional PaaS that you can use with your existing applications, but that also pro‐
vides the power and flexibility to meet future needs.
Who Should Read This Book
This book is intended for developers who are evaluating OpenShift, or have already
decided to use it, and who seek a more in-depth knowledge of the core features of
OpenShift that are used to deploy applications. It will also be of interest to adminis‐
trators who are managing an OpenShift cluster and who need to provide assistance to
developers using the platform.
ix

The book is the third in a series of books from Red Hat about the latest version of
OpenShift. The prior books in the series are:

OpenShift for Developers: A Guide for Impatient Beginners

DevOps with OpenShift: Cloud Deployments Made Easy
Why I Wrote This Book
The first book, OpenShift for Developers, which I coauthored with Grant Shipley,
aimed to get you started as quickly as possible by skipping many of the details. Those
details are important, though, when you want to make the most of OpenShift. In this
book I wanted to fill in some of those gaps to give you that broader understanding of
OpenShift and how it can make your job of deploying applications to the cloud easier.
The topics I have chosen for the book are based on my experience of having to
answer many a question on public community forums (such as Stack Overflow and
Google Groups) and at conferences, in my role at Red Hat working as a Developer
Advocate for OpenShift.
The aim is that this book will act as a quick reference guide you can keep coming
back to in order to refresh your memory on commonly used patterns, or to learn
more about additional topics as you continue to use OpenShift.
Online Resources
As with many new technologies, OpenShift is still evolving as it adapts to the wide
range of use cases it is applied to. When you come to read this book, some informa‐
tion may not provide the most up-to-date picture. That’s why we encourage you to
check online resources for the latest details on OpenShift and how to use it.
The OpenShift documentation is a great place to start when you’re looking for infor‐
mation about OpenShift, from OpenShift Online to Red Hat’s enterprise products.
To learn more about OpenShift by working through online training exercises, you
can use the interactive learning portal for OpenShift, implemented on top of Kata‐
coda.
To run OpenShift Origin locally on your own computer in a virtual machine, you can
use Minishift.
If you are interested in the source code for OpenShift, it is available via the OpenShift
Origin project.
OpenShift Origin is the upstream open source project that is used to create the Red
Hat OpenShift product range. OpenShift Origin will always include all the latest fea‐
x | Preface

tures, including experimental features, with support being provided by the OpenShift
community. You are warmly invited to clone the OpenShift Origin project code, send
in your contributions, or open an issue to report any problems you find.
The OpenShift product releases are created as regular snapshots of the OpenShift
Origin project. The product releases do not always have the very latest features
enabled, but if you have a commercial Red Hat subscription, the product releases
include support from Red Hat.
If you would like to try out the OpenShift enterprise products, a number of options
are available.
The first is to sign up to the Red Hat Developers Program. This is a free program and
allows you to access versions of Red Hat products for personal use on your own com‐
puter. One of the products made available through the program is the Red Hat Con‐
tainer Development Kit. This includes a version of OpenShift that you can run inside
a virtual machine on your own computer, but which is based on the OpenShift Con‐
tainer Platform product rather than OpenShift Origin.
A second way of trying out OpenShift Container Platform is via a free test drive with
the leading cloud service providers. This will set you up an OpenShift environment
running across a multinode cluster on the cloud provider of your choice.
Like what you see and just want to get your website out there and being used, without
needing to set up and run your own OpenShift cluster? Check out OpenShift Online,
Red Hat’s public cloud-based hosting service.
Want to hear about how others in the OpenShift community are using OpenShift, or
wish to share your own experiences? You can join OpenShift Commons.
In addition to hearing from OpenShift community members, also check out the
OpenShift blog, where regular articles from members of the OpenShift team at Red
Hat are published.
If you have questions about the development of OpenShift, you can reach the Open‐
Shift development team through the OpenShift mailing lists, or in the #openshift-
dev channel on IRC’s Freenode network. Community support for OpenShift Online
can be found on Google Groups or Stack Overflow.
Conventions Used in This Book
The following typographical conventions are used in this book:
Italic
Indicates new terms, URLs, email addresses, filenames, and file extensions.
Preface | xi

Constant width
Used for program listings, as well as within paragraphs to refer to program ele‐
ments such as variable or function names, databases, data types, environment
variables, statements, and keywords.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values or by values deter‐
mined by context.
This element signifies a tip or suggestion.
This element indicates a warning or caution.
O’Reilly Safari
Safari (formerly Safari Books Online) is a membership-based
training and reference platform for enterprise, government,
educators, and individuals.
Members have access to thousands of books, training videos, Learning Paths, interac‐
tive tutorials, and curated playlists from over 250 publishers, including O’Reilly
Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Profes‐
sional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press,
John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe
Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, and
Course Technology, among others.
For more information, please visit http://oreilly.com/safari.
How to Contact Us
Please address comments and questions concerning this book to the publisher:
xii | Preface

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (in the United States or Canada)
707-829-0515 (international or local)
707-829-0104 (fax)
To comment or ask technical questions about this book, send email to bookques‐
[email protected].
For more information about our books, courses, conferences, and news, see our web‐
site at http://www.oreilly.com.
Find us on Facebook: http://facebook.com/oreilly
Follow us on Twitter: http://twitter.com/oreillymedia
Watch us on YouTube: http://www.youtube.com/oreillymedia
Acknowledgments
This book has been a long time in the making, with it being put aside a number of
times as work and other life events intruded. Through all that time my wife, Wendy,
and children, Kara and Caiden, have continued to put up with me never seeming to
ever leave my home office. My children would wait patiently, although never patiently
enough, for the end of the week to come, when I would emerge from my office and
we would spend a good amount of time together over the weekend playing Minecraft.
With this book complete, I know they will be looking forward to the additional time I
will now be able to spend with them.
I would also like to thank the other members of the OpenShift evangelist team at Red
Hat with whom I work and who tolerate my grumpiness, especially when I can’t seem
to get OpenShift doing what I want it to do. Special thanks go to Jorge Morales, who
is always there when I need help in understanding how something works, or need a
sounding board for one of my crazy ideas. Jorge also provided valuable feedback on
this book. Luckily my Aussie accent doesn’t come through in my writing, as even after
two years of working with Jorge, when I speak he still often doesn’t have a clue what I
am saying.
Preface | xiii

CHAPTER 1
The OpenShift Container Platform
The OpenShift platform was launched in May 2011. The source code was made avail‐
able through an open source project, with anyone being able to download it and use
it. Red Hat also offered a supported version of OpenShift for use in enterprise deploy‐
ments, and a hosted service called OpenShift Online.
OpenShift has always been implemented on top of containers, but technology is
always evolving. In June 2013 a major rewrite began to reimplement OpenShift on
top of the latest evolving technologies in the container space. Version 1.0 of Open‐
Shift Origin, based around Kubernetes and the Docker container runtime, was
released in June 2015. At the time of writing this book OpenShift 3.6 was the latest
version, with the 3.7 release imminent and new releases coming out on a quarterly
basis.
What exactly is OpenShift, though?
In simple terms, it is a platform to help you develop and then deploy applications to
one or more hosts. These can be public-facing web applications, or backend applica‐
tions including microservices or databases. Applications can be implemented in any
programming language you choose. The only requirement is that the application can
run within a container.
OpenShift can run anywhere you can run Red Hat Enterprise Linux (RHEL), CentOS,
or Fedora. This can be on public or private cloud infrastructure, directly on physical
hardware, or using virtual machines.
In this initial chapter you will learn more about the technologies that OpenShift uses,
and where it fits within the cloud computing ecosystem.
1

Random documents with unrelated
content Scribd suggests to you:

A medvevadász oda ugrott hozzá. «Kezet rá, míg szavad meg
nem másolod.»
– Nem másolom meg, sőt lekötelezesz vele.
– De ha meg találod bánni.
– Akkor fizetek kétszáz aranyat bánatpénzül.
A társaság ez alku után még egyszer oly víg lett, mint az előtt.
Legvígabb volt Darvai, de látni lehete rajta, hogy erőlteti a jókedvet,
néha, mikor nem vette észre magát, elmélyedt, elkomorodott, s ha
aztán újra föleszmélt, úgy danolt, úgy kaczagott, hogy szinte látszott
rajta, mennyire jobb szeretne sírni s a poharakat vendégei fejéhez
vagdalni.
Egyszer egyik inasa belép hozzá és jelenti, hogy egy vén
pórasszony akar vele okvetlen beszélni.
Máskor kiverette volna házából az ily órában alkalmatlankodót, de
most szinte kapott az alkalmon, hogy a társaságot elhagyni ürügyhöz
jutott, biztatva társait, hogy rögtön visszajő, fölkelt s elhagyta a
termet. Voltak kiváncsiak, kik meg akartak győződni felőle, hogy
csakugyan vénasszony-e a kiért kimegy? Percz mulva visszajöttek
azzal a megnyugtató válaszszal: hogy vén biz az és rút, mint az
éjszaka.
Az ott maradtak elfoglalták üresen maradt helyét s jól mulattak
nála nélkül, s nem vették észre, hogy két hosszú óra mult el, mióta
Darvai kiment a nővel beszélni; a medvevadász felugrott az asztalra,
ott tánczolt a poharak között, s mikor épen a huszadik
áldomáspoharat itta ki új vadja örömére, belép Darvai, a szokottnál
komolyabb arczczal s illetődött, reszketeg hangon szólva hozzá,
átnyújt kezébe egy csomó aranyat: «itt bánatpénzed, úgymond, a
leány itt marad… Mulassatok czimborák… Én rosszul vagyok,
lefekszem». Azzal elment.
– Tudtam! ordítá, poharát és pénzét a falhoz vágva a
medvevadász.

A czimborák tovább ittak és danoltak.
VI.
Darvai az idő óta nem látta többé a leányt.
Másnap rögtön elhagyta kastélyát, oda volt több hónapig, hírt
sem hallatva magáról.
A leány ez alatt ott maradt bezárva azon rejtett szobában,
melynek csak egyetlen ablaka volt a legtetején, azon bocsátottak le
az ő és medvéje számára eledelt.
E szobát a kastély valamelyik előbbi tulajdonosa, ki szenvedélyes
festő volt, alakíttatta így festő műhelylyé, a platfond magas
ablakához szinte lehetetlen volt a hozzájuthatás.
A leány naphosszant nyugton el volt rejtekében, legkisebb neszét
nem lehete hallani, de ha eljött az éj, ha a kastély lakói bezárták
kapuikat s aludni mentek, mikor már élesen halló füleiben az utolsó
éjszakai zörej is elcsendesült, fölkelt fekhelyéről, leoldá ágya
függönyeiről a vastag selyem zsinórt, felveté nehéz aranyos bojtjánál
fogva az ablak keresztvasára s csodás ügyességgel felkapaszkodva a
zsinóron, a két vas közti szűk nyiláson keresztül bújt, nesztelenül,
csöndesen végig ment a corridor tetején, s az odáig felfutó
venyigefonadékon sebesen alásuhant. Soha sem vette őt észre
senki.
Ez éji vándorlásainak czélja rendesen azon kis házikó volt, hol a
kis pórfiu lakott, kit egykor megszabadíta.
A gyermek édes anyja és nagyanyja laktak ott egyedül. Az öreg
asszony különös előszeretettel látszott lenni a vadleány iránt. Egész
éjeket fenntöltött vele; s ha hála volt az érzet benne, mivel unokája
életét fizette vissza, úgy az gazdagon lőn visszaadva. Ő a leánynak
lelket adott, – beszélni tanítá.

A leány bámulatos előhaladást tett. Néhány hó alatt értette és
beszélte az emberi hangokat, lelke, szemei felnyiltak, az állati vad
ösztönök helyét érző indulatok foglalták el szivében, a gondolkozás
gyémántköszörűje megnemesíté arcza vonalmait, szemeiben élő
lélek tükrözé vissza magát. Megtanulta ismerni mindazt, mit eddig
csak titkon sejte, az Istent, kit eddig a kelő napsugárban együtt vőn
észre az erdei madárral, s a szerelmet, melynek önkénytelen vágyait
a csalogányhangokból leste el, s a néma sóhajtás helyett megtanulta
a keresztyének imáját, s a gerliczeturbékolás helyett az édes szót:
«szeretlek».
S tudott gondolni rá, mily öröm lesz az azon ifjunak, ki, mielőtt
lelkének gondolatai születtek volna, már birta azokat, ha e szót
váratlanul, véletlenül kimondatni hallja!
Egy napon Darvai egész váratlanul megérkezett. A leány hallá a
kocsizörgést, megismeré kedvese szavát. Szive dobogott, reszketett,
midőn közelíteni hallá lépteit szobája ajtajához, függönyei közé
elrejtőzve várta őt, onnan lesve rá örömtől pihegő kebellel, midőn az
ajtó feltárultával kedvetlenül vevé észre, hogy Darvai másod
magával jő szobájába.
Egy úri hölgy a 35–40 év között, arczán hajdani szépség
nyomaival, miknek helyét lassankint az erősebb indulatok vonásai
kezdték elfoglalni, büszkeség, megvetés, gyülölet. Ez jött Darvaival.
Darvai udvariasan kinálta a hölgyet, hogy üljön le, míg többi
szobáit elrendezik. Az úri hölgy büszkén támaszkodott az elébe tolt
egyik szék karjára s nem fogadta el a kinálást.
– Köszönöm, lesz még időm rá. Nagyon rövid leend, a mit önnek
mondani akarok.
– Annál hosszabb leend, a mit én szándékozom kegyednek
mondani.
Ú

– Megengedem. Úgy is utoljára beszélünk egymással. Leányom a
kolostorban meghalt.
– Tudom, asszonyom. Láthatja, hogy cselédeim gyászlivreet
viselnek.
– Úgy hiszem, csak a szót vesztegetném, ha most ön előtt
mindazt elmondanám, a mit a szerencsétlen gyermek ön miatt
szenvedett. Nem élt önnel egy boldog napot, önnek az üldözései elől
menekült a kolostorba.
– Természeteink nem egyeztek.
– Jól van. – Nekem nincsenek szemrehányásaim. Ez eset bennem
egészen más gondolatokat költ, igen száraz, prózai gondolatokat,
legkisebb érzelgési szinezet nélkül. Úgy hiszem, ön elég tapintattal
bir azokat kitalálni.
– Óh igen. E gondolatok tárgya nem egyéb, mint hogy nőm
halálával gazdag hozományát adjam kegyednek vissza.
– Reménylem, hogy ez ellen nincs ellenvetése.
– Dehogy nincs. Azt tudhatja kegyed, hogy a mit én magam
örököltem, azt réges régen eltékozoltam mind.
– Ez önnek okot adhat arra, hogy neje birtokát bitorolja, de jogot
nem.
– Fogok keresni jogokat hozzá.
– S reméli ön, hogy hazánkban oly rossz lábon áll az
igazságszolgáltatás, miszerint egy ember neje vagyonát bitorolhatja,
egy ember, ki nejét halálra üldözé, ki vele három napig együtt nem
lakott, ki szembeszökőleg mindent, mi nejére emlékeztetné,
eltávolíta magától, mindent, nejének utolsó arczképeig.
– Rosszul van értesülve asszonyom, sőt nőmnek igen is híven
talált arczképét tartom magamnál, kegyedet épen azért vezetém
ezen szobába, mert épen itt van az, lássa s győződjék meg felőle.

S hirtelen felrántá az alcoven függönyeit, melynek sötétében
térden állva, reszketve, sápadtan látszott meg a leány; vonásait a
hónapok óta ébredező lélek annyira átalakítá, hogy maga Darvai is
megdöbbentnek látszék azoknak hasonlatossága miatt, míg az
úrhölgy rémülten tántorodott vissza a látvány elől és zavarodottan
kérdé: «ki ez nő»?
– Ugy-e híven van találva, asszonyom? Vonásról vonásra, arcz,
alak, maga az a mód, a mint szemeit az emberre szokta vetni, mikor
elégületlenkedik, sőt az a kis emlékezetes szeplő arczán sem
hiányzik. Mit gondol ön, ki ez a leány?
– Gonosz lélek… hebegé az úrhölgy, merevül nézve a szivét
reszkettető alakot.
– Ez a leány, szólt Darvai, leülve a székre, melyhez napa
támaszkodott, egy szerencsétlen szerelemgyermek, kit anyja
gyalázattal hozott e világra, s hogy gyalázatát eltemesse, eltemette
gyermekét is.
– Nem igaz, vágott közbe a hölgy.
– No, no, kegyed nem tudja, hogy mit akarok mondani. Az
úrhölgy, ki a leánynak lételt adott, épen akkor jegyben járt egy
gazdag, előkelő úrral; képzelheti ön, mennyire érdekében állhatott
botlását a legmélyebben eltitkolni. A gyermek egy szegény pórnőnek
adatott át, hogy nevelje mint tulajdonát. A pórnő egyszer, midőn
fáért az erdőre járt, kivitte magával a kis gyermeket, letette a földre,
hogy munkájában ne akadályozza, s midőn visszatért, nem találta
többé ott, a kosárka, melyben kihozta, üres volt.
Az úrhölgy arcza kékült.
– Soha sem akadt rá többet, bár mennyire járt utána. Az
elveszett leányt valami vadállat elragadta, haza vitte kölykeinek, a
medvekölykek nem bántották, megszerették, a vén medve
megszánta, fölnevelte fiaival együtt, s évek mulva beszélni kezdtek

róla, hogy a vadleány itt-ott megjelenve, ijesztgeti az embereket, kis
gyermekeket ragadoz, s a vadászok ebeit agyon verdesi.
Az úrnő reszketve hanyatlott egy pamlagra, s arczát elfödé
kezeivel.
– Látja ön, asszonyom, folytatá Darvai hidegen, kegyetlenül, a
leány szépen megnőtt, arcza elragadó, termete bájos, csak lelke
nincsen; egy vadállat emberi alakban. Ki fog ennek elveszett lelkéről
számolni valaha?
– Hallgasson ön, hallgasson ön, rebegé az ijesztgetett nő.
– Mit gondol ön? ha egy napon e leány megjelenne a világ előtt,
mind azok, kik önnek leányát ismerék, nem egyhangúlag kiáltanának
fel: hogy a halottak feltámadtak a sírból, hogy az önnek szülötte,
gyermeke.
– Az Istenért, mit cselekszik ön? sikolta fel a nő, kezeivel mintegy
el akarva fogni a hangokat, miket veje mondott, hogy a leányhoz ne
jussanak.
– Mitől se tartson ön. E leány sem hallani, sem beszélni nem tud
emberi hangokon.
A hölgyet lázas borzadás futotta át, a belső szemrehányás
küzdelme volt az, az ébredező dacz ellen, a lélek harcza önmagával…
A dacz győzött.
– S mit akar ön uram a leánynyal? szólt visszatérő hideg
nyugalommal, föltéve, hogy ön be tudná bizonyítani, hogy a leány az
enyim, mit nyerne vele? meggyalázna a világ előtt. Ez önre nézve
nem haszon. A körülmények, mik e titkot rám nézve veszélyessé
tevék, elmultak, férjem rég meghalt, senki sincsen, a ki
magánviszonyaim miatt kérdőre vonhatna.
– És ha én e leányt, miután bebizonyítám, hogy az öné, nőül
venném?

– Képes volna ön azt tenni? kiálta fel elszörnyedve az asszony. –
A leány arcza kigyulladt e szókra. Nem vette észre senki.
– Nemde különös volna az, folytatá Darvai, ha egy szép estén,
midőn önnél legvigabban folyik a mulatság, a népes társaság közt
önnek kitagadott veje megjelenne egy hölgygyel karján, kinek láttára
mindenki bámulva kiáltana fel: ez ő! ez ikertestvére a megholtnak, ki
midőn beszélnének hozzá, akarnák mulattatni, leülne a földre, vagy
az asztal alá, szilaj, erdőben eltanult hangokat mormogva feleletül, s
az elkapott ölebecskéket fojtogatva rakásra.
A nő reszketve nyujtá felé karjait, szólni akart, de a hang
elfagyott ajkain.
A leány indulatosan veté le magát vánkosára.
E neszre a vánkos alatt nyugvó fenevad fölemelte fejét, tompa
fenyegető mordulással szólva bele az emberi beszédbe.
Az asszony ijedve szökött fel helyéről s e fenyegtő vadállat szilaj
szemeivel találkozva, önkénytelen másik ellensége felé hátrált, ki
ijedelmén mosolygott.
– Ne féljen tőle asszonyom. Ez a vadállat ön leányának anyja
volt. Midőn kegyed elveté őt magától, ez volt, ki felfogadta,
felnevelte, azóta is mindig vele járt, elkisérte börtönébe is és őrzi
éjjel-nappal, mintha édes anyja volna… nem olyan rosszak a
vadállatok asszonyom, mint a minőknek őket az emberek
rágalmazzák.
– Mit akar ön, mit akar ön?
– Mindenekelőtt a kezem alatt levő javaknak birtokában maradni.
– De a leánynyal mit akar ön tenni? arra feleljen.
– Ha ön, asszonyom, leánya hozományáért sürget, akkor fellépek
vele és nőül veszem; ha békében hagy, akkor ön megegyezésével

fogok számára egy kolostort keresni, hol embert neveljenek belőle
Isten számára, és halottat a világra nézve.
Az úrnő éledni látszott, keble terheitől szabadulni.
A leány vad, tűztekintetet lövellt fekvő helyzetében a két
alkuvóra, gyilkos, embervesztő gondolatokkal teljes pillantásokat.
– Megegyezünk, szólt lassabban az úrnő, reszkető kezét vejének
nyujtva, mit az gúnyos mosolygással vont ajkaihoz, hidegen
megcsókolva.
– De csitt, szólt az úrnő, attól a fenevadtól hogy fogunk
megmenekülni? ha nem engedend a leányhoz nyúlni. Itt erőszakot
használni bajos.
– Elvégzem én, nyugtatá Darvai. Én szoktam a medvének néha
pástétomfalatokat osztani, majd legközelebb só helyett egérkővel
fogom neki megfűszerezni s néhány óra mulva végrendeletet tehet a
bőréről.
Az ifju megnevette ötletét s azután gúnyos diadallal nyújtá kezét
a megalázott nőnek s a nélkül, hogy az elhagyott leányra egy
tekintetet vetne, eltávozott.
VII.
A leány egyedül maradt.
Mintha a láz gyötörné, reszkettek tagjai, rázkódott, remegett, a
hideg veríték gyöngyözött homlokán.
Miért tanult emberi hangokat érteni? Miért kellett emberi szív
mélyébe látnia? Miért hagyta el erdejét, fenevad társait? Örülhetett
volna tovább is a napsugárnak ott, lehetett volna nyugalmas állat,
melynek nem fáj a lélek. Miért kellett lelkét föltalálnia? Most a lélek
meg fogja őt emészteni.

A tudás nem boldogít…
Reszketve borult fenevad társára, ki nevelőanyja lőn, midőn
édesanyja elveté magától, átölelte nyakát, összecsókolgatá fejét,
sírt, töredezett emberi szavakat beszélt hozzá.
– Elmegyünk… Visszamegyünk erdőnkbe… ne félj. – Elmegyünk a
barlangba, a zúgó víz mellé, leszünk fenevadak ismét… Kikerüljük az
emberarczot, elfutunk az emberszó elől, nem jövünk lakásaik felé
soha… A puha mohát, az éneklő madarat, a vad méhet, a kék
virágot – ott találjuk újra… A kék eget, a zúgó patakot, a szelid
fákat… Mind oly szelidek, oly ismerősek, úgy köszöntgetnek zöld
lombjaikkal, mikor a szél fú. Mint hízelegnek hulló sárga leveleikkel,
mint vigyáznak az alvóra, ki árnyékukba lefeküdt… Elmegyünk,
vissza oda, vissza. Fölkeressük a magas sziklákat, hol a piros
gyümölcs érik. Meglátogatjuk a testvéreket, a vadakat, a szélzúgást
és a holdvilágot, elmegyünk a leégett erdőbe, hova ember nem mer
jőni, futni, nyargalni fogunk rajta végig, egymást kergetni a
holdvilágnál, kiáltozva, örülve… Elmegyünk, elmegyünk… Ha a
testvérek látni fogják néha, hogy félremegyek sírni a bokrokba s
elveszek előlük, ne mondd el nekik, mi bajom?… itt fáj valami,
valami olyan nagyon, valami féreg emészt – belől, szivemben, úgy
kínoz, úgy öldököl.
A vad nyöszörgve, vihogva bújt hozzá közelebb, czirógató kezeit
nyalogatva, s nyugtalan, fájdalmas tekintettel nézve föl rá, mintha
mondani akarná neki, hogy ő e nyelvet nem érti, beszéljen vele a
régi, ismert hangon.
Rövid idő mulva ismét léptek hangzottak a lépcsőn, az ajtó
kinyilt, Darvai lépett be rajta.
Az ajtónál egy szolgától kis porczellán kosárkát vett el, mely
pástétomdarabokkal volt tetézve s azzal a nyugágy felé közelített.
Odasimult hizelgőleg a leányhoz, de a mint annak szemeibe
tekinte, megrendült, visszahökkent, oly elevenen volt azokban
kifejezve a gyűlölet, az irtózat, a kétségbeesés.

Eszébe jutott, a mit valaha állati ösztönről hallott beszélni, arra
gondolt, hogy tán e titkos sejtelem megsúgta a leánynak, hogy most
ellensége van hozzá közel, s míg erre gondolt, s míg a leány
szemébe nézett, elállt szive verése az iszonyattól.
Érzé, hogy itt teljes lélekjelenlétére van szükség, hogy most
rosszkor lépett az oroszlán kalitkájába, s azon nyugodt tekintetet
feszítve merően a leány arczára, mely az ugrásra kész tigrist meg
szokta kötni, mely a vadállatokat megigézi, egy lépést tőn felé, hideg
nyugalmát egy perczig sem vesztve el.
Még egy lépést tőn közelebb. A kezében tartott étkes kosarat
halkan, kimért nyugalommal nyujtá a medve elé, midőn, mint a
dúvad ugrott fel helyéből a leány s tiszta, érthető hangon kiálta rá:
– Mit akarsz?
Az embert az ijedtség megdermeszté. Mint az Isten haragja üté
meg füleit a nem várt emberi szózat. Halálitélete hangzék abban.
A fenevad ordítva kelt föl fektéből, megértve társnéja szavában a
hangot, az ember rémséges sikoltással veté magát a leány keblére,
nyomorultul esdve a védelemért, a leány dühösen tépte le magáról
ölelő karjait s embertelen erővel taszítá el magától s azzal futott ki az
ajtón, míg az elhagyott szobában rémes sikoltozás s vadállati bőgés
viszhangzott iszonyú tusában.
A leány végig futott a folyosón, elhányva útjából, kik eleibe álltak,
az ismert venyigéken lekúszott a falról, s vijjongva, sikoltozva rohant
az erdőnek, rettentő álomkép azoknak, kik utána néztek.
Percz mulva valamelyik ablakon nagy fekete állat ugrott ki a
házból, szája és körmei véresek voltak, ordítva futott az is a leány
után.
Az úrnő még azon éjjel eltávozott az iszonyú esemény helyéről.
Útja az erdőn vitt keresztül. A merre járt, mindenütt csordástul járó
fenevadak üldözék kocsiját, medvék és farkasok; mintha mind
összebeszéltek volna, s néhol majd itt, majd amott meglátta a szilaj

fenyegető női alakot, és hallá, vagy csak vélte hallani, annak
irtózatos kiáltását: «anyám! – anyám!»
Még maig is, ha a farkasok szokatlanul üvöltenek a kárpáti
erdőkben, ha szélcsendes éjszakában a zuhatag tombolása messze
elhangzik, ha a vihar tördeli a fákat s bedúdol az ablakon, mintha
valaki ijesztgetve fenekednék ott künn, a pórnő azzal ijesztgeti
kicsijét: «jó légy, hallod ott künn a vadleányt, ha rossz leszesz, eljön
érted és elragad».

Lábjegyzetek.
1) Ennek az elbeszélésnek magának is van egy kis története. Nem
volt ez spanyolnak szánva. Meséje a magyar közéletből volt véve,
alakjai történelmünk typicus kiváló egyéniségei voltak: az egész a
magyar szabadságharczban keletkezett és végződött. Én ezt
egész bátorsággal kinyomattam: hiszen nem volt benne se lázítás
se fölségsértés; a fennálló rend sem volt benne megtámadva.
Hanem – az ötvenes években éltünk. Bach volt a miniszter. A
cenzura el volt törölve az egész «birodalom»-ban szabad volt
mindent kinyomtatni. – Csak az volt e helyett behozva, hogy a
kinyomtatott munkát elébb be kellett mutatni a rendőrfőnöknek. A
rendőrfőnök kiadta azt a rendőrbiztosnak, s ez mondta aztán
meg, hogy tiltva van-e ezt a nyomtatványt kiadni a közönség
olvasmányául? Csak azt, hogy tiltva van. S ha a komiszárus úr azt
mondta rá, hogy «tiltatik», hát akkor lehetett a kész munkát
papiér machéenak betapostatni. Ha egy példány forgalomba
került belőle, a nyomdász szabadalmát veszté s börtönbe került.
Több kötet munkám részesült abban a sorsban, hogy kutyát,
macskát csináltak belőle a gyerekjáték-készítők. – Aztán a régi
censor legalább megmondta, hogy mi az, a mi nem tetszik neki a
munkámban: azt ki lehetett törülni; de a komiszárus úr nem szólt
semmit: «nicht erlaubt», ez volt az egész replika. Appellálni nem
volt kihez. Ebből a művemből is pépet zúztak gyerekjátékokhoz.
Én aztán a kéziratot elővettem, s csináltam belőle spanyol
történetet. 1848-ból 1808-at, Budapestből Madridot, Budavárból
Buen-Retirot, István nádorból Infantado herczeget, márczius 15-
ikéből, márczius 18-ikát, V. Ferdinánd királyból «El rei
Hernandot», Metternichből Don Godoyt, a magyar liberalis és
pecsovics főurakból don Escoiquiz és don Aquiles de Mendoza
grandokat; a «Szózat»-ból – a «mórok búcsúdalát Granadától»,
az osztrák seregből franczia sereget, a Dunából Tájót, Szent-
Tamásból Ciudad Rodrigot, s Görgeyből Wellington herczeget. Igy
aztán újra kinyomattam ugyanazon fentebbi czim alatt az
elbeszélést, újra beküldtem a rendőrséghez, ekkor aztán azt
mondták rá, hogy – semmit sem mondtak. Ha huszonnégy óra

alatt le nem foglalták a munkát, ki lehetett adni. – Igy lett
belőlem spanyol iró.
1894.
J. M.

TARTALOM.
Vándoroljatok ki! 1
Adamante 58
A munkácsi rab 76
Egy halálitélet 104
Valahány ház annyi szokás 136
A szökevény 158
A remete hagyománya 203
Az erdők leánya 227
FRANKLIN-TÁRSULAT NYOMDÁJA.
Javítások.
Az eredeti szöveg helyesírásán nem változtattunk.
A nyomdai hibákat javítottuk. Ezek listája:
3 míknek czéltáblájául miknek czéltáblájául
14 mík alatt mik alatt
15 míre szükség mire szükség
32 Friczihez fordulva Friczihez fordulva.
58 tőlök- hogy tőlök, hogy
58 semm, hang semmi hang
65 határozatlan idö határozatlan idő
72 Három késhegyével…» «Három késhegyével…»
90 felejté e! felejté el

116 vi-zonzá nyugodtan viszonzá nyugodtan
131 önt megmentené, önt megmentené.
139 es ezekért és ezekért
154 hideg éjszabába hideg éjszakába
202 gyöngyöző bomlokát gyöngyöző homlokát
226 Határidon belől Határidőn belől
246 az idö óta az idő óta
247 kegyednek mondani, kegyednek mondani.

*** END OF THE PROJECT GUTENBERG EBOOK ÁRNYKÉPEK ***
Updated editions will replace the previous one—the old editions will
be renamed.
Creating the works from print editions not protected by U.S.
copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.
START: FULL LICENSE

THE FULL PROJECT GUTENBERG LICENSE

PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
To protect the Project Gutenberg™ mission of promoting the free
distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.
Section 1. General Terms of Use and
Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.
1.B. “Project Gutenberg” is a registered trademark. It may only be
used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.

1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E. Unless you have removed all references to Project Gutenberg:
1.E.1. The following sentence, with active links to, or other
immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.
1.E.2. If an individual Project Gutenberg™ electronic work is derived
from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.
1.E.3. If an individual Project Gutenberg™ electronic work is posted
with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.
1.E.4. Do not unlink or detach or remove the full Project
Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.
1.E.5. Do not copy, display, perform, distribute or redistribute this
electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1

with active links or immediate access to the full terms of the Project
Gutenberg™ License.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
1.E.7. Do not charge a fee for access to, viewing, displaying,
performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.
1.E.8. You may charge a reasonable fee for copies of or providing
access to or distributing Project Gutenberg™ electronic works
provided that:
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information

about donations to the Project Gutenberg Literary Archive
Foundation.”
• You provide a full refund of any money paid by a user who
notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.
• You provide, in accordance with paragraph 1.F.3, a full refund of
any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™
electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.
1.F.
1.F.1. Project Gutenberg volunteers and employees expend
considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or

damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.
1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for
the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.
1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you
discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,

INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
1.F.5. Some states do not allow disclaimers of certain implied
warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.
1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,
the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.
Section 2. Information about the Mission
of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.
Volunteers and financial support to provide volunteers with the
assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will

remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.
Section 3. Information about the Project
Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.
The Foundation’s business office is located at 809 North 1500 West,
Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many

small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.
The Foundation is committed to complying with the laws regulating
charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.
While we cannot and do not solicit contributions from states where
we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.
International donations are gratefully accepted, but we cannot make
any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Section 5. General Information About
Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.

Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
This website includes information about Project Gutenberg™,
including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.

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