Initial Playbook Example
Below is a simple playbook that installs and starts both MySQL and Nginx services:Adding User Escalation and Conditional Execution
To tailor this playbook for environments running CentOS, and to enforce different user privileges, we update the tasks by includingbecome_user and when conditions. In this version, MySQL tasks run as “db-user” and Nginx tasks run as “web-user”:
Using the
when condition and become_user on each task can quickly become repetitive. Blocks allow you to group tasks and assign shared directives once per group.Grouping Tasks with Blocks
Blocks in Ansible help you logically group related tasks. This approach not only reduces redundancy but also improves error handling via rescue and always sections. Consider the following example:Key Benefits of Using Blocks
When you group tasks within a block, you can define error recovery (rescue) and actions that run regardless of success (always). This ensures a comprehensive overview of your deployment status.