|
|
|
|
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.
Learning Objectives
At the completion of the course, participants should be able to :
- install and configure Ansible control-node and managed-node(s)
- use Ansible from the (ad-hoc) command line
- 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
Audience
This course is directed towards working systems administrators, software developers,
application testers, and quality assurance personnel.
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
Implementation
Each participant will have a dedicated RHEL 7 virtual server for Ansible installation,
playbook development, and DSL features, with an installed Ansible Tower 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.
Course duration
This course requires four (4) days, 50% lecture, with 50% hands-on commands and
lab exercises.
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 (package method)
- Ansible component locations
- Ansible documentation
- Ansible configuration file
- inventory (hosts) file contents (Linux and Windows nodes)
- (gathering) system facts
- defining local facts
Ansible (ad-hoc) Command Line Usage
- usage in single module control
- using a module across multiple nodes
Ansible Playbooks
- layout of playbook sections :
-- directives, variables, tasks, handlers, checking for success / failure
- variable creation and usage
- controls : loops, conditionals, tags, notifications, plugins, filters, and lookups
- using modules in playbooks
- 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
- 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
- using the Ansible Tower (dashboard)
- define Ansible Tower 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
- remote command execution
|
|
|
|
|