RHCE study materials
RHCE study resources

RHCE study plan

RHCE · Give each week a clear focus.

8 weeks · About 8 hours per week

Week 1

Understand and use core Ansible components & Install and configure an Ansible control node

  • Install ansible-core on a control node and confirm the version with ansible --version

  • Write an ansible.cfg that sets inventory, roles_path, host_key_checking, and a default remote_user, then prove each setting is picked up

  • Build a static INI inventory containing two groups, one child group, and two host variables

  • Configure SSH key-based authentication and passwordless sudo for a non-root automation user on at least two managed hosts

  • Run ansible all -m ping and ansible all -m command -a 'id' to confirm connectivity and privilege escalation

Your checkpoint

A committed project directory (ansible.cfg + inventory + README) where ansible all -m ping -b returns SUCCESS for three hosts from a single command

Week 2

Configure Ansible managed nodes and run ad hoc commands & Understand and use core Ansible components

  • Run ad hoc commands that scope execution with -l, -b, -K, -u, and --limit-style host patterns

  • Use the setup module with filter and a Jinja expression to extract a single fact such as default IPv4 address

  • Install, remove, and query packages ad hoc with the package/dnf module

  • Manage a file and a service ad hoc with the file, copy, and service modules

  • Identify which module and parameters to use for an unfamiliar task by reading ansible-doc and ansible-doc -l output

Your checkpoint

A notes file listing 15 ad hoc commands with the exact output of each, including at least one fact-filtered command and one privilege-escalated package change

Week 3

Create Ansible plays, playbooks, roles, and manage variables and facts

  • Write a playbook with three tasks that install a package, deploy a config file, and start/enable a service

  • Add a handler and trigger it with notify only when the config task reports changed

  • Add a loop to create multiple users or files and a when condition based on a gathered fact

  • Run the playbook with --check --diff, then run it twice and read the recap to judge idempotence

  • Fix every task that reports changed on the second run

Your checkpoint

A site.yml whose second consecutive run against two hosts shows changed=0, failed=0 in the PLAY RECAP, captured as terminal output

Week 4

Create Ansible plays, playbooks, roles, and manage variables and facts

  • Place variables in play vars, vars_files, group_vars, and host_vars, then state which wins under Ansible variable precedence

  • Register a task result and use its fields in a later when condition and a debug message

  • Template a configuration file with Jinja2 using a for loop and an if block, driven by host-specific variables

  • Reference magic variables such as inventory_hostname, groups, and hostvars inside a template

  • Encrypt a secrets file with ansible-vault and run a playbook that decrypts it via --ask-vault-pass or a vault password file

Your checkpoint

A playbook that renders a distinct, host-specific configuration file on each of two managed hosts plus one vault-encrypted variable file used by the play

Week 5

Create Ansible plays, playbooks, roles, and manage variables and facts & Understand and use core Ansible components

  • Scaffold a role with ansible-galaxy init and place tasks, handlers, templates, defaults, vars, and meta in the correct subdirectories

  • Refactor the week 3-4 playbook into that role and call it from a play with a role-level variable override

  • Declare role dependencies in meta/main.yml and a requirements.yml for an external role

  • Install and use a collection with ansible-galaxy collection install, then call a module by its fully qualified collection name

  • Re-apply the role twice and confirm the second run is idempotent

Your checkpoint

A reusable role installed via requirements.yml or referenced by path, applied to two hosts with a variable override, and a second run with changed=0

Week 6

Automate standard system administration tasks with Ansible

  • Automate account management with the user, group, and authorized_key modules including a generated SSH key pair

  • Schedule a recurring job with the cron module and verify the crontab on the target

  • Open a service port persistently with the firewalld or posix module set and confirm the rule survives a reload

  • Create a volume group, logical volume, filesystem, and mount entry with lvg, lvol, filesystem, and mount

  • Set an SELinux boolean or file context with the seboolean and sefcontext modules and apply it

Your checkpoint

One storage-and-accounts playbook that creates a user with an authorized key, a cron entry, a firewall rule, and a mounted logical volume, verified by post-task assertions or commands

Week 7

Automate standard system administration tasks with Ansible & Create Ansible plays, playbooks, roles, and manage variables and facts

  • Wrap risky tasks in block/rescue/always and force a failure to prove the rescue path executes

  • Control task outcome reporting with failed_when, changed_when, and ignore_errors on a command task

  • Use delegate_to and run_once to perform a one-time action such as a database seed or load balancer drain

  • Write a multi-play playbook that targets different host groups with distinct roles and shared group_vars

  • Tag tasks and run the playbook with --tags and --skip-tags to select subsets

Your checkpoint

A three-play playbook (database group, web group, all hosts) with at least one block/rescue, one run_once task, and tags, demonstrated with a --tags run and a full run

Week 8

Create Ansible plays, playbooks, roles, and manage variables and facts & Automate standard system administration tasks with Ansible

  • Rebuild a working control node and inventory from scratch in under 30 minutes without referring to notes

  • Complete a timed end-to-end lab: configure two managed hosts, deploy a role-based service, and harden accounts, all from playbooks

  • Re-run every deliverable from weeks 3-7 and log any regression or non-idempotent task

  • Review missed items against the domain objectives and patch the weakest two areas with targeted drills

Your checkpoint

A clean-room repo plus a pass/fail scorecard from one timed full-length practice run, with every failing item annotated and re-tested

Milestones

Week 2: Ad hoc commands reach all inventory hosts with privilege escalation, and you can select any module or fact without opening a browser

Week 4: You can explain Ansible variable precedence from memory and a templated playbook produces correct per-host output with vault-encrypted data

Week 6: A single playbook provisions accounts, scheduled jobs, firewall rules, and mounted storage idempotently on a fresh host

Week 8: A timed full-length lab from an empty control node passes end to end, with all week 3-7 deliverables re-verified as idempotent