Automation with Ansible Playbooks - Hands On !!

Brought by: Udemy

Overview

This course introduces Ansible to the absolute beginners & System Admins to enhance skills towards Ansible.

What you'll learn:
  • Introducing Ansible-Overview of Ansible Architecture
  • Implementation of Ansible Playbooks
  • Automate Linux Patching using Ansible
  • Various Labs to understand the Ansible Playbook for Linux Servers Patching
  • Managing Variables & Inclusions
  • Various Labs on Implementing Playbooks from real IT Industry Environment
  • Gain sufficient skills to perform core system administration Automation
  • Implementing Tasks Controls
  • Overview of Ansible Installation
  • Online/Offline Ansible installation
  • Ansible Conditionals
  • Ansible Modules
  • Industrial Live overview of Automation tool using Ansible with Shell Scripting
  • Ansible Handlers
  • Ansible Loops
  • Deploying Ansible
  • Writing YAML Files
  • Ansible Roles
  • How do we create Ansible Roles
  • Industrial project of stop/start control m appl/db

Mastering Ansible Step by Step


Course Contents


1 Introducing Ansible

  • Overview of Ansible Architecture

  • Ansible Components

  • Overview of Ansible Deployments

  • Describing Ansible Inventory

  • Summary

2 Deploying Ansible

  • Installing Ansible

  • Guided Exercise: Installing Ansible

  • Managing Ansible Configuration Files

  • Guided Exercise: Managing Ansible Configuration Files

  • Running Ad Hoc Commands

  • Guided Exercise: Running Ad Hoc Commands

  • Managing Dynamic Inventory

  • Guided Exercise: Managing Dynamic Inventory

  • Lab: Deploying Ansible

  • Summary

3 Ansible Installation on Red Hat Linux 8

  • Overview of Ansible Installation

  • Online Ansible Installation

  • User's Account Setup for Passwordless Authentication

  • Offline Ansible Installation ( When there is no internet available on Control Node )

4 Implementing Playbooks

  • Writing YAML Files

  • Guided Exercise: Writing YAML Files

  • Implementing Modules

  • Guided Exercise: Implementing Modules

  • Implementing Ansible Playbooks

  • Guided Exercise: Implementing Ansible Playbooks

  • Lab: Implementing Playbooks

  • Summary

5 Managing Variables and Inclusions

  • Managing Variables

  • Guided Exercise: Managing Variables

  • Managing Facts

  • Guided Exercise: Managing Facts

  • Managing Inclusions

  • Guided Exercise: Managing Inclusions

  • Lab: Managing Variables and Inclusions

6 Implementing Task Control

  • Constructing Flow Control

  • Guided Exercise: Constructing Flow Control

  • Implementing Handlers

  • Guided Exercise: Implementing Handlers

  • Guided Exercise: Implementing Tags

  • Handling Errors

  • Guided Exercise: Handling Errors

  • Lab: Implementing Task Control

  • Summary

7. Ansible Roles

  • About Ansible Roles

  • How do we create Ansible Roles

  • Lab Session to create roles

8. Industrial project to Automate Patching on Multiple Linux Server using Ansible Playbook

  • Overview about Linux Patching

  • Automate Linux Patching using Ansible

  • Verify application/Database processes are running or not

  • Decision point to start patching

  • Upgrade all the packages on the server

  • Check if reboot required after the kernel update

  • Install the specific kernel version using Ansible Playbook.

  • Various Labs to understand the Ansible Playbook for patching

9. Industrial project for Stop/Start Control M appl/db

  • Overview of project

  • Designing of Ansible playbooks

  • Lab Sessions

10. Create Automation tool using Ansible & Shell

  • Overview of Automation Tool

  • Concept of Automation Tool

  • Communication between Ansible Server with managed hosts

  • Front look of Automation Tool

  • What we are achieving from this Automation tool.

  • Pre-validation Configuration (To capture pre-change configuration details)

  • User Administration

1. User Creation
2. User Removal
3. Group Add
4. Password Reset

  • Run Ad Hoc Command

  • Health Check Statistics

1. Memory Utilization
2. CPU Utilization
3. Overall I/O Activities
4. Reports run queue and load average
5. Top Memory Consuming processes
6. Top CPU Consuming Processes
7. Shared Memory

  • Design of Automation Tool

  • Design Front Look using case statement

  • Practice Lab Session on case Statement -1

  • Practice Lab Session on case Statement -2

  • Color Fonts in desinging the tool

  • Headline & Selecting the target servers

  • Lab sessions


  • Shell Scripting

1. If..else..elif statement
2. Loops
3. Sed – Stream Editot
4. Awk

  • The case esac statement

  • Last lecture

Taught by

Shikhar Verma • 40k+ Students Worldwide

Automation with Ansible Playbooks - Hands On !!
Go to course

Automation with Ansible Playbooks - Hands On !!

Brought by: Udemy

  • Udemy
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version336msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (209ms)
    • Application (127ms)
    • 1 x Booting (62.01%)
      208.52ms
      1 x Application (37.75%)
      126.95ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed12.18ms
      • select * from `courses` where `slug_en` = 'automation-with-ansible-playbooks---hands-on-!!' limit 1
        10.89ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. automation-with-ansible-playbooks---hands-on-!!
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-05-18 14:30:46' where `id` = 3926
        530μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-05-18 14:30:46
        • 1. 3926
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (68)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (51) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 3917 limit 1
        290μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 3917
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        olmnmPQcEX2h80w1Pv6XI8WBI2yyGXGUfepPa6Rn
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/automation-with-ansible-playbooks---hands...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/automation-with-ansible-playbooks---hands-on-!!
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.142.83.70" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "3.142.83.70" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "941c0dea9c4ccc6e-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.142.83.70" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "3.142.83.70" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "941c0dea9c4ccc6e-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "32676" "REMOTE_ADDR" => "172.69.17.122" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/automation-with-ansible-playbooks---hands-on-!!" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1747578646.4307 "REQUEST_TIME" => 1747578646 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 18 May 2025 14:30:46 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im91MjQ2LzlMMnBFVHNXQWZaZit2QkE9PSIsInZhbHVlIjoiRjVvTjBYaTBiWnJUak5uYkQ4NEM2bGVGc0haNmltblc3WmNSSm9YYkJyY3cyeU9vV3p3WUFHUlViOCtmR2d2dW5DcEhISHRIbEtGdDlsdGNTcFZNanFpTlpTRGRxbWRKb0NWOFhlbDhHNEpraW5UdElUMlNDZkd6MjV5Z204T3QiLCJtYWMiOiIwMzg5ZDQ3NGIxMzc1Nzk5NWI2N2EyNWEyYzc4NGU5ZjM3ZjRhYTA1MTU1NzNjYTU3Yzc5MTE5YjVkNzc0NmYzIiwidGFnIjoiIn0%3D; expires=Sun, 18 May 2025 16:30:46 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Im91MjQ2LzlMMnBFVHNXQWZaZit2QkE9PSIsInZhbHVlIjoiRjVvTjBYaTBiWnJUak5uYkQ4NEM2bGVGc0haNmltblc3WmNSSm9YYkJyY3cyeU9vV3p3WUFHUlViOCtmR2d2dW5DcEhIS" 1 => "laravel_session=eyJpdiI6IlMvbWpOVzA4N2RFTnJnRzJGa0R1NUE9PSIsInZhbHVlIjoiNllodHVFRU44cnNFNmQ1bU5YSzVxWlhhVWR2OFRLSTdTaUZianV0cXo5Q2RDQjR1SXhtUWhiYXQwLzJld2YwY0taYWNieVBYcGVEWXZvVnBwUDJPbUoxRXZENEJ0bEpqbWJTR0J5U2k1cnBUN2NFK25WVDFQaEJYZG16N0J2R1QiLCJtYWMiOiJmMjYzZTcyYzg0YTIyYTNiNDk3Y2ZiODllOGQwYzEzYWRmMDU1Yzg2NDBiNGQ1ZWZiNzcxNmE5MzU1ZDRmN2M0IiwidGFnIjoiIn0%3D; expires=Sun, 18 May 2025 16:30:46 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlMvbWpOVzA4N2RFTnJnRzJGa0R1NUE9PSIsInZhbHVlIjoiNllodHVFRU44cnNFNmQ1bU5YSzVxWlhhVWR2OFRLSTdTaUZianV0cXo5Q2RDQjR1SXhtUWhiYXQwLzJld2YwY0ta" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Im91MjQ2LzlMMnBFVHNXQWZaZit2QkE9PSIsInZhbHVlIjoiRjVvTjBYaTBiWnJUak5uYkQ4NEM2bGVGc0haNmltblc3WmNSSm9YYkJyY3cyeU9vV3p3WUFHUlViOCtmR2d2dW5DcEhISHRIbEtGdDlsdGNTcFZNanFpTlpTRGRxbWRKb0NWOFhlbDhHNEpraW5UdElUMlNDZkd6MjV5Z204T3QiLCJtYWMiOiIwMzg5ZDQ3NGIxMzc1Nzk5NWI2N2EyNWEyYzc4NGU5ZjM3ZjRhYTA1MTU1NzNjYTU3Yzc5MTE5YjVkNzc0NmYzIiwidGFnIjoiIn0%3D; expires=Sun, 18-May-2025 16:30:46 GMT; path=/XSRF-TOKEN=eyJpdiI6Im91MjQ2LzlMMnBFVHNXQWZaZit2QkE9PSIsInZhbHVlIjoiRjVvTjBYaTBiWnJUak5uYkQ4NEM2bGVGc0haNmltblc3WmNSSm9YYkJyY3cyeU9vV3p3WUFHUlViOCtmR2d2dW5DcEhIS" 1 => "laravel_session=eyJpdiI6IlMvbWpOVzA4N2RFTnJnRzJGa0R1NUE9PSIsInZhbHVlIjoiNllodHVFRU44cnNFNmQ1bU5YSzVxWlhhVWR2OFRLSTdTaUZianV0cXo5Q2RDQjR1SXhtUWhiYXQwLzJld2YwY0taYWNieVBYcGVEWXZvVnBwUDJPbUoxRXZENEJ0bEpqbWJTR0J5U2k1cnBUN2NFK25WVDFQaEJYZG16N0J2R1QiLCJtYWMiOiJmMjYzZTcyYzg0YTIyYTNiNDk3Y2ZiODllOGQwYzEzYWRmMDU1Yzg2NDBiNGQ1ZWZiNzcxNmE5MzU1ZDRmN2M0IiwidGFnIjoiIn0%3D; expires=Sun, 18-May-2025 16:30:46 GMT; path=/; httponlylaravel_session=eyJpdiI6IlMvbWpOVzA4N2RFTnJnRzJGa0R1NUE9PSIsInZhbHVlIjoiNllodHVFRU44cnNFNmQ1bU5YSzVxWlhhVWR2OFRLSTdTaUZianV0cXo5Q2RDQjR1SXhtUWhiYXQwLzJld2YwY0ta" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "olmnmPQcEX2h80w1Pv6XI8WBI2yyGXGUfepPa6Rn" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/automation-with-ansible-playbooks---hands-on-!!" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]