Advanced Ansible for Devops: Create the MEAN Stack

Brought by: Coursera

Overview

Advanced Ansible for Devops: Create the MEAN Stack

Syllabus

  • Project Overview
    • In this 1-hour long project-based course on Advanced Ansible for Devops: Create the MEAN Stack, you will work with some of the core concepts of Ansible in a multi-Role configuration setting. We will be setting up servers which will act as multiple host machines to hold our application, web files and MongoDB database. We will learn how to easily create a role, and how to understand the default file structure of a Role. We will write each Role from scratch and configure a real application which will be functional by the end of the course. You will use the core parts of the Ansible Role directory structure including Variables, custom encrypted variable files using Ansible-Vault, Jinja2 Templates, The File directory and more. You will do a lot of repetition which will help solidify some of the frequently used steps as well as understand the thinking and design process of using Ansible. By the end of this course you will be comfortable going forward building your own Ansible Playbooks in a multi-Role setup. Please note this course requires you to have a credit card to be able to set up your own Linode account if you don’t already have one.

      This course is designed for any person working or who intends to work with Ansible, or just become more familiar with DevOps tools, from system administrators to developers and DevOps practitioners. Or even if you are a student who is curious to get comfortable with Ansible and configuration management and automation this course is for you also.
      This is an advanced level course and is designed for an individual who has a solid foundation of either computer programming in at least one language or a strong Linux background.

      Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Taught by

Rudi Hinds

Advanced Ansible for Devops: Create the MEAN Stack
Go to course

Advanced Ansible for Devops: Create the MEAN Stack

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • All
  • English
8.1.2PHP Version289msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (179ms)
    • Application (110ms)
    • 1 x Booting (61.82%)
      178.76ms
      1 x Application (37.94%)
      109.71ms
      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
      7 statements were executed6.58ms
      • select * from `courses` where `slug_en` = 'advanced-ansible-for-devops:-create-the-mean-stack' limit 1
        4.95ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. advanced-ansible-for-devops:-create-the-mean-stack
        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-30 02:39:29' where `id` = 1359
        730μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-05-30 02:39:29
        • 1. 1359
        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)
        220μ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 `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        190μ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 `providers` where `providers`.`id` in (2) 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` = 1352 limit 1
        190μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1352
        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\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        zxHxSm8ijU5itD8qgZFYRaK7QAnC9QEpCmSxceBr
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/advanced-ansible-for-devops:-create-the-m...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/advanced-ansible-for-devops:-create-the-mean-stack
        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.148.106.46" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "3.148.106.46" ] "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 => "947adc7e7e61fa15-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.148.106.46" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "3.148.106.46" "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" => "947adc7e7e61fa15-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" => "17500" "REMOTE_ADDR" => "172.70.130.153" "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/advanced-ansible-for-devops:-create-the-mean-stack" "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" => 1748572769.3106 "REQUEST_TIME" => 1748572769 ]
        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 => "Fri, 30 May 2025 02:39:29 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ink2NEtQaTk3ODBPbUl6WkJZdTVzb2c9PSIsInZhbHVlIjoiSWJoMlZUWU9GMG5QNitSMlNCTlZ4UWJVZUlhOGR2UWF6TDdHcmRiMm5YNWx2OTg0SWhhTGtGU2NQeWhrdWlVVmhsd2xpM2FuMExPcmowUmltcE4zQlF5V29pY1pWWlYwenU3MG9IY3Z5SUt2NXFRZWdiMGduYTVlQ1M4eE80QysiLCJtYWMiOiIwNjJkZjkwNTZiMDJiYzg5Y2Q0YjgzMDEwYWI0MTFjOWU4MjE3MzdiY2Q5Y2JkYThmNWJhYzA0ZjJjZjEzZmIwIiwidGFnIjoiIn0%3D; expires=Fri, 30 May 2025 04:39:29 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ink2NEtQaTk3ODBPbUl6WkJZdTVzb2c9PSIsInZhbHVlIjoiSWJoMlZUWU9GMG5QNitSMlNCTlZ4UWJVZUlhOGR2UWF6TDdHcmRiMm5YNWx2OTg0SWhhTGtGU2NQeWhrdWlVVmhsd2xpM" 1 => "laravel_session=eyJpdiI6IkhFejVrYTAzSExzd21mWGRwdGVpelE9PSIsInZhbHVlIjoiTlZpb3hpNWhrdlFVci9WWGs3VFF0YXVVd0ZHVWNrSjFxbjU1S1NacDdYT2tEL3d5bjFjSzRHUUVnN0dCa1RaYWFmanEwcjNoOTdtWmpUMlgzQkJWZDhBVnlIL2hXYjhHUXVTb2VtS0hCWXE0a0lxNG85K1A3TlRLOHRHUmFaUWMiLCJtYWMiOiI2NWFhYzEyZDQ0MmY2NWNmN2IwOWQ0ZDdjMDU2OTU4YmI2NjIzNDhmODg0ZjkwZjYzNjZmYzczZmMyNWI3MjIxIiwidGFnIjoiIn0%3D; expires=Fri, 30 May 2025 04:39:29 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkhFejVrYTAzSExzd21mWGRwdGVpelE9PSIsInZhbHVlIjoiTlZpb3hpNWhrdlFVci9WWGs3VFF0YXVVd0ZHVWNrSjFxbjU1S1NacDdYT2tEL3d5bjFjSzRHUUVnN0dCa1RaYWFm" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ink2NEtQaTk3ODBPbUl6WkJZdTVzb2c9PSIsInZhbHVlIjoiSWJoMlZUWU9GMG5QNitSMlNCTlZ4UWJVZUlhOGR2UWF6TDdHcmRiMm5YNWx2OTg0SWhhTGtGU2NQeWhrdWlVVmhsd2xpM2FuMExPcmowUmltcE4zQlF5V29pY1pWWlYwenU3MG9IY3Z5SUt2NXFRZWdiMGduYTVlQ1M4eE80QysiLCJtYWMiOiIwNjJkZjkwNTZiMDJiYzg5Y2Q0YjgzMDEwYWI0MTFjOWU4MjE3MzdiY2Q5Y2JkYThmNWJhYzA0ZjJjZjEzZmIwIiwidGFnIjoiIn0%3D; expires=Fri, 30-May-2025 04:39:29 GMT; path=/XSRF-TOKEN=eyJpdiI6Ink2NEtQaTk3ODBPbUl6WkJZdTVzb2c9PSIsInZhbHVlIjoiSWJoMlZUWU9GMG5QNitSMlNCTlZ4UWJVZUlhOGR2UWF6TDdHcmRiMm5YNWx2OTg0SWhhTGtGU2NQeWhrdWlVVmhsd2xpM" 1 => "laravel_session=eyJpdiI6IkhFejVrYTAzSExzd21mWGRwdGVpelE9PSIsInZhbHVlIjoiTlZpb3hpNWhrdlFVci9WWGs3VFF0YXVVd0ZHVWNrSjFxbjU1S1NacDdYT2tEL3d5bjFjSzRHUUVnN0dCa1RaYWFmanEwcjNoOTdtWmpUMlgzQkJWZDhBVnlIL2hXYjhHUXVTb2VtS0hCWXE0a0lxNG85K1A3TlRLOHRHUmFaUWMiLCJtYWMiOiI2NWFhYzEyZDQ0MmY2NWNmN2IwOWQ0ZDdjMDU2OTU4YmI2NjIzNDhmODg0ZjkwZjYzNjZmYzczZmMyNWI3MjIxIiwidGFnIjoiIn0%3D; expires=Fri, 30-May-2025 04:39:29 GMT; path=/; httponlylaravel_session=eyJpdiI6IkhFejVrYTAzSExzd21mWGRwdGVpelE9PSIsInZhbHVlIjoiTlZpb3hpNWhrdlFVci9WWGs3VFF0YXVVd0ZHVWNrSjFxbjU1S1NacDdYT2tEL3d5bjFjSzRHUUVnN0dCa1RaYWFm" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "zxHxSm8ijU5itD8qgZFYRaK7QAnC9QEpCmSxceBr" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/advanced-ansible-for-devops:-create-the-mean-stack" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]