Linux Training Overview
This course presents the system management and configuration tool Ansible, from
methods, techniques, capabilities to implementation. Each participant will learn how to
configure an Ansible control machine along with the impact on the Linux system. A lot
of time and attention will be spent in learning, writing, and applying playbook definitions,
the key part of Ansible that allows the synchronization of environments easily and
uniformly, to apply to Linux, Unix and Windows systems
Linux Training Prerequisites
It is assumed that participants are working systems administrators / developers / testers with some very basic scripting knowledge (bash, ksh, Perl or Python) and an understanding of fundamental system utilities / commands on Linux and Windows systems
Linux Training Target Audience
This course is directed towards working systems administrators, software developers,
application testers, and quality assurance personnel.
Implementation
Each participant will have a dedicated RHEL 8 virtual server for Ansible installation,
playbook development, and DSL features, with an installed Ansible Tower / AWX instance.
A CentOS 7 minimal virtual system and a virtualized Windows host will be setup as Ansible
managed nodes. A local Git repo will be created to define a role structure, and will
be used for local and remote access with Ansible Galaxy.
Linux Training Course duration
This course requires three to five (3 - 5) days, 50% lecture, with 50% hands-on commands
and lab exercises.
Linux Training Course Objectives
At the completion of the course, participants should be able to :
- configure Ansible control-node and managed-node(s)
- create and run playbooks
- use standard Ansible modules
- create and modify hosts (inventory) definitions
- roles: create, install and access with the Ansible Galaxy
- design a 'best practice' strategy for using Ansible capabilities
- learn the usage and capabilities of the Ansible Tower / AWX
Linux Training Course outline
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 contents (Linux and Windows nodes)
- (gathering) system facts (methods)
- 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
- layout of an Ansible module
- Linux modules : file, yum, systemd, cron, user, shell, filesystem
- using the Windows specific (win_) modules
- common Linux and Windows modules
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
Ansible AWX / Tower
- comparison of Ansible Tower and Ansible AWX
- installation of Ansible AWX
- using the Ansible AWX (dashboard)
- define Ansible AWX user accounts
- create inventories of systems (with credentials)
- create projects and job templates
- job scheduling (launch forms), status, and tracking
- watching and chaining (multi-) playbooks (workflows)
- controlling and viewing logs and audit trails
- notifications
- updating the Ansible Tower
- (an introduction to) Ansible Tower clusters
- using the Ansible Tower API
- browser based interface
- tower-cli
- tower_* Ansible modules
|