1 option
The Ansible Workshop : Hands-On Learning for Rapid Mastery / Aymen El Amri.
- Format:
- Book
- Author/Creator:
- El Amri, Aymen, author.
- Language:
- English
- Subjects (All):
- Computer programming.
- Configuration management.
- Open source software.
- Web site development.
- Computer software.
- Physical Description:
- 1 online resource (210 pages)
- Edition:
- First edition.
- Place of Publication:
- Paris, France : FAUN, [2024]
- Biography/History:
- El Amri Aymen: Aymen El Amri is a polymath software engineer, entrepreneur, and author with extensive experience in various technology fields, including DevOps & Cloud Native, Cloud Architecture, Python, NLP, and more. Aymen has authored multiple books and courses and provided training that has benefited thousands of developers and software engineers. His passion for teaching is evident in his practical approach, which simplifies complex concepts into understandable language and offers real-world examples that resonate with his audience. Aymen is the founder of several projects, including eralabs, FAUN, and MarketToDev, and he has been featured in several reputable publications.
- Summary:
- "The Ansible Workshop" offers a comprehensive journey through the world of Ansible, guiding readers from foundational concepts to advanced applications in automation. Readers delve into creating and managing inventories, an essential aspect of organizing systems for automation. As the journey progresses, the book covers the creation and use of playbooks, providing step-by-step instructions and practical examples. Readers learn how to gather and utilize Ansible facts, debug issues effectively, and manage sensitive data with Ansible Vault. The exploration of Ansible blocks, modules, plugins, and filters further enhances the reader's ability to customize and extend Ansible's functionality. The book then introduces the concept of Ansible roles, enabling readers to structure and reuse their automation tasks efficiently. Performance optimization techniques are also discussed, ensuring that automation workflows are both fast and reliable. The practical applications of Ansible are showcased through chapters on managing Docker and Docker Compose, as well as automating Kubernetes, highlighting Ansible's versatility in modern IT environments. To provide a quick reference and reinforce learning, an Ansible cheat sheet is included, summarizing key commands and concepts.
- Contents:
- Intro
- Preface
- What Are You Going To Learn?
- Who Is This Guide For?
- About The Author
- The Companion Toolkit
- Join the Community
- Your Feedback Matters
- Overview of Ansible
- What is Ansible?
- The Tale of Ansible
- Declarative vs. Imperative Automation
- Ansible Architecture
- Inventory
- Playbooks
- Modules
- Plugins
- Roles
- Ansible Vault
- Ansible Engine
- How Does Ansible Work?
- Pros of Ansible
- Cons of Ansible
- Ansible vs Other Tools
- Chef vs Ansible
- Puppet vs Ansible
- SaltStack vs Ansible
- Introduction to Ansible
- Prerequisites
- Installing and Configuring Ansible
- Ansible Inventory
- Understanding the Ansible Inventory
- Creating Advanced Ansible Inventories
- Advanced Techniques To Target Specific Managed Nodes
- Using the Default Inventory
- Dynamic Inventories
- Creating and Using Playbooks
- Ad-hoc Commands vs Playbooks
- Creating a Playbook
- Playbook, Play, and Tasks
- Creating Advanced Playbooks - Part 1
- Creating Advanced Playbooks - Part 2
- Ansible Facts
- What are Ansible Facts and Why Do We Need Them?
- Finding Ansible Facts
- How To Use Ansible Facts
- Advanced Usage of Ansible Facts
- Debugging Ansible
- Enabling Debugging
- Debugging Tasks
- Identify The Task That Failed
- List The Task Variables
- Identify The Host Where The Task Has Failed
- Print The Execution Result of The Task
- List All Task Arguments
- Getting a Single Task Argument
- Using the Debugger to Fix the Error
- Enabling Debugging for All Tasks
- Choosing When to Debug
- Low-Level Debugging
- Dry Run: Testing Playbooks Without Executing Them
- Callback Plugins
- Printing Variables
- Printing The Output Of A Command
- Printing The Output Of A Task
- Using Your IDE to Write Better Playbooks
- Ansible Vault and Sensitive Data Management
- What is Ansible Vault?.
- How to Use Ansible Vault
- Using Password Files
- Using Vault IDs
- Ansible Blocks
- What are Ansible Blocks?
- How to Use Ansible Blocks
- Error Handling with Ansible Blocks
- Using "Rescue" and "Always" Together
- Ansible Blocks with Asynchronous Tasks
- Ansible Modules, Plugins, and Filters
- What is an Ansible Module?
- What is an Ansible Plugin?
- Modules vs Plugins
- Installing Ansible Modules and Plugins
- Exploring the Lookup Plugins
- Creating Ansible Modules
- Documenting Your Module
- Using The AnsibleModule Utility Class
- A Full Example
- Imports And Metadata
- Function run_module()
- Function main()
- Execution Check
- Developing an Ansible Module That Uses Generative AI
- What Is An Ansible Filter?
- Using Ansible Filters
- Creating Ansible Filters
- Ansible Roles
- Role Directory Structure
- Using "Defaults": Default Variables
- Using "Files": Static Files
- Using "Handlers": Actions Triggered by Tasks
- Using "Meta"
- Using "Tasks": Main List of Tasks
- Using "Templates": Template Files
- Using "Tests": Testing the Role
- Using "Vars": Variables for the Role
- Creating a Role
- Making Ansible Faster
- Disabling SSH Host Key Checking
- Disabling Fact Gathering
- Using More Forks
- Optimize How Ansible Uses SSH
- Use Asynchronous Tasks
- Sequential vs Batch Mode
- Using Execution Strategies
- Managing Docker and Docker Compose with Ansible
- Installation and Prerequisites
- Building Docker Images from Ansible Playbooks
- Tagging and Pushing Docker Images
- Managing Docker Containers from Ansible Playbooks
- Managing Docker Networks from Ansible Playbooks
- Managing Docker Volumes from Ansible Playbooks
- Docker Compose Up and Running with Ansible
- Automating Kubernetes with Ansible
- What is a Highly Available Kubernetes Cluster?
- Etcd Nodes
- Control Plane Nodes.
- Worker Nodes
- Creating a Highly Available Kubernetes Cluster with Kubespray and Ansible
- Available Options to Deploy Kubernetes
- Prerequisites and Initial Setup
- Creating The Inventory
- Creating the Cluster
- How Kubespray Works
- Step 1: Pre-Configuration Checks and Setup
- Step 2: Setting Up Container Runtime
- Step 3: Network Plugin Installation
- Step 4: Kubernetes Components Installation
- Step 5: Initialization of the First Control Plane Node
- Step 6: Setting Up etcd Cluster
- Step 7: Joining Additional Control Plane Nodes
- Step 8: Joining Worker Nodes
- Step 9: Cluster Configuration With Addons
- Step 10: Cluster Verification And Health Checks
- Step 11: Security Configuration
- Step 12: Applying Custom Configurations
- Step 13: Cluster Ready For Deployment
- Start Using The Cluster
- Deploying to Kubernetes with Ansible
- Deploying to Kubernetes with Ansible and the K8s Module
- Using Remote Manifests
- Inline Manifests
- Validating Kubernetes Definitions
- Managing Multiple Clusters
- Patching Resources
- Restarting Deployments
- Deploying to Kubernetes with Ansible and Helm
- Templating Kubernetes Resources With Ansible
- Troubleshooting Kubernetes with Ansible
- Creating Generic Debug Tasks to View Kubernetes Resources
- Viewing Kubernetes Pod Logs with Ansible
- Ansible + Kubernetes = A Powerful Combination
- Ansible Cheat Sheet
- Installing Ansible
- On Linux
- On macOS
- On Windows
- Configuring Ansible
- Setting Up the Inventory File (INI)
- Setting Up the Inventory File (YAML)
- Ansible Host Variables
- Testing Your Setup
- Playbook Structure
- Playbook Keywords
- Common Modules
- Running a Command
- Running a Shell Command
- Running a Raw Command
- Copying a File
- Installing a Package
- Restarting a Service
- Copying a File with Permissions.
- Copying a File with Permissions and Context
- Running a Playbook
- Running a Playbook with Inventory
- Running a Playbook with Inventory and Limit
- Running a Playbook with Limit
- Running a Playbook with Tags
- Running a Playbook with Skip Tags
- Running a Playbook with Extra Variables
- Running a Playbook with a Vault Password File
- Running a Playbook with Ask Vault Password
- Running a Playbook with Ask Sudo Password
- Running a Playbook with Ask Pass
- Running a Playbook in Check Mode
- Running a Playbook in Diff Mode
- Running a Playbook in Verbose Mode
- Running a Playbook in Extra Verbose Mode
- Running a Playbook in Extra Extra Verbose Mode
- Running a Playbook in Extra Extra Extra Verbose Mode
- Running a Playbook in Extra Extra Extra Extra Verbose Mode
- Running a Playbook with Forks
- Running a Playbook with Timeout
- Jinja2
- Using Jinja2
- Using Jinja2 with Filters
- Jinja2 Template
- Jinja2 Template with Variables
- Templates with Loops
- Templates with Conditionals
- Templates with Filters
- Host Patterns
- Debugging
- Syntax Check a Playbook
- Check if Hosts Are Reachable
- Check if Hosts Are Reachable with SSH
- Check if Hosts Are Reachable with WinRM
- Check if Hosts Are Reachable Locally
- Verbose Mode
- Debug Mode
- Capture Output
- Capture Output and Show Only Specific Fields
- Capture Output and Show Only Specific Fields with Jinja2
- Gathering Facts
- Gathering Facts for All Hosts
- Gathering Facts for a Specific Host
- Gathering Facts for a Specific Host and Saving to a File
- Variables
- Setting a Variable
- Setting a Variable with Multiple Lines
- Setting a Variable with Multiple Lines and Indentation
- Conditionals
- When
- When with Multiple Conditions
- Loops
- Looping Over a List
- Looping Over a Dictionary
- Looping Over a Dictionary Using "with_dict".
- Looping Over a List with "with_items"
- Handlers
- Using Handlers
- Using Handlers with Multiple Tasks
- Using Handlers with Multiple Tasks and Different Handlers
- Conditional Execution
- Using "ignore_errors" to Continue Execution Even After Failures
- Using "changed_when" to Control When a Task Is Considered Changed
- Using "failed_when" to Control When a Task Is Considered Failed
- Failing a Playbook with "fail"
- Vault
- Editing an Encrypted File
- Updating Encryption Password
- Viewing an Encrypted File
- Encrypting a File
- Encrypting a File with a Password File
- Decrypting a File
- Encrypting a String
- Encrypting a String with a Password File
- Asynchronous Tasks
- Running a Task Asynchronously
- Checking the Status of Asynchronous Tasks
- Using a Role
- Using a Role with Variables
- Using a Role with Multiple Variables
- Using a Role with Tags
- Ansible Galaxy
- Searching for Roles
- Installing a Role
- Installing a Role with a Specific Version
- Ansible Collections
- Installing a Collection
- Installing a Collection with a Specific Version
- Installing a Collection from a File
- Installing a Collection from a Directory
- Resources About Ansible
- Official Ansible Documentation
- Ansible Blogs and Articles
- Ansible Community and Forums
- Ansible GitHub Repository
- Ansible Videos
- Ansible Tools
- IDE Extensions
- VSCode
- PyCharm
- Sublime
- Vim
- Newsletters
- Afterword
- Your Feedback Matters.
- Notes:
- Description based upon print version of record.
- Using "Vars": Variables for the Role
- Description based on publisher supplied metadata and other sources.
- Description based on print version record.
- ISBN:
- 9781836205029
- 1836205023
- OCLC:
- 1435754037
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.