Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Introduction to Ansible Network

Automation: A Practical Primer


Brendan Choi
Visit to download the full and correct content document:
https://ebookmass.com/product/introduction-to-ansible-network-automation-a-practica
l-primer-brendan-choi/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

Introduction to Ansible Network Automation: A Practical


Primer Brendan Choi

https://ebookmass.com/product/introduction-to-ansible-network-
automation-a-practical-primer-brendan-choi/

Introduction to Software Testing: A Practical Guide to


Testing, Design, Automation, and Execution 1st Edition
Panagiotis Leloudas

https://ebookmass.com/product/introduction-to-software-testing-a-
practical-guide-to-testing-design-automation-and-execution-1st-
edition-panagiotis-leloudas/

Supply Network 5.0: How to Improve Human Automation in


the Supply Chain Bernardo Nicoletti

https://ebookmass.com/product/supply-network-5-0-how-to-improve-
human-automation-in-the-supply-chain-bernardo-nicoletti/

Introduction to Prescriptive AI: A Primer for Decision


Intelligence Solutioning with Python Akshay Kulkarni

https://ebookmass.com/product/introduction-to-prescriptive-ai-a-
primer-for-decision-intelligence-solutioning-with-python-akshay-
kulkarni/
Learn Engineering with LEGO: A Practical Introduction
to Engineering Concepts Grady Koch

https://ebookmass.com/product/learn-engineering-with-lego-a-
practical-introduction-to-engineering-concepts-grady-koch/

Enzymes. A Practical Introduction to Structure,


Mechanism, and Data Analysis 3rd Edition Robert A.
Copeland

https://ebookmass.com/product/enzymes-a-practical-introduction-
to-structure-mechanism-and-data-analysis-3rd-edition-robert-a-
copeland/

Psychophysics, Second Edition: A Practical Introduction


Kingdom

https://ebookmass.com/product/psychophysics-second-edition-a-
practical-introduction-kingdom/

Enabling Tools and Techniques for Organic Synthesis: A


Practical Guide to Experimentation, Automation, and
Computation Stephen G. Newman S.G. (Ed.)

https://ebookmass.com/product/enabling-tools-and-techniques-for-
organic-synthesis-a-practical-guide-to-experimentation-
automation-and-computation-stephen-g-newman-s-g-ed/

eTextbook 978-1305947412 Spreadsheet Modeling &


Decision Analysis: A Practical Introduction to Business
Analytics

https://ebookmass.com/product/etextbook-978-1305947412-
spreadsheet-modeling-decision-analysis-a-practical-introduction-
to-business-analytics/
Introduction to Ansible
Network Automation
A Practical Primer

Brendan Choi
Erwin Medina
Introduction to Ansible Network Automation: A Practical Primer
Brendan Choi Erwin Medina
Sydney, NSW, Australia Sydney, NSW, Australia

ISBN-13 (pbk): 978-1-4842-9623-3 ISBN-13 (electronic): 978-1-4842-9624-0


https://doi.org/10.1007/978-1-4842-9624-0

Copyright © 2023 by Brendan Choi and Erwin Medina


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Divya Modi
Development Editor: James Markham
Editorial Assistant: Divya Modi
Cover designed by eStudioCalamar
Cover image by Freepik (www.freepik.com)
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza,
Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@
springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole
member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc
is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for reprint, paperback,
or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub at https://github.com/Apress/Introduction-to-Ansible-Network-Automation-by-
Brendan-Choi-and-Erwin-Medina. For more detailed information, please visit https://www.apress.com/gp/
services/source-code.
Paper in this product is recyclable
Table of Contents
About the Authors�������������������������������������������������������������������������������������������������� xiii

About the Technical Reviewer���������������������������������������������������������������������������������xv

Acknowledgments�������������������������������������������������������������������������������������������������xvii

Introduction������������������������������������������������������������������������������������������������������������xix

Part I: The Intros��������������������������������������������������������������������������������������������� 1


Chapter 1: Is Ansible Good for Network Automation?���������������������������������������������� 3
1.1 Laying the Foundation������������������������������������������������������������������������������������������������������������� 4
1.2 What Is Ansible?���������������������������������������������������������������������������������������������������������������������� 6
1.3 What Is Ansible Not?��������������������������������������������������������������������������������������������������������������� 9
1.4 Why Ansible?������������������������������������������������������������������������������������������������������������������������� 10
1.4.1 1000-Foot View of How Ansible Works������������������������������������������������������������������������� 17
1.5 Why Does Ansible Matter to You?������������������������������������������������������������������������������������������ 18
1.6 Starting on the Right Foot, Learning Ansible Effectively������������������������������������������������������� 20
1.6.1 Part 1: Ansible Primer��������������������������������������������������������������������������������������������������� 21
1.6.2 Part 2: Ansible Concepts����������������������������������������������������������������������������������������������� 22
1.6.3 Part 3: Ansible Practical������������������������������������������������������������������������������������������������ 22
1.7 Hardware Requirements������������������������������������������������������������������������������������������������������� 24
1.8 Software Requirements�������������������������������������������������������������������������������������������������������� 26
1.9 Downloading Source Codes�������������������������������������������������������������������������������������������������� 29
1.10 Summary���������������������������������������������������������������������������������������������������������������������������� 30

Chapter 2: Shall We Linux? (Part 1: The Linux Command Line)������������������������������ 31


2.1 A Good Reason to Learn Linux���������������������������������������������������������������������������������������������� 32
2.2 Linux for Ansible and Network Automation��������������������������������������������������������������������������� 33
2.3 What Is Linux?����������������������������������������������������������������������������������������������������������������������� 35

iii
Table of Contents

2.4 Install WSL on Windows 11 to Learn Linux��������������������������������������������������������������������������� 38


2.5 vi: The Default Text Editor������������������������������������������������������������������������������������������������������ 43
2.6 Practice Linux Commands���������������������������������������������������������������������������������������������������� 49
2.6.1 The Top Ten Essential Linux Commands����������������������������������������������������������������������� 50
2.6.2 cat and tac�������������������������������������������������������������������������������������������������������������������� 57
2.6.3 touch���������������������������������������������������������������������������������������������������������������������������� 67
2.6.4 mkdir and rmdir������������������������������������������������������������������������������������������������������������ 70
2.6.5 cp and rm��������������������������������������������������������������������������������������������������������������������� 75
2.6.6 rename and mv������������������������������������������������������������������������������������������������������������ 79
2.6.7 head, tail, and shuf������������������������������������������������������������������������������������������������������� 84
2.6.8 less and more��������������������������������������������������������������������������������������������������������������� 88
2.6.9 ls and dir����������������������������������������������������������������������������������������������������������������������� 91
2.6.10 sort����������������������������������������������������������������������������������������������������������������������������� 95
2.6.11 tee and nl�������������������������������������������������������������������������������������������������������������������� 99
2.6.12 grep�������������������������������������������������������������������������������������������������������������������������� 104
2.7 Summary���������������������������������������������������������������������������������������������������������������������������� 109

Chapter 3: Shall We Linux? (Part 2)���������������������������������������������������������������������� 111


3.1 Linux Directory�������������������������������������������������������������������������������������������������������������������� 112
3.2 Getting to Know Your Linux Better�������������������������������������������������������������������������������������� 116
3.3 Getting Familiar with Linux Processes�������������������������������������������������������������������������������� 121
3.4 Getting to Know Disk Space in Linux���������������������������������������������������������������������������������� 125
3.5 Getting Started with Linux User Management�������������������������������������������������������������������� 126
3.6 Controlling Access to Files and Directories in Linux����������������������������������������������������������� 136
3.7 Working with Zip Files in Linux������������������������������������������������������������������������������������������� 146
3.8 Downloading Files from the Internet in Linux��������������������������������������������������������������������� 153
3.9 Linux Network Utilities for Troubleshooting������������������������������������������������������������������������ 156
3.10 Keeping Your Linux System Up to Date����������������������������������������������������������������������������� 166
3.11 Jack, the Jack Russell: A Regular Expression Quiz����������������������������������������������������������� 168
3.12 Summary�������������������������������������������������������������������������������������������������������������������������� 174

iv
Table of Contents

Chapter 4: Setting Up an Ansible Learning Environment�������������������������������������� 177


4.1 Planning the Ansible Lab Topology�������������������������������������������������������������������������������������� 177
4.2 Installing VMware Workstation on Your PC�������������������������������������������������������������������������� 181
4.3 Creating Fedora Virtual Machines��������������������������������������������������������������������������������������� 182
4.4 Creating Ubuntu Virtual Machines��������������������������������������������������������������������������������������� 183
4.5 Customizing and Updating Virtual Machines����������������������������������������������������������������������� 185
4.6 Changing Hostname on Fedora VMs����������������������������������������������������������������������������������� 185
4.7 Assigning Static IP on Fedora VMs�������������������������������������������������������������������������������������� 186
4.8 Updating Fedora Virtual Machines�������������������������������������������������������������������������������������� 191
4.9 Assigning Static IP on the First Ubuntu VM������������������������������������������������������������������������� 192
4.10 Changing Hostname and Static IP on the Second Ubuntu VM������������������������������������������ 194
4.11 Updating Ubuntu Virtual Machines������������������������������������������������������������������������������������ 198
4.12 Installing Ansible on Control Node������������������������������������������������������������������������������������ 199
4.12.1 Option 1: Installing Ansible Directly on the Host OS������������������������������������������������� 199
4.12.2 Option 2: Installing Ansible on Python virtualenv����������������������������������������������������� 200
4.13 Setting Up a New Ansible Testing Account with Sudo Access������������������������������������������ 202
4.13.1 Creating a Sudo Test Account on Fedora VMs���������������������������������������������������������� 203
4.13.2 Creating a Sudo Test Account on Ubuntu VMs���������������������������������������������������������� 205
4.14 Summary�������������������������������������������������������������������������������������������������������������������������� 207

Part II: The Concepts���������������������������������������������������������������������������������� 209


Chapter 5: Understanding Data Types and File Formats for Ansible�������������������� 211
5.1 What Are Data and Data Types?������������������������������������������������������������������������������������������ 211
5.2 Ansible Dependency on Python Data Types������������������������������������������������������������������������ 215
5.2.1 Integer and Float�������������������������������������������������������������������������������������������������������� 217
5.2.2 Strings������������������������������������������������������������������������������������������������������������������������ 218
5.2.3 Booleans��������������������������������������������������������������������������������������������������������������������� 219
5.2.4 Lists���������������������������������������������������������������������������������������������������������������������������� 219
5.2.5 Tuples������������������������������������������������������������������������������������������������������������������������� 220
5.2.6 Dictionaries���������������������������������������������������������������������������������������������������������������� 221
5.2.7 set������������������������������������������������������������������������������������������������������������������������������� 222

v
Table of Contents

5.2.8 None��������������������������������������������������������������������������������������������������������������������������� 223


5.3 Ansible Configuration Files������������������������������������������������������������������������������������������������� 224
5.3.1 INI Format������������������������������������������������������������������������������������������������������������������� 224
5.3.2 Ansible Inventory in INI, JSON, and YAML Formats����������������������������������������������������� 228
5.3.3 Ansible Inventory Priority�������������������������������������������������������������������������������������������� 231
5.3.4 ansible.cfg File����������������������������������������������������������������������������������������������������������� 236
5.3.5 YAML��������������������������������������������������������������������������������������������������������������������������� 239
5.4 Ansible Data Interchange���������������������������������������������������������������������������������������������������� 247
5.4.1 JSON (Why Not YANG?)����������������������������������������������������������������������������������������������� 248
5.4.2 Jinja2�������������������������������������������������������������������������������������������������������������������������� 2 53
5.5 Summary���������������������������������������������������������������������������������������������������������������������������� 257

Chapter 6: Learning Ansible Basic Concepts I: SSH and Ad Hoc Commands������� 259
6.1 SSH Overview and Setup in Ansible������������������������������������������������������������������������������������ 260
6.1.1 Configuring SSH for Ansible: General Steps��������������������������������������������������������������� 260
6.1.2 Understanding the Ansible SSH Concept�������������������������������������������������������������������� 262
6.1.3 Practical Usage of SSH in Ansible������������������������������������������������������������������������������ 263
6.2 Running Ad Hoc Commands on Linux Devices with Ansible����������������������������������������������� 274
6.3 Running Ad Hoc Commands on Routers and Switches with Ansible���������������������������������� 277
6.4 Running Elevated Ad Hoc Commands with Ansible������������������������������������������������������������� 278
6.5 Summary���������������������������������������������������������������������������������������������������������������������������� 281

Chapter 7: Learning Ansible Basic Concepts II: Ad Hoc Commands – A


Beginner’s Guide��������������������������������������������������������������������������������������������������� 283
7.1 Summary���������������������������������������������������������������������������������������������������������������������������� 322

Chapter 8: Learning Ansible Basic Concepts II: Using when,


Improving Playbook, and Targeting Nodes����������������������������������������������������������� 325
8.1 Considerations Before Writing Your Ansible Playbook�������������������������������������������������������� 326
8.2 Creating and Running a New Playbook in Ansible�������������������������������������������������������������� 328
8.3 Idempotency Is a Key Feature of Ansible Tasks������������������������������������������������������������������ 332
8.4 Getting Familiar with Ansible Error Messages�������������������������������������������������������������������� 335
8.5 Getting More Information About Ansible Operation Using the Verbose Mode��������������������� 337

vi
Table of Contents

8.6 Disabling gather_facts to Speed Up the Playbook�������������������������������������������������������������� 341


8.7 Adding More Tasks to Your Existing Playbook��������������������������������������������������������������������� 345
8.8 Keeping Packages Always Up to Date Using “state: latest”������������������������������������������������ 346
8.9 Creating an Uninstall Playbook Using the Existing Playbook���������������������������������������������� 351
8.10 Add Another OS Type and Use the “when” Conditional in Your Playbook�������������������������� 354
8.11 Targeting a Specific Host or Group of Hosts���������������������������������������������������������������������� 359
8.12 Writing a Working Playbook for Both Ubuntu and Fedora������������������������������������������������� 362
8.13 Refactoring a Playbook����������������������������������������������������������������������������������������������������� 368
8.14 Ansible, Targeting Specific Nodes������������������������������������������������������������������������������������� 379
8.15 Check Services from the Control Node����������������������������������������������������������������������������� 387
8.16 Printing Output Using Ansible Debug Module������������������������������������������������������������������� 389
8.17 Using “ignore_errors: yes” to Allow Playbook Completion Despite Errors������������������������ 392
8.18 Install Samba and Create a Samba User on the Fedora Client Using a Playbook������������� 396
8.19 Summary�������������������������������������������������������������������������������������������������������������������������� 401

Chapter 9: Learning Ansible Basic Concepts III: Git, Tags, Managing Files,
and Services��������������������������������������������������������������������������������������������������������� 403
Getting Started with GitHub������������������������������������������������������������������������������������������������������ 404
9.1 Creating and Uploading Playbooks to GitHub, Featuring cowsay���������������������������������������� 407
9.2 Ansible Tags Explained�������������������������������������������������������������������������������������������������������� 423
9.3 Managing Files�������������������������������������������������������������������������������������������������������������������� 428
9.4 Managing Services������������������������������������������������������������������������������������������������������������� 436
9.5 Copying and Updating Text Files with Ansible Playbook����������������������������������������������������� 445
9.6 Use GitHub to Back Up Your Files���������������������������������������������������������������������������������������� 456
9.7 Summary���������������������������������������������������������������������������������������������������������������������������� 457

Chapter 10: Learning Ansible Basic Concepts IV: Users, Roles, Host Variables,
Templates, and Password Vault���������������������������������������������������������������������������� 459
10.1 Users��������������������������������������������������������������������������������������������������������������������������������� 462
10.2 Roles��������������������������������������������������������������������������������������������������������������������������������� 477
10.3 Variable Options in Ansible������������������������������������������������������������������������������������������������ 486

vii
Table of Contents

10.4 host_vars and handler������������������������������������������������������������������������������������������������������ 505


10.4.1 Concept of the Handler in Ansible���������������������������������������������������������������������������� 508
10.5 Templates�������������������������������������������������������������������������������������������������������������������������� 516
10.6 Managing Password on Ansible���������������������������������������������������������������������������������������� 526
10.6.1 Password Vault��������������������������������������������������������������������������������������������������������� 529
10.7 Summary�������������������������������������������������������������������������������������������������������������������������� 541

Chapter 11: Building an Ansible Learning Environment for


Network Automation��������������������������������������������������������������������������������������������� 543
11.1 Cisco CML (Cisco Modeling Labs) Router and Switch Installation on GNS3��������������������� 5 47
11.2 Palo Alto and Fortinet Firewall Installation on GNS3��������������������������������������������������������� 5 67
11.2.1 Palo Alto PA-VM Initial Configuration and Connection Test��������������������������������������� 569
11.2.2 Fortinet FortiGate Initial Configuration and Connection Test������������������������������������ 576
11.3 Cisco c8000v Edge Router VM Creation on VMware Workstation������������������������������������� 579
11.4 Cisco Wireless LAN Controller (WLC) VM Creation on VMware ESXi 7������������������������������ 5 87
11.5 Summary�������������������������������������������������������������������������������������������������������������������������� 592

Part III: The Practical���������������������������������������������������������������������������������� 593


Chapter 12: Cisco Router and Switch Configuration with Ansible����������������������� 595
12.1 Configuring EIGRP Using Ansible�������������������������������������������������������������������������������������� 597
Lab 1: EIGRP Lab Topology��������������������������������������������������������������������������������������������������� 599
Lab 1: GNS3 Device Connections����������������������������������������������������������������������������������������� 600
12.2 Configuring OSPF Using Ansible��������������������������������������������������������������������������������������� 616
Lab 2: OSPF Lab Topology���������������������������������������������������������������������������������������������������� 617
Lab 2: GNS3 Device Connections����������������������������������������������������������������������������������������� 620
12.3 Switch VLAN Configuration Lab����������������������������������������������������������������������������������������� 632
Lab 3: VLAN Lab Topology���������������������������������������������������������������������������������������������������� 634
Lab 3: GNS3 Device Connections����������������������������������������������������������������������������������������� 635
12.4 Lab 4 Challenge: Configure New Routers and Access Control List (ACL)�������������������������� 656
Lab 4: ACL Network Topology���������������������������������������������������������������������������������������������� 658
Lab 4: GNS3 Device Connections����������������������������������������������������������������������������������������� 658
12.5 Summary�������������������������������������������������������������������������������������������������������������������������� 660

viii
Table of Contents

Chapter 13: Network Device Backup Ansible Playbook��������������������������������������� 661


13.1 Setting Up Network Device Configuration Backup Lab����������������������������������������������������� 664
13.1.1 Network Device Configuration Backup Lab Topology and Connections������������������� 664
13.2 Cisco Router and Switch Configuration Backup to File Server (SCP)�������������������������������� 667
13.3 Summary�������������������������������������������������������������������������������������������������������������������������� 687

Chapter 14: Ansible Playbook Scheduling with Cron������������������������������������������� 689


14.1 Ansible Playbook Cron Lab Network Topology������������������������������������������������������������������ 690
14.2 Learning About Cron with a Simple Ansible Playbook������������������������������������������������������ 691
14.3 Ansible Playbook Scheduling Using Cron�������������������������������������������������������������������������� 702
14.4 Ansible Playbook Scheduling Using Cron with a Vaulted Password��������������������������������� 710
14.4.1 Shell Script Method�������������������������������������������������������������������������������������������������� 711
14.4.2 Python Method��������������������������������������������������������������������������������������������������������� 718
14.5 Summary�������������������������������������������������������������������������������������������������������������������������� 723

Chapter 15: Cisco Router Upgrading Playbook����������������������������������������������������� 725


15.1 Router Upgrade Lab Network Topology����������������������������������������������������������������������������� 727
15.2 Cisco IOS-XE Router Upgrade Workflow in Bundle Mode�������������������������������������������������� 729
15.3 Cisco IOS-XE Router Upgrade Lab������������������������������������������������������������������������������������� 734
15.3.1 Lab Setup����������������������������������������������������������������������������������������������������������������� 735
15.3.2 Writing the Main Playbook for Router Upgrade�������������������������������������������������������� 738
15.4 Summary�������������������������������������������������������������������������������������������������������������������������� 763

Chapter 16: Cisco Wireless LAN Controller Upgrading Playbook�������������������������� 765


16.1 WLC Lab Network Topology����������������������������������������������������������������������������������������������� 768
16.2 Preparing the Lab by Creating ansible.cfg and Inventory Files����������������������������������������� 770
16.3 Writing an Ansible Playbook for Cisco WLC Upgrading Ansible Playbook������������������������� 772
16.4 Ansible Inventory Configuration for Cisco WLC Enterprise Network��������������������������������� 788
16.5 Summary�������������������������������������������������������������������������������������������������������������������������� 791

ix
Table of Contents

Chapter 17: Creating User Accounts on Palo Alto and Fortinet Firewalls������������� 793
17.1 Use Ansible Vault to Encrypt Sensitive Information���������������������������������������������������������� 796
17.2 Administrator Account Creation on Palo Alto Firewalls: From Manual to Automation������� 799
17.3 Writing a YAML Playbook to Create an Administrator Account on a Palo Alto Firewall����� 801
17.4 Running the YAML Playbook to Create an Administrator Account on a Palo Alto
Network Firewall��������������������������������������������������������������������������������������������������������������� 807
17.5 Administrator Account Creation on Fortinet Firewalls: From Manual to Automation�������� 811
17.6 Writing a YAML Playbook to Create an Administrator Account on a Fortinet Firewall������� 812
17.7 Running the YAML Playbook to Create an Administrator Account on a
Fortinet Firewall���������������������������������������������������������������������������������������������������������������� 817
17.8 Summary�������������������������������������������������������������������������������������������������������������������������� 821

Chapter 18: Creating Security Policy Rules on Palo Alto and


Fortinet Firewalls������������������������������������������������������������������������������������������������� 823
18.1 Protecting the Network with Security Policies������������������������������������������������������������������ 824
18.2 Security Policy Rule Creation on Palo Alto Network Firewalls: From Manual to
Automation������������������������������������������������������������������������������������������������������������������������ 825
18.3 Writing a YAML Application to Create a Security Policy Rule on a Palo Alto Network
Firewall����������������������������������������������������������������������������������������������������������������������������� 825
18.4 Running the YAML Playbook to Create Security Policy Rules on a Palo Alto Network
Firewall����������������������������������������������������������������������������������������������������������������������������� 831
18.5 Firewall Policy Rule Creation on Fortinet Firewalls: From Manual to Automation������������� 837
18.6 Writing a YAML Application to Create a Firewall Policy Rule on a Fortinet Firewall���������� 839
18.7 Running the YAML Application to Create a Firewall Policy Rule on a Fortinet Firewall����� 842
18.8 Summary�������������������������������������������������������������������������������������������������������������������������� 845

Chapter 19: Creating IPSec Tunnels on Palo Alto Firewalls���������������������������������� 847


19.1 Enhancing Network Security with IPSec Tunnels�������������������������������������������������������������� 847
19.2 IPSec Tunnel Configuration on Palo Alto Firewalls������������������������������������������������������������ 850
19.3 Palo Alto IPSec Tunnel Creation Lab Topology������������������������������������������������������������������� 851
19.4 Writing Palo Alto IPSec Tunnel Creation Playbook������������������������������������������������������������� 852
19.5 Running IPSec Tunnel Creation Playbook�������������������������������������������������������������������������� 859
19.6 Summary�������������������������������������������������������������������������������������������������������������������������� 865

x
Table of Contents

Chapter 20: Object Addresses and Object Address Groups Creation


Playbook for Palo Alto Firewall���������������������������������������������������������������������������� 867
20.1 Enhancing Firewall Policies with the Use of Object Addresses and Object
Address Groups����������������������������������������������������������������������������������������������������������������� 868
20.2 Object Addresses and Object Address Groups Creation on a Palo Alto Firewall��������������� 869
20.3 Writing a Playbook to Create Object Addresses on a Palo Alto Firewall���������������������������� 871
20.4 Running the Playbook to Create Object Addresses on a Palo Alto Firewall����������������������� 874
20.5 Writing a Playbook to Create Object Address Groups on a Palo Alto Firewall������������������� 879
20.6 Running the Playbook to Create Object Address Groups on a Palo Alto Firewall�������������� 883
20.7 Summary�������������������������������������������������������������������������������������������������������������������������� 890

Chapter 21: Upgrading Palo Alto Firewalls����������������������������������������������������������� 891


21.1 Maintaining Palo Alto Network Firewall PAN-OS to the Latest Preferred Version������������� 892
21.2 Palo Alto Firewall PAN-OS Upgrade to Major Version: Manual Method����������������������������� 894
21.3 Writing a Palo Alto Firewall Upgrade Playbook: Automated Method��������������������������������� 901
21.4 Writing a Playbook to Back Up the Running Configuration of a Palo Alto Firewall������������ 902
21.5 Writing a Playbook Task to Update the Content (Applications and Threats) of a
Palo Alto Firewall��������������������������������������������������������������������������������������������������������������� 905
21.6 Writing a Playbook Task to Upgrade the PAN-OS of a Palo Alto Firewall��������������������������� 910
21.7 Running the Playbook to Back Up the Running Configuration on a Palo Alto Firewall������ 912
21.8 Running the Playbook to Update the Application and Threats Content of a Palo Alto
Firewall����������������������������������������������������������������������������������������������������������������������������� 914
21.9 Running the Playbook to Update the PAN-OS Version of a Palo Alto Firewall������������������� 917
21.10 Summary������������������������������������������������������������������������������������������������������������������������ 922

Index��������������������������������������������������������������������������������������������������������������������� 925

xi
About the Authors
Brendan Choi is a highly accomplished tech lead at Secure
Agility, with over 19 years of hands-on experience in the
ICT industry. He is a certified Cisco, VMware, and Fortinet
Engineer and has worked for renowned enterprises such
as Cisco Systems, NTT (Dimension Data), and Fujitsu, as
well as reputable Australian IT integrators like Telstra and
Secure Agility. Brendan specializes in optimizing enterprise
IT infrastructure management and enterprise business
process optimization, utilizing both open and proprietary
tools. He is the author of Python Network Automation: By
Building an Integrated Virtual Lab as well as Introduction
to Python Network Automation: The First Journey. Through these publications, Brendan
shared his knowledge with the IT community. He has trained over 200 network and
systems engineers on Python and Ansible Network Automation and enjoys sharing
industry-acquired knowledge through social media, blogging, and his YouTube channel.
Brendan’s current interests revolve around private cloud, enterprise networking,
security, virtualization, Linux, and automation technologies. His dedication and passion
for enterprise infrastructure management are evident in his commitment to continuous
learning, knowledge sharing, and contributing to the ICT industry as a whole.

xiii
About the Authors

Erwin Medina is an experienced Senior Network and


Security Engineer in the ICT industry with over 12 years
of experience. He holds certifications in Cisco, Palo Alto,
Fortinet, and Juniper technologies. Currently employed at
CSIRO, Erwin contributes to the organization’s network
and security operations and optimization, utilizing both
open and proprietary tools. Erwin began his career as a field
engineer in telecommunications before transitioning to
ICT as a network engineer, working with diverse networks
in customers’ production environments, network, and
security challenges. Embracing Ansible as his primary IT
tool, Erwin has successfully transitioned away from manual-driven tasks. During his
time at Telstra, Erwin had the privilege of being mentored by Brendan for over two years,
gaining invaluable experience in leveraging Ansible for enterprise network and security
device management. Currently, Erwin applies Ansible in real production scenarios to
drive efficiency and productivity wherever possible. He thrives on technical challenges
and eagerly adapts to the ever-evolving ICT landscape, actively contributing to his
organization’s success. Erwin’s commitment, expertise, and passion for sharing his
knowledge with others make him a valuable asset in the ICT industry.

xiv
About the Technical Reviewer
Nikhil Jain is an Ansible expert with over 12 years of DevOps
experience. He has been using Ansible and contributing to
it from its inception. He currently works closely with Ansible
Engineering.
He is an open source enthusiast and is part of the Ansible
Pune Meetup organizing team. He has presented multiple
Ansible sessions at various global and local events. Apart
from sitting in front of his computer automating things using
Ansible, he loves watching sports and is a regular part of the
local cricket team.

xv
Acknowledgments
I would like to express my heartfelt gratitude to Ty Starr at Telstra Purple and Kai
Schweisfurth at Ethan Group, my previous team managers, for providing me with the
opportunities to work with my former teams. Under Ty’s stewardship, I was able to
teach myself how to use Ansible for automation and knowledge share. Similarly, under
Kai’s guidance, I developed a passion for network automation using Python and eagerly
shared my learnings with my colleagues. I would also like to extend my thanks to my
former colleague, Justin Cheong at Mastercard, who consistently encouraged me to
write my first book and gave me the courage to become a published author. My deepest
appreciation goes to my coauthor, Erwin Medina, for his unwavering dedication, hard
work, and expertise, which greatly contributed to the completion of this book. I am also
grateful to my wife, Sue, and our children, Hugh, Leah, and Caitlin, for their unwavering
support throughout the process of creating this book. Their love and understanding
have been my pillars of strength. To my extended family, friends, and colleagues, I would
like to express my sincere thanks for your constant support. Lastly, I want to thank our
readers for embarking on their incredible network automation journey with us.

—Brendan Choi

I cannot express enough thanks to Brendan Choi for continuously mentoring me and
taking me under his wings to go through this journey. His passion, dedication, and drive
to accomplish this book to primarily teach and inspire serve to be the greatest part for
me. He taught me the valuable lesson of learning, sharing, and inspiring. I would like
to thank my wife, Jenny, and my son, Deon, for their support and prayers throughout
this process. To my friends and colleagues who have become like family, I extend my
heartfelt gratitude. To the readers, I sincerely thank you, and I hope that this book will
provide help and inspiration as you embark on your journey, just as I was inspired by
Brendan.

—Erwin Medina

xvii
Introduction
The use of Ansible in enterprise network administration has gained significant
popularity among leading IT organizations. It is recognized as the most effective tool for
automating network devices within a short time frame, revolutionizing the way network
administrators manage their infrastructure. In response to this growing demand, we
present Introduction to Ansible Network Automation: A Practical Primer, a book that
offers readers a structured learning path to build a solid foundation in Ansible.
Written by real ICT professionals for true ICT professionals, this book cuts
through the fluff and delivers practical knowledge without false assumptions. We
have written this book based on the assumption that all our readers enjoy working in
the ICT industry and prefer a hands-on learning approach over a purely theoretical one.
This book is not for the faint-hearted but is designed for individuals with an unwavering
“never-say-die” attitude who refuse to give up at work and in their lives. We aim to
provide an authentic experience, taking readers on the actual journey of acquiring
network automation skills using Ansible from the ground up.
While there are numerous Linux and network Ansible automation resources
available, most of them assume that readers have already reached an adequate skill level
to start writing working YAML code from day one. These resources rarely show what it
takes to reach that level and often focus solely on selling the dream of Ansible without
discussing the effort and challenges involved. Our book offers a truthful approach,
immersing readers in the journey and allowing them to feel what it’s like to acquire
network automation skills using Ansible. They will install and configure everything
themselves, follow along with the book, make mistakes, stumble, and ultimately push
themselves to learn the necessary skills to become comfortable with using Ansible
playbooks and YAML scripts.
As you can tell from the title, this book serves as a sequel to Introduction to Python
Network Automation: The First Journey by Brendan Choi. Both titles are indispensable
resources for IT professionals and students seeking to enhance their automation skills
and apply them in real-world scenarios in enterprise production networks. This book
provides a comprehensive learning journey, guiding readers to master Ansible and
utilize it for automating enterprise network devices such as routers, switches, firewalls,

xix
Introduction

Wireless LAN Controllers (WLCs), and Linux servers. What sets this book apart is
its laser-focused emphasis on Linux, Ansible, and network automation; really, we
have squeezed three basic books into one! It is specifically designed for IT engineers
and students who want to get hands-on experience and build an Ansible Network
Automation lab from scratch. Real-life examples of Ansible playbooks developed from
actual enterprise infrastructure are provided, giving readers a thorough understanding
of how Ansible can be effectively utilized in the real world.
By engaging with this book, readers will acquire valuable knowledge and skills in
network automation using Ansible. The book takes readers on a structured learning
path, gradually building their understanding and proficiency in Ansible. Firstly,
readers will develop a comprehensive understanding of Ansible and its essential
concepts for automating network devices. They will learn how to apply these concepts
to real-world scenarios, gaining the skills required to automate enterprise network
devices effectively. Secondly, readers will master the basics of Ansible operations
within Linux automation and progress to applying Ansible concepts to network
devices. They will establish a solid foundation for network automation tasks by
navigating and utilizing Ansible within the Linux environment. Thirdly, readers will
learn to develop and execute Ansible ad hoc commands and playbooks for various
network operations, including configuration management, software updates,
and system monitoring. Through practical examples and exercises, readers will gain
hands-on experience in crafting Ansible playbooks to automate critical network tasks.
Next, readers will work with real-life examples of Ansible playbooks developed
from enterprise infrastructure. This practical experience will enable them to write
Ansible YAML scripts confidently, ensuring they are well prepared to tackle network
automation challenges in real-world environments. Lastly, readers will acquire the
skills necessary to automate network operations using Ansible in selective scenarios
for enterprise production environments. They will gain insights into streamlining
network management processes and transitioning from manual tasks to full automation,
enhancing efficiency and productivity. Through the content and exercises provided in
this book, readers will be equipped with the knowledge and skills to effectively apply
Ansible in network automation, empowering them to navigate the ever-evolving world of
network administration with confidence and proficiency.

xx
Introduction

We designed this book for diverse readers seeking to enhance their network
automation skills using Ansible. It caters to IT students, network engineers, and
developers managing IP services, networking devices, servers, cloud, and data centers.
Technical leaders implementing network automation, mentors training team members,
instructors teaching network automation, and Cisco Networking Academy students
pursuing certifications in network administration will find value in this book. It targets
those interested in integrating network automation into their development process and
offers practical knowledge for a wide readership. By leveraging Ansible, readers can learn
and apply network automation techniques effectively. Join us on this journey to expand
your network automation capabilities and unlock new possibilities in your work.

xxi
CHAPTER 1

Is Ansible Good
for Network Automation?
This chapter offers a brief overview of the current trends in the networking industry and
the reasons why Ansible has become a popular tool for enterprise IT configuration and
orchestration. The authors introduce Ansible, explaining its workings at a high level
and its relevance to working IT engineers, operations managers, as well as to business
stakeholders from a commercial stance. The chapter also lays out a comprehensive
study plan that will guide readers through the technologies and help them improve their
skills. Moreover, the chapter delves into the basic hardware and software required to
embark on an Ansible automation journey. It provides information on the minimum PC/
laptop requirements needed to build a fully working Ansible/Linux/network automation
lab on a single laptop, along with a recommended software set for installing virtual
devices such as Linux servers, routers, switches, and firewalls. By the end of this chapter,
readers will have a solid understanding of why Ansible is important to the Information
and Communication Technology (ICT) industry, what they need to know to become
proficient in it, and what resources they require to build their own Ansible lab. This
chapter will serve as the foundation for the subsequent chapters in the book, allowing
readers to develop their skills and knowledge in a structured and organized manner.

3
© Brendan Choi and Erwin Medina 2023
B. Choi and E. Medina, Introduction to Ansible Network Automation,
https://doi.org/10.1007/978-1-4842-9624-0_1
Another random document with
no related content on Scribd:
Pilkkasiko tuo nainen häntä? Hänen äänessään oli säilynyt
eräänlainen walesilainen terävyys huolimatta kaikesta lännen
vaikutuksesta. Jospa hän tiesi? Ja samassa Ashurst ajatteli: "Ei! ei!
lähden tieheni täältä. En rupea asettamaan itseäni niin
luonnottomaan, kieroon asemaan."

Mutta aamiaisen jälkeen valtasi mielen kaipaus, hänen täytyi


saada nähdä Megan, ja tuo kaipaus kasvoi hetki hetkeltä samoin
kuin pelko, että tytölle oli sanottu jotakin, mikä oli pilannut kaikki. Jo
se oli omiaan herättämään epäilyksiä, ettei tyttö vielä ollut
näyttäytynyt eikä sallinut hänen nähdä vilahdustakaan itsestään. Ja
rakkausruno, jota Ashurst oli eilen niin hartaasti sepitellyt
omenapuun alla, tuntui hänestä nyt niin surkealta, että hän repi sen
rikki ja sytytti sillä piippunsa. Mitä hän olikaan tiennyt rakkaudesta,
ennen kuin Megan oli tarttunut hänen käteensä ja suudellut sitä? Ja
nyt — mitä hän tiesi siitä nyt? Mutta siitä kirjoittaminen tuntui perin
typerältä. Hän meni noutamaan makuuhuoneesta jotakin kirjaa, ja
hänen sydämensä alkoi jyskyttää kovasti, sillä tyttö oli huoneessa
korjaamassa hänen vuodettaan. Ashurst seisoi ovella tarkaten tyttöä,
ja odottamatta hän näki riemukseen Meganin kumartuvan
suutelemaan päänalusta juuri sen syvennyksen kohdalta, jonka
hänen päänsä oli yöllä siihen painanut. Miten ilmaista tytölle, että oli
nähnyt tämän kauniin tunteiden ilmaisun? Mutta jos tyttö kuulisi
hänen hiipivän pois, asia olisi vielä hullummin. — Tyttö piteli pielusta
käsissään, ikäänkuin olisi epäröinyt, hävittääkö siitä pään painaman
syvennyksen, laski sen sitten vuoteeseen ja kääntyi.

"Megan!" Tyttö vei kätensä poskilleen, mutta hänen silmänsä


näyttivät katsovan suoraan nuorukaisen silmiin. Ashurst ei ollut
koskaan ennen nähnyt niin kauniina sellaista syvyyttä, puhtautta ja
liikuttavaa luottavaisuutta, joka ilmeni tytön kasteenhohtoisissa
silmissä, ja hän sopersi:

"Teitte kiltisti, kun valvoitte viime yönä ja odotitte, kunnes palasin."

Tyttö ei sanonut mitään, ja poika puhui edelleen


hämmennyksissään:

"Kävelin nummella, oli niin kaunis ilta — tulin noutamaan kirjaa."

Mutta suudelma, jonka Ashurst oli nähnyt tytön painavan


päänaluseen, antoi hänelle äkkiä rohkeutta, ja hän astui tytön
viereen. Koskettaen tytön silmiä huulillaan hän ajatteli omituisen
mielenliikutuksen vallassa: "Nyt olen sen tehnyt! Eilinen oli ikäänkuin
yllätys, mutta nyt, nyt olen sen tehnyt!" Tyttö antoi otsansa levätä
pojan suuta vasten, joka liukui pitkin hänen kasvojaan, kunnes löysi
hänen huulensa. Kumpaa sydäntä tämä ensimmäinen, todellinen —
ihmeellinen, omituinen, vielä miltei viaton rakkaudensuudelma —
hämmensi syvemmin?

"Tule suuren omenapuun alle illalla, kun muut ovat menneet


levolle! — lupaathan, Megan?"

Tyttö kuiskasi: "Lupaan."

Samassa Ashurst pelästyen tytön kalpeita kasvoja, pelästyen


kaikkea, hellitti otteensa ja laskeutui kiireesti alakertaan. Nyt hän oli
sen tehnyt! Vastaanottanut tytön rakkauden ja tunnustanut omansa.
Hän meni ulos ilman kirjaa, kuten äskenkin, istuutui vihreään
puutarhatuoliinsa ja jäi tuijottamaan eteensä tyhjyyteen, tuntien
voitonriemua ja samalla tunnonvaivoja, jolla välin hänen edessään ja
hänen selkänsä takana tehtiin maatilan jokapäiväisiä töitä tavalliseen
tapaan. Hän ei itse tiennyt, kuinka kauan oli istunut tuollaisessa
omituisessa tyhjyydentilassa, kun huomasi Joen seisovan takanaan
hiukan oikealla. Nuorukainen oli ilmeisestikin tullut kovasta työstä
pellolta ja seisoi nyt tuossa, nojaten vuoroin toiseen, vuoroin toiseen
jalkaansa ja syvään hengittäen. Hänen kasvonsa olivat punaiset kuin
auringonlasku ja käsivartensa käärittyjen, sinisten paidanhihojen
alapuolella karvaiset ja värikkäät kuin kypsät persikat. Hänen
punaiset huulensa olivat avoinna, ja siniset silmät, joiden ripset olivat
harmaan keltaiset, tuijottivat hellittämättä Ashurstiin, kunnes tämä
sanoi pilkallisella äänellä:

"No, Joe? Voinko jotenkin olla avuksi?"

"Kyllä."

"Miten siis?"

"Voitte lähteä täältä tiehenne! Emme tarvitse teitä."

Ashurstin kasvot, jotka eivät koskaan olleet erikoisen nöyrät,


saivat kaikkein ylpeimmän ilmeensä.

"Olette sangen ystävällinen, mutta minusta on parempi, että toiset


teikäläiset itse puhuvat puolestaan."

Nuorukainen tuli pari askelta lähemmäksi, ja hänen rehellisen


hikensä haju kiusasi Ashurstin nenää.

"Miksi yhä viivytte täällä?"

"Siksi, että se huvittaa minua."

"Tokkohan sitten huvittaa, kun minä isken kallonne murskaksi!"


"Todellakin? Milloin aiotte yrittää?"

Joe vastasi vain raskaasti huohottaen, mutta hänen silmissään oli


ilme kuin nuorella, kiukustuneella sonnilla. Hänen kasvonsa
vääntyivät rumaan irvistykseen.

"Megan ei välitä teistä!"

Mustasukkaisuuden, vihan ja halveksimisen puuska tuota


kömpelöä, läähättävää moukkaa kohtaan sai Ashurstin valtoihinsa,
hänen itsehillintänsä petti. Hän kavahti pystyyn ja sysäsi tuolin
syrjään.

"Piru teidät periköön!"

Juuri lausuttuaan nuo yksinkertaiset sanat hän näki Meganin


oviaukossa pieni ruskea koiranpentu sylissä. Tyttö riensi häntä
kohden:

"Sillä on siniset silmät!"

Joe kääntyi selin. Hänen niskansa hohti purppuranpunaisena.

Ashurst laski sormensa tytön sylissä makaavan pikku pennun


kuonolle. Kuinka hyvä sillä tuntuikaan olevan siinä painautuneena
tytön ruumista vasten!

"Se jo pitää teistä. Niin, Megan, kaikki pitävät teistä!"

"Mitä Joe sanoi teille?"

"Käski minua lähtemään tieheni, koska ette enää tahdo pitää


minua täällä."
Tyttö polki jalkaa ja katsoi sitten Ashurstia suoraan kasvoihin. Tuo
ihaileva katse pani pojan hermot värisemään, ikäänkuin hän olisi
nähnyt hyönteisen polttavan siipiään.

"Illalla siis", virkkoi Ashurst, "älkää unohtako!"

"En."

Ja painaen kasvonsa pennun lihavaa, ruskeaa pientä ruumista


vasten tyttö lähti takaisin taloon.

Ashurst asteli kujatiellä. Niityn veräjälle saapuessaan hän tapasi


ontuvan miehen lehmineen.

"Kaunis päivä, Jim."

"Niin on, kyllä nyt heinä kasvaa. Tänä vuonna ovat saarnet
myöhäisempiä kuin tammet. Kun tammi ehtii lehteen ennen kuin
saarnit —"

Ashurst keskeytti hänet huolettomasti:

"Missä olitte silloin, kun näitte mustalaiskummituksen?"

"Luulen melkein, että seisoin tuon suuren omenapuun


siimeksessä."

"Ja uskotte, että se todella oli tuolla?"

Ontuva mies vastasi varovasti:

"Tahtoisinpa väittää, että siltä näytti. Niin ainakin minusta tuntui."

"Mitä siitä ajattelette?"


Mies hiljensi ääntään:

"Sanotaan, että vanha isäntä, herra Narracombe, oli


mustalaissukua. Niin ainakin kerrotaan. Ja ne ovat kumman kiivaita
pitämään kiinni omastaan, niinkuin tiedätte. Ehkäpä ne tiesivät
edeltäpäin, mitä täällä tapahtuu, ja lähettivät sen miehen häntä
hakemaan. Niin ainakin minä olen sen asian tuuminut."

"Minkä näköinen tuo mustalaiskummitus oli?"

"Sillä oli naama kokonaan karvojen peitossa ja se käveli näin,


ikäänkuin olisi ontunut. Sanotaan, ettei muka kummituksia ole
olemassa, mutta näin kerran pimeänä yönä koiran karvojen
nousevan pystyyn, vaikk'en itse voinut huomata mitään."

"Oliko silloin kuutamo?"

"Oli, melkein täysikuu, mutta se oli vast'ikään noussut


taivaanrannan yläpuolelle. Paistoi puunrunkojen välitse."

"Ja arvelette, että kummitus tietää onnettomuutta, vai miten?"

Ontuva mies työnsi hatun takaraivolle ja hänen


ylöspäinkääntyneet silmänsä katsoivat Ashurstiin vakavammin kuin
konsanaan.

"Sitä en osaa sanoa, mutta kun kaikki ovat niin levottomia,


ikäänkuin… Taitaapa olla sellaisia asioita, joita me emme käsitä, se
on varma se. Toiset näkevät aina kaikenlaista kummallista, toiset
eivät näe milloinkaan mitään. Katsokaahan tuota meidän Joe-poikaa!
Pistipä hänen nenänsä alle mitä hyvänsä, ei hän sitä huomaa,
eivätkä nuo toisetkaan pojat, ovat sellaisia suupaltteja vekaroita.
Mutta viekääpä meidän Meganimme sellaiseen paikkaan, niissä on
jotakin nähtävää, niin hänpä näkee, enemmänkin kuin muut, jollen
ihan pahasti erehdy."

"Johtuu kai siitä, että hän on tunteellinen."

"Mitä tarkoitatte?"

"Tarkoitan, että hän tuntee kaiken hyvin herkästi."

"Niin tottakin, hän on hyvin helläsydäminen."

Ashurst, joka tunsi punastuvansa, ojensi miehelle


tupakkakukkaronsa.

"Pistäkää piippuun, Jim!"

"Kiitoksia, herra. — Minun mielestäni ei sellaisia tyttöjä ole kuin


tuskin yksi sadasta."

"Sen kyllä uskon", sanoi Ashurst, veti tupakkakukkaronsa kokoon


ja lähti jatkamaan matkaansa.

"Helläsydäminen!" Niin, ja mitä hän oli tekemäisillään? Mitkä olivat


hänen tarkoituksensa — kuten sanontatapa kuuluu — tuohon
helläsydämiseen tyttöön nähden? Tämä ajatus vaivasi häntä hänen
kävellessään poikki kedon, jossa voikukat hohtivat keltaisina,
punaisia vasikoita kävi laitumella ja jonka yllä pääskyset sujahtivat
korkeudessa. Niin, tammi oli ehtinyt ennen saarnea ja oli jo
keltaisenruskea… Joka puu oli omassa erikoisessa
kehityskaudessaan ja häipyvässä vaiheessaan. Käki kukkui,
tuhannet pikkulinnut lauloivat, pikku puro kimmelsi ja välkkyi. Antiikin
ihmiset puhuivat kultaisesta aikakaudesta, Hesperian puistoista!…
Ampiaiskuningatar istuutui hänen hihalleen. Jokainen tapettu
ampiaiskuningatar merkitsi kahtatuhatta ampiaista vähemmän
rosvoamassa hedelmiä, jotka kehittyivät puutarhan omenankukista.
Mutta kuinka mies, jonka sydän oli tulvillaan rakkautta, saattaisi
tappaa maan matoakaan sellaisena päivänä kuin tämä? — Ashurst
meni kedolle, jossa oli nuori sonni laitumella. Ashurstin mielestä se
oli Joen näköinen. Mutta mullikka ei kiinnittänyt vieraaseen lainkaan
huomiota. Kenties sekin oli hiukan kuin päästään pyörällä
linnunlaulusta ja laidunmaan kultaisesta loistosta. Ashurst sai mennä
rauhassa niityn poikki jokitöyräälle, mistä puroon pisti terävä
kallionkieleke. Sen kohdalla oli maa sinikellojen peitossa, ja
kymmenkunta metsäpuuta rehoitti siellä täydessä kukassa. Ashurst
heittäytyi pitkäkseen nurmelle. Voikukkien ja tammien kultaisen
loiston jälkeen vaikutti tämä ilmava kauneus kallionkielekkeen
suojassa häneen kuin ihme. Luonnossa ei mikään ollut samanlaista,
paitsi virtaavan veden solina ja käkien kukunta. Hän makasi siinä
kauan tarkastellen, kuinka auringonkehrä hitaasti liikkui, kunnes
metsäomenapuut loivat varjonsa sinikellojen ylle. Muutamat
kimalaiset olivat hänen ainoana seuranaan. Hän tunsi päätään
huimaavan ajatellessaan aamuista suudelmaa ja kohtaamista
omenapuun alla. Sellaisella paikalla kuin tämä oli varmaankin
fauneja ja metsänneitoja. Nymfit, jotka olivat valkoisia kuin
metsäomenapuun kukat, piileskelivät noiden puiden takana. Faunit,
ruskeat kuin kuivat kämmekkäät, vaanivat näitä höristäen
suippopäisiä korviaan.

Käki kukkui vielä hänen herätessään. Kuului veden solinaa, mutta


aurinko oli hävinnyt kallion taa, rinne oli varjossa, ja muutamia
kaniineja oli kömpinyt koloistaan ruokailemaan. "Tänä iltana!" ajatteli
hän. Kuin pehmeän, näkymättömän käden kohottamana kaikki nousi
maasta ja kehittyi, samoin olivat hänenkin sydämensä ja aistinsa
kehittyneet. Hän nousi ja taittoi metsäomenapuusta pienen oksan.
Umput muistuttivat Megania — ne olivat sirosti muovautuneet kuin
simpukankuoret, ruusunpunaisia, luonnonraikkaita ja liikuttavia. Hän
pisti oksan napinreikään. Ja hänen rinnassaan kuohuvan kevään
hurma purkautui riemukkaaksi huokaukseksi. Mutta kaniinit puittivat
tiehensä.
VI.

Kello oli sinä iltana lähes kaksitoista, kun Ashurst laski käsistään
"Odysseiansa" (taskukokoa), jota oli puolen tunnin ajan pidellyt
käsissään sitä kuitenkaan lukematta, ja hiipi pihamaan poikki
hedelmäpuutarhaan. Kuu oli vast'ikään kullanhohteisena noussut
kukkulan yläpuolelle ja kurkisti kuin loistava, valvova henki saarnen
puolipaljaiden oksien lomasta. Omenapuiden varjossa oli vielä
pimeää; Ashurst pysähtyi tutkimaan, mihin suuntaan hänen oli
kuljettava, ja tunnusteli maata jalallaan. Aivan hänen takanaan
liikahti tumma röykkiö kumeasti röhkien: kolme suurta sikaa paneutui
takaisin vierekkäin pitkäkseen muurin vierustalle. Ashurst kuunteli.
Oli aivan tyyni, mutta joen hiljainen, iloinen solina kuului paljon
voimakkaammin kuin päivällä. Jokin yölintu — hän ei tuntenut sitä —
piipitti yksitoikkoisesti. Kaukana kuului ruisrääkkä ääntelevän.
Yksinäinen pöllö huusi. Ashurst astui pari askelta eteenpäin ja
pysähtyi taaskin tuntien päänsä ympärillä sumuista valkeutta.
Tummissa, liikkumattomissa puissa oli lukematon määrä umppuja ja
kukkia pehmeinä ja epämääräisinä vironnut elämään hiipimässä
kuunvalossa. Ashurstilla oli omituinen tunne, että hänellä oli seuraa,
ikäänkuin miljoonittain valkoisia perhosia tai henkiä olisi asettunut
tumman taivaan ja vielä tummemman maan väliin aukoen ja sulkien
siipiään hänen silmiensä korkeudella. Hetken huumaavassa,
hiljaisessa, tuoksuttomassa kauneudessa hän melkein unohti, miksi
oli tullut puutarhaan. Se värisevä loisto, johon päivä oli pukenut
luonnon, ei ollut hävinnyt yön tullen, oli vain saanut tämän uuden
muodon. Hän käveli eteenpäin runkojen ja oksien lomitse, joita
verhosi tuo elävä valkeus, ja pääsi vihdoin ison omenapuun juurelle.
Hän ei voinut erehtyä siitä edes pimeässä, sillä se oli muita lähes
toista vertaa korkeampi ja laajempi ja ojenteli oksiaan kauas kedolle
ja purolle päin. Sen tiheiden oksien alla hän pysähtyi uudelleen
kuuntelemaan. Kuului taaskin samat äänet kuin äsken — myöskin
unisten sikojen heikkoa röhkinää. Hän laski kätensä paksulle,
melkein lämpimälle puunrungolle, jonka karhea, sammaleinen pinta
tuoksahti heikosti turpeelle hänen sitä koskettaessa. Tuleekohan
tyttö — niin, mahtaakohan hän tulla? Ja seistessään värisevien,
kuunvalossa aavemaisina, kuin lumottuina kohoavien puiden
keskellä hän alkoi epäillä kaikkea. Kaikki oli täällä kuin yliluonnollista,
sopimatonta maisille rakastaville. Tämä seutu sopi vain jumalille ja
jumalattarille, fauneille ja nymfeille — ei hänelle ja nuorelle
maalaistytölle. Eiköhän hän melkein tuntisi mielenhuojennusta, jos
tyttö jäisi tulematta. Mutta kaiken aikaa hän kuulosteli. Tuntematon
lintu piipitti ja kuului solinaa pikku purosta, jonka pinnalle kuu loi
katseitaan puun oksaverkon takaa. Hänen silmiensä korkeudella
näyttivät omenankukat käyvän joka hetki yhä elävämmiksi, tuntuivat
salaperäisessä valkeassa kauneudessaan yhä enemmän ikäänkuin
muuttuvan osaksi hänen omaa jännittynyttä odotustaan. Hän katkaisi
pienoisen oksan — kolme kukkaa. Pyhyydenloukkausta poimia
hedelmäpuiden kukkasia — pehmeitä, pyhiä nuoria kukkasia — ja
heittää ne pois. Samassa hän kuuli veräjän narahtavan; siat
liikahtivat taaskin rohkaisten; ja nojautuen puunrunkoon Ashurst
painoi kätensä sen sammaliseen kupeeseen pidättäen hengitystään.
Tuntui kuin tyttö olisi ollut henki, joka leijui puiden lomitse — niin
äänettömästi hän liikkui. Samassa Ashurst näki hänet aivan
lähellään — näki hänen tumman hahmonsa ikäänkuin osana
pienestä puusta, hänen valkoiset kasvonsa kuin osana sen
kukkasista. Tyttö oli aivan ääneti ja katsoi häntä kohti. Ashurst
kuiskasi: "Megan!" ja ojensi kätensä. Tyttö syöksähti eteenpäin,
suoraan hänen rintaansa vasten. Kun tytön sydämen sykintä tuntui
nuorukaisen omaa vasten, Ashurst tunsi ritarillisuuden tunteiden ja
intohimon voimakkaina liikkuvan povessaan. Koska tyttö ei ollut
hänen säätyään, vaan noin yksinkertainen ja nuori ja ajattelematon,
noin voimakas rakkaudessaan ja avuton, niin miten Ashurst olisi
voinut muuta kuin esiintyä hänen suojelijanaan pimeydessä! Mutta
koska tyttö oli kuin itse luontoa ja kauneutta, kuin osa tästä
kevätyöstä samalla tavoin kuin kukkaset, niin kuinka hän, Ashurst,
saattoi olla ottamatta kaikkea, minkä tyttö tahtoi hänelle antaa —
kuinka hän saattoi olla päästämättä kevättä puhkeamaan täyteen
kukoistukseen tytön ja omassa sydämessään! Ja näiden kahden
ristiriitaisen tunteen raatelemana hän painoi tytön lujasti rintaansa
vasten ja suuteli hänen hiuksiaan. Kuinka kauan he siinä seisoivat
sanaakaan vaihtamatta, sitä hän ei tiennyt. Puro solisi entiseen
tapaansa, pöllöt huutelivat, kuu kiipesi yhä korkeammalle ja muuttui
samalla valkoisemmaksi. Heidän ympärillään ja yläpuolellaan kävivät
kukat yhä loistavammaksi elävässä kauneudessaan. Heidän
huulensa olivat löytäneet toisensa, ja he olivat vaiti. Jos he olisivat
puhuneet, olisi kaikki samassa hetkessä muuttunut epätodelliseksi.
Keväällä ei ole sanoja, vain solinaa ja kuiskauksia. Keväällä on
paljon enemmän kuin sanoja puhkeavissa kukkasissaan ja
lehdissään, purojen solinassa, valoisassa, uupumattomassa
etsinnässään. Ja toisinaan kevät muuttuu eläväksi ja kietoo jonkin
salaperäisen olennon tavoin käsivartensa rakastavien ympärille
koskettaen heitä taikasauvallaan, niin että he seisten huulet huulia
vasten unohtavat kaiken muun paitsi suudelman. Kun tytön sydän
sykki Ashurstin sydäntä ja huulet värjyivät hänen huuliaan vasten, ei
nuorukainen tuntenut muuta kuin sekoittumatonta onnentunnetta —
kohtalo oli määrännyt tytön häntä varten, rakkaus ei antanut pettää
itseään. Mutta kun heidän huulensa erkanivat ja he hengähtivät,
alkoi ristiriita samassa. Intohimo oli nyt voimakkaampi, ja
nuorukainen huokasi:

"Ah, Megan, miksi tulitkaan?"

Tyttö katsoi häneen onnettomana, hämillään.

"Tehän pyysitte minua tulemaan, herra."

"Älä sano minua herraksi, kaunis rakastettuni."

"Miksi sitten sanon teitä?"

"Sano Frankiksi."

"En voi. Voi, en mitenkään!"

"Mutta rakastathan minua, vai mitä!"

"En voi olla rakastamatta teitä. Tahdon aina olla teidän luonanne
— siinä kaikki."

"Kaikki?"

Niin hiljaa, että nuorukainen tuskin sitä kuuli, tyttö kuiskasi:

"Kuolen, jollen saa olla teidän luonanne!"

Ashurst veti syvään henkeä.


"Tule siis ja jää luokseni!"

"Ah!"

Tytön huudahdukseen sisältyvästä tunteen hurmiosta kuin juopuen


Ashurst jatkoi kuiskaten:

"Lähdetään Lontooseen. Tahdon näyttää sinulle maailmaa! Ja


minä pidän huolen sinusta, Megan, sen lupaan! Enkä ole milloinkaan
sinulle kova."

"Tahdon vain olla teidän kanssanne — en mitään muuta" Poika


silitti tytön hiuksia ja kuiski edelleen: "Huomenna lähden Torquayhin
hankkimaan rahaa ja sinulle joitakin pukuja, jotka eivät herätä
huomiota, ja sitten karkaamme. Ja kun tulemme Lontooseen, ehkä
piankin, menemme naimisiin, jos rakastat minua kylliksi."

Ashurst tunsi tytön hiusten värisevän hänen pudistaessaan


päätään. "Voi ei, en voi! Tahdon vain olla teidän luonanne." Oman
ritarillisuutensa huumaamana Ashurst jatkoi kuiskaten:

"En ole kyllin hyvä sinulle! Sano, Megan, milloin aloit rakastaa
minua?"

"Kun näin teidät tiellä ja te katsoitte minuun. Jo ensi iltana


rakastuin teihin. Mutta en koskaan uskonut, että te välittäisitte
minusta."

Tyttö laskeutui äkkiä polvilleen ja koetti suudella nuorukaisen


jalkoja.

Kauhun väristys puistatti Ashurstin ruumista. Hän pakotti tytön


nousemaan maasta ja piteli hänestä kiinni. Hän oli liian kiihtynyt
voidakseen puhua.

Tyttö kuiskasi:

"Miksi ette sallinut minun tehdä niin?"

"Minun on suudeltava sinun jalkojasi!"

Meganin hymy toi kyynelet Ashurstin silmiin. Tytön kuutamon


valaisemilla kasvoilla, jotka olivat niin lähellä nuorukaista, hänen
avointen huultensa heikossa punassa oli omenankukkien eloisaa ja
samalla ylimaallista kauneutta.

Samassa hänen silmänsä äkkiä aukenivat selkoselälleen, ja hän


tuijotti tuskallisesti jonnekin nuorukaisen ohi. Hän riistäytyi Ashurstin
syleilystä ja kuiskasi:

"Katsokaa!"

Ashurst ei nähnyt mitään muuta kuin kiiltävän vedenkalvon,


heikosti kullanhohteiset keltakiulukat, hohtavat pyökit ja kauempana
kuun valaiseman kummun laajan pinnan. Takanaan hän kuuli tytön
jäätävää kauhua ilmaisevan kuiskauksen: "Mustalaiskummitus."

"Missä?"

"Tuolla — kiven luona — puiden alla!"

Kiihdyksissään Ashurst harppasi puron yli ja juoksi


pyökkipuuryhmää kohti. Kuutamon taikaleikkiä! Ei mitään näkyvissä.
Hän juoksi edestakaisin kivilohkareiden ja orapihlajain välitse,
itsekseen puhellen ja sadatellen, mielettömän pelästyksen vallassa,
kompastuen ja haparoiden. Joutavia! Tyhmyyksiä! Ja hän palasi
omenapuun juurelle. Mutta tyttö oli poissa. Poika kuuli kahinaa,
veräjän narahtavan, sikojen äännähtävän. Tytön asemesta vain
vanha omenapuu! Hän kietoi käsivartensa sen ympäri — äsken hän
oli syleillyt tytön pehmeää ruumista! Karhea sammal poskea vasten
— äsken siihen nojasi tytön pehmeä poski! Vain metsän tuoksu oli
sama. Ja hänen päänsä päällä ja ympärillään näyttivät kukat
hehkuvan ja hengittävän elävämpinä ja kirkkaampina kuin
milloinkaan ennen.
VII.

Ashurst poistui junasta Torquayn asemalla ja harhaili kaupungin


katuja, sillä hän ei tuntenut tätä Englannin kylpypaikkojen
kuningatarta. Hän ei tavallisesti juuri huomannutkaan, miten oli
pukeutunut, ja niinpä hän nytkin vaelteli huoletonna yllään karkea
Norfolk-nuttu, jalassa tomuiset saappaat ja päässä kuhmuinen hattu,
huomaamatta lainkaan, että ihmiset katsoivat häneen jotenkin
pitkään. Hän etsi käyttämänsä lontoolaisen pankin haarakonttoria, ja
kun hän oli sen löytänyt, hänen mielitekonsa toteuttamisen tielle
nousi samalla ensimmäinen este. Tunsiko hän ketään Torquayssa?
tiedusteltiin häneltä. Ei, hän ei tuntenut ketään. Siinä tapauksessa
hänen oli ensin lähetettävä sähkösanoma pankin Lontoon konttoriin
— kun vastaus oli tullut, häntä palveltaisiin kernaasti. Tämä
tuulahdus epäluuloisesta käytännön maailmasta himmensi hiukan
hänen unelmiensa loistoa. Mutta hän lähetti sähkösanoman.

Melkein postitaloa vastapäätä hän huomasi naisten


vaatetusliikkeen, ja hän tarkasteli näyteikkunaa mielessä outo tunne.
Huolenpito maalaisrakkautensa pukimista pyrki sentään hieman
panemaan pään pyörälle! Hän astui liikkeeseen. Häntä vastaan tuli
nuori nainen, jonka siniset silmät näyttivät hiukan hämmästyneiltä.
Ashurst katsoi häneen sanaakaan sanomatta.
"Mitä saa luvan olla!"

"Haluaisin puvun nuorelle naiselle."

Myyjätär hymyili. Ashurst rypisti otsaansa — hänen


toivomuksensa omituisuus yllätti hänet itsensä äkillisellä voimalla.

Myyjätär lisäsi nopeasti:

"Mitä tyyliä haluatte. Jotakin uudenaikaista?"

"Ei. Yksinkertaista."

"Minkälainen vartalo sillä nuorella naisella on?"

"En tiedä. Noin pari tuumaa teitä lyhyempi, luulisin."

"Voitteko sanoa hänen vyötärönsä mitan?"

Meganin vyötärö!

"Hm — tavallinen."

"Hyvä."

Sen aikaa kuin myyjätär oli poissa Ashurst tarkasteli ikkunaan


näytteiksi asetettuja malleja, ja äkkiä hänestä alkoi tuntua
uskomattomalta, että Megan, hänen Meganinsa, koskaan voisi olla
pukeutuneena muulla tavoin kuin karkea villahame ja pusero yllä,
päässä pyöreä lakki, sellaisena, jollaisena hän oli tottunut tytön
näkemään. Nuori myyjätär palasi takaisin käsivarrellaan useita
pukuja, ja Ashurst tarkasteli häntä hänen pitäessä pukua toisensa
jälkeen uudenaikaista vartaloaan vasten. Pukujen joukossa oli yksi,
jonka väri miellytti Ashurstia. Se oli kyyhkynharmaa, mutta hän ei
voinut kuvitella Megania siihen pukeutuneena. Myyjätär meni
noutamaan lisää pukuja. Mutta Ashurstin oli vallannut lamauttava
tunne. Miten suoriutua valinnassa? Sitä paitsi tyttö tarvitsi hatun,
kenkiä ja hansikkaita. Entäpä jos kaikki nuo laitokset vain tekisivät
hänet arkipäiväisen näköiseksi, niinkuin sunnuntaipukimet aina
maalaisväen? Miksi ei Megan voinut lähteä sellaisena kuin hän oli?
Niin, mutta hän ei saanut olla millään tavoin silmäänpistävä. Tämä
oli vakava naisenryöstö. Ja Ashurst katsoi myyjätärtä ja ajatteli
mielessään: "Mahtaakohan tuo arvata, mistä on kysymys, ja pitää
minua lurjuksena?"

"Tahdotteko olla hyvä ja panna tuon harmaan puvun erilleen


minun laskuuni", virkkoi Ashurst vihdoin epätoivoissaan. "En voi nyt
päättää. Tulen iltapäivällä takaisin."

Nainen huokasi.

"Kyllä, mielelläni. Se on hyvin aistikas puku. En usko teidän


löytävän paremmin tarkoitukseenne sopivaa."

"Sen uskon itsekin", mutisi Ashurst ja lähti kaupasta.

Päästyään taas rauhaan maailman epäluuloiselta


käytännöllisyydeltä hän veti syvään henkeä ja palasi unelmiinsa.
Mielikuvituksessaan hän näki kauniin, luottavaisen olennon, joka
aikoi liittää elämänsä hänen elämäänsä. Hän näki itsensä ja tytön
hiipimässä pois talosta yön aikaan, kulkemassa nummen poikki
kuutamossa, hän käsivarsi tytön vyötäisillä ja tämän uusi puku
toisella käsivarrella, kunnes tyttö jossakin syrjäisessä viidakossa
aamuhämärissä vaihtaa vanhan pukunsa uuteen; hän näki varhaisen
junan joltakin kaukaiselta asemalta vievän heidät kuherrusmatkalle
sekä vihdoin Lontoon nielevän heidät ja rakkaudenunelmien
muuttuvan todellisuudeksi.

"Frank Ashurst! Enpä ole nähnyt sinua Rugbyn jälkeen! Hei,


vanha veitikka."

Ashurstin rypistyneet silmäkulmat silisivät. Kasvot, jotka olivat


ilmestyneet aivan lähelle hänen omiaan, olivat sinisilmäiset ja
auringon paahtamat, tuollaiset kasvot, joissa sisäinen ja ulkoinen
auringonvalo yhtyy yhteiseksi loisteeksi. Ja hän vastasi:

"Phil Halliday, Jupiterin nimessä!"

"Mitä sinä täällä…?"

"Enpä oikein mitään! Olen katsellut vähän ympärilleni ja olen myös


hankkimassa rahaa. Asun tuolla nummella."

"Missä syöt lounasta? Tule meidän kanssamme, minulla on


pikkusisareni mukanani. Heissä on ollut tuhkarokko."

Ystävänsä käsipuolessa Ashurst käveli eteenpäin, kukkulan


rinnettä ylös, toista alas, kaupungin ulkopuolelle. Halliday, jonka ääni
oli yhtä täynnä elämäniloa kuin kasvot aurinkoa, selitteli, "kuinka
ainoa, mikä mihinkään kelpasi tässä kurjassa loukossa, oli uinti ja
soutu", ja siihen tapaan, kunnes saavuttiin puoliympyrään
rakennetun talorykelmän kohdalle, kappaleen matkaa
merenrannasta. He menivät keskimmäiseen taloon, hotelliin.

"Tule huoneeseeni peseytymään. Lounas on heti valmis."

Ashurst tarkasteli kasvojaan kuvastimesta. Muistaen


maalaistalossa olevan makuuhuoneensa ja parin viime viikon ajan

You might also like