Search icon CANCEL
Subscription
0
Cart icon
Cart
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Puppet 8 for DevOps Engineers

You're reading from  Puppet 8 for DevOps Engineers

Product type Book
Published in Jun 2023
Publisher Packt
ISBN-13 9781803231709
Pages 416 pages
Edition 1st Edition
Languages
Concepts
Author (1):
David Sandilands David Sandilands
Profile icon David Sandilands
Toc

Table of Contents (22) Chapters close

Preface 1. Part 1 – Introduction to Puppet and the Basics of the Puppet Language
2. Chapter 1: Puppet Concepts and Practices 3. Chapter 2: Major Changes, Useful Tools, and References 4. Chapter 3: Puppet Classes, Resource Types, and Providers 5. Chapter 4: Variables and Data Types 6. Chapter 5: Facts and Functions 7. Part 2 – Structuring, Ordering, and Managing Data in the Puppet Language
8. Chapter 6: Relationships, Ordering, and Scope 9. Chapter 7: Templating, Iterating, and Conditionals 10. Chapter 8: Developing and Managing Modules 11. Chapter 9: Handling Data with Puppet 12. Part 3 – The Puppet Platform and Bolt Orchestration
13. Chapter 10: Puppet Platform Parts and Functions 14. Chapter 11: Classification and Release Management 15. Chapter 12: Bolt for Orchestration 16. Chapter 13: Taking Puppet Server Further 17. Part 4 – Puppet Enterprise and Approaches to the Adoption of Puppet
18. Chapter 14: A Brief Overview of Puppet Enterprise 19. Chapter 15: Approaches to Adoption 20. Index 21. Other Books You May Enjoy

Iteration and loops

Puppet’s approach to iteration and loops is influenced by the fact that its variables are immutable, meaning that once they are set, they cannot be changed. This makes many normal approaches used with loop or do keywords to transform data impossible. In early versions of the language, this was worked around by passing an array to defined types, as discussed in Chapter 3, or using inline ERB templates with Ruby code to manipulate arrays and hashes.

However, the issue with the defined type approach was that the code doing the work was abstracted away and not visible. Furthermore, every time a different type of iteration was required, it would require its own defined type, bloating the code. Therefore, it is important to review heritage code and refactor these patterns to the approaches that will be discussed.

In modern Puppet, the approach taken is to use iterative functions that pass data from arrays and hashes to lambdas. A lambda is a function with...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime