Intro through Advanced Ansible Training Overview
This in-person or online Ansible Bootcamp teaches your team everything they need to know to successfully configure and administer Ansible. In this Introductory through advanced Ansible training, attendees learn first how to build playbooks, leverage modules, and configure roles. Students then learn more advanced topics including playbook construction, module utilization, node management, and more. Finally, this course deep dives into all aspects of the Ansible Tower and covers Ansible best practices.
Note: This 7-day Ansible class can be divided as desired across two weeks, consecutive or non-consecutive.
Location and Pricing
Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please contact us.
In addition, some courses are available as live, instructor-led training from one of our partners.
Objectives
- Install and configure Ansible control-node and managed-node(s)
- Create and run playbooks
- Use standard Ansible modules
- Create custom modules
- Create and modify hosts (inventory) definitions
- Create and use roles
- Design a 'best practice' strategy for using Ansible capabilities
- Explore Ansible Tower as a solution for graphically managing Ansible enterprise-wide
- Perform advanced configuration for an Ansible control node and managed nodes
- Use conditionals, loops, filters, and loopbacks in playbooks
- Control ad-hoc and playbook output with callback plugins
- Create and implement dynamic inventory definitions
- Implement reusable roles capabilities and dependencies
- Control Ansible Core operations with run-time parameters
- Create templates to write an Ansible custom module
- Add documentation to an Ansible customized module
- Create and use local fact variables
- Implement local fact variables on managed nodes
- Write playbooks to collect data from managed nodes
- Set up and use network device managed nodes
- Install and do initial configuration of the Ansible Tower
- Program and use job creation and execution in the Ansible Tower
- Backup, restore, and update the Ansible Tower database
- Create a Python virtual environment in the Ansible Tower
- Interface with the Ansible Tower using the tower-cli and Ansible Core modules
- Develop best practices for all Ansible components
Prerequisites
It is assumed that participants are working systems administrators, developers, and/or testers with some very basic scripting knowledge (bash, ksh, Perl or Python) and have an understanding of fundamental system utilities/commands on Linux and Windows systems.
Outline
Expand All | Collapse All
Introduction
- Software development (cycle) considerations
- Strengths and weaknesses of Ansible
- Ansible terminology
- Ansible required environment setup
Initial Setup and Configuration
- Ansible Core installation methods: rpm, pip, and Tower
- Ansible component locations
- Ansible documentation
- Ansible configuration file
- Inventory (hosts) file (Linux and Windows nodes)
- Gathering system facts (methods)
Control Code and Managed Node Required Configuration
- Ansible components review
- Running Ansible in escalated privilege mode
- SSH key setup
- Ansible common account creation, setup, and features
- Required components for a Linux/Unix/Windows managed node
Advanced Control Node Setup and Configuration
- Ansible Core installation methods: rpm, pip, and Tower (changes)
- Ansible command and module documentation
- Inventory hosts file contents (Linux/Unix, Windows, and network device nodes)
- Dynamic inventory hosts file contents and usage
- Ansible configuration file (locations and parameter definitions)
- Special use configuration parameter definitions
- Methods to control gathering of system facts
- Creating and using local system facts
- Understanding the hostvars dictionary usage
- Variable creation and usage
Ansible Playbooks
- Layout of a playbook: directives, tasks and arguments, module modifiers
- Installing and using ansible-lint
- Playbook: loops, conditionals, tags, notifications, plugins, filters, and lookups
- Controls: output formatting and inclusion with callbacks
- Advanced Jinja 2 template usage
- Using “inner” and “outer” playbooks
- Review of protecting sensitive information with the Ansible Vault
Ansible Modules/Tasks
- Including external tasks in a playbook
- Controls over node and task scheduling
- Configuration parameters that control rolling updates
- Using Ansible playbook debugging capabilities
- Writing a customized module and embedded documentation
Roles in Ansible
- Overview of a role
- Creating a role structure
- Using roles
- Packaging up a role
- Ansible Galaxy - capabilities and usage with roles
- Git repo role repository creation on a non-control node
- Local access of a Git repo role repository
- Remote access of a Git repo role repository
- Importing role definitions (on a control node)
- Role dependencies definitions and usage
- Using system facts
Ansible Playbooks
- Layout of playbook sections (directives, variable definitions, tasks, handlers, module modifiers)
- Variable creation and usage
- Using modules in playbooks
- Controls: loops, conditionals, tags, notifications, plugins, filters, and lookups
- Running as root
Ansible Modules
- The layout of an Ansible module
- Linux modules : file, yum, systemd, cron, user, shell, filesystem
- Using the Windows specific (win_) modules common Linux
Roles in Ansible
- Overview of a role
- Creating a role (structure)
- Using (a) role(s)
- Packaging up a role
- Ansible Galaxy - capabilities and usage with roles
- Git repo (role) repository (creation)
- Local access of a Git repo role repository
- Remote access of a Git repo role repository
Managed Nodes
- Requirements for a Linux managed node
- Inventory and access control information on the control node
- Setup of a Linux managed node
- Requirements for a Windows managed node
- Setup of a Windows managed node
- Inventory and access control information on the control node
Ansible Tower
- Comparison of Ansible Tower and Ansible AWX
- General layout of the Ansible Tower
Network Device Managed Nodes
- Requirements for a network device managed node
- Inventory and access control information on the control node
- Required setup of a network device managed node
- Module usage for a network device managed node
Ansible Tower: Installation and Basic Operations
- Features of the Ansible Tower
- Preparation for and installation of the Ansible Tower
- Components files and services of the Ansible Tower
- Starting and stopping the Ansible Tower
- Logging into the Ansible Tower
- Dashboard and menu bar selections
- Building organizations and teams with user accounts
- Creating Tower core credentials
- Creating inventory and host definitions
- Create inventories with awx-manage
- Ansible Tower smart inventory
- Running ad-hoc plays in the Ansible Tower
- Defining manual and Git (SCM) projects
- Creating job templates for an existing project
- Watching and chaining multi-playbooks workflows
- Launching job templates
- Using logs to review job template executions
- Scheduling jobs in the Ansible Tower
- Requesting notifications for job template executions
- Using roles in the Ansible Tower
External Access of the Ansible Tower
- Interfacing with the Ansible Tower API
- Installing and using the tower-cli/awx utility
- Ansible Core tower modules to the Ansible Tower
- Backing up the Ansible Tower database
- Restoring the Ansible Tower database
- Updating the Ansible Tower
- Introduction to Ansible Tower clusters
- Ansible Tower virtual environment setup and usage
Ansible Tower Administrative Operations
- Backing up the Ansible Tower database
- Restoring the Ansible Tower database
- Updating the Ansible Tower
- Introduction to Ansible Tower clusters
- Ansible Tower virtual environment setup and usage
- Overview of a simple CI/CD pipeline including the Ansible Tower
- Pipeline basic premises and components
Conclusion and Best Practices
- Setting up control and managed nodes
- Playbook techniques and efficiency
- Using roles in production environments
- Implementing the Ansible Tower
Conclusion
Training Materials
All Ansible training students receive comprehensive courseware covering all topics in the course.
Software Requirements
Attendees will not need to install any software on their computers for this class. The class will be conducted in a remote environment that Accelebrate will provide; students will only need a local computer with a web browser and a stable Internet connection. Any recent version of Microsoft Edge, Mozilla Firefox, or Google Chrome will work well.