Getting Productive with Chef Cookbooks

بواسطة: Pluralsight

Overview

Using Chef to define and configure your systems requires an understanding of what’s possible as well as the tools you will have at your disposal. In this course, you will learn the fundamentals to develop configuration management solutions with Chef.

Because this course builds on the Planning & Installing Chef course, the viewer will already have a functional Chef lab environment, or at least have the capacity to create one. In that course, we focused on the end result, and the Chef recipes and cookbooks we created in Planning & Installing Chef were purposefully quick and dirty, and did not adhere to any kind of development standards. However, this would not work in the day-to-day life of a Chef administrator, where robust, repeatable code is the critical foundation of reliable infrastructure and application configuration. In order to achieve this, in this course we will develop Chef cookbooks designed to configure pre-existing Windows 2012 R2 Server and Ubuntu Server 14.04 LTS systems with a fully-functional web application with database backend (IIS/SQL and Apache/MySQL respectively). These cookbooks will consist of code we build ourselves, as well as, community cookbooks from the Opscode Marketplace. We will then use Test Kitchen and Vagrant to test our cookbooks in a dynamically-created test environment to make sure they are solid, before uploading the code in to production to be applied against our live servers.

Taught by

James Bannan

Getting Productive with Chef Cookbooks
الذهاب الي الدورة

Getting Productive with Chef Cookbooks

بواسطة: Pluralsight

  • Pluralsight
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • beginner
  • N/A
8.1.2PHP Version306msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (187ms)
    • Application (119ms)
    • 1 x Booting (60.93%)
      186.68ms
      1 x Application (38.83%)
      118.96ms
      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 ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed10.57ms
      • select * from `courses` where `slug_ar` = 'getting-productive-with-chef-cookbooks' limit 1
        8.75ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. getting-productive-with-chef-cookbooks
        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-25 18:30:34' where `id` = 5516
        770μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-05-25 18:30:34
        • 1. 5516
        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 (69)
        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)
        190μ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 (57) and `providers`.`deleted_at` is null
        180μ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` = 5507 limit 1
        460μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 5507
        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
        d7eQ8XnBh6pgPHlWx8CGSBfcNFVyFaBTh9eh7UJL
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/gettin...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/getting-productive-with-chef-cookbooks
        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 => "13.59.255.146" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "13.59.255.146" ] "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 => "94571acdbf0d124c-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" => "13.59.255.146" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "13.59.255.146" "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" => "94571acdbf0d124c-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" => "45670" "REMOTE_ADDR" => "172.69.17.161" "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" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/getting-productive-with-chef-cookbooks" "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" => 1748197834.136 "REQUEST_TIME" => 1748197834 ]
        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, 25 May 2025 18:30:34 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNHcFgrMVBQbVJsWnNxQnFUWDd0UUE9PSIsInZhbHVlIjoiVFdCbG1zUjhKaUJVTUFjTVNub1BkOVoycXRDSHFybWwwN2xCRDlBZWZaVUExc01RcGl5VWlEMnZaUWlpanoxeXN1enIxR1JValZiYUJJMVhFeEcxVjlzcmpiN3VxNWt1RHJ6TjhHWjFVbFFtdVhDWmJJbDRqWCtuV3ZpZzlINnQiLCJtYWMiOiI2MmI5Y2M4MWZmMGFlZWRiZGRmOTNjNDdiOGYwMTNmYzNjMzYzNGRiZTlkM2JlZDBkMWZkMzFlM2YwNzJmMmRmIiwidGFnIjoiIn0%3D; expires=Sun, 25 May 2025 20:30:34 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjNHcFgrMVBQbVJsWnNxQnFUWDd0UUE9PSIsInZhbHVlIjoiVFdCbG1zUjhKaUJVTUFjTVNub1BkOVoycXRDSHFybWwwN2xCRDlBZWZaVUExc01RcGl5VWlEMnZaUWlpanoxeXN1enIxR" 1 => "laravel_session=eyJpdiI6IjZpTnQ3bnFiODlqTUx1cDVVVmtKNXc9PSIsInZhbHVlIjoiTzlVU1RSbzRMUmV2aVNhQWxHQndrYkViNFBralZEcnNaeTRZWUhhN21OT2Z3b1QrcU10cng5UUdSdlBobDNlVlJpYUJNSXowSTNyRktVOTQzbUlPTG51SEhmZGNWYUFQdWdvTmdKODl5blBmd0ZhdjVKZUYvSXFNdmJCdHRFalYiLCJtYWMiOiJiNTUxM2M3YzQ4NWI3NGU0YzBmNjYyZmE5ZmRmODRlNTg4MGU0NTI5MWI4YjdhOWZjZjUxYzdlNTY2MWQzY2ZiIiwidGFnIjoiIn0%3D; expires=Sun, 25 May 2025 20:30:34 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjZpTnQ3bnFiODlqTUx1cDVVVmtKNXc9PSIsInZhbHVlIjoiTzlVU1RSbzRMUmV2aVNhQWxHQndrYkViNFBralZEcnNaeTRZWUhhN21OT2Z3b1QrcU10cng5UUdSdlBobDNlVlJp" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNHcFgrMVBQbVJsWnNxQnFUWDd0UUE9PSIsInZhbHVlIjoiVFdCbG1zUjhKaUJVTUFjTVNub1BkOVoycXRDSHFybWwwN2xCRDlBZWZaVUExc01RcGl5VWlEMnZaUWlpanoxeXN1enIxR1JValZiYUJJMVhFeEcxVjlzcmpiN3VxNWt1RHJ6TjhHWjFVbFFtdVhDWmJJbDRqWCtuV3ZpZzlINnQiLCJtYWMiOiI2MmI5Y2M4MWZmMGFlZWRiZGRmOTNjNDdiOGYwMTNmYzNjMzYzNGRiZTlkM2JlZDBkMWZkMzFlM2YwNzJmMmRmIiwidGFnIjoiIn0%3D; expires=Sun, 25-May-2025 20:30:34 GMT; path=/XSRF-TOKEN=eyJpdiI6IjNHcFgrMVBQbVJsWnNxQnFUWDd0UUE9PSIsInZhbHVlIjoiVFdCbG1zUjhKaUJVTUFjTVNub1BkOVoycXRDSHFybWwwN2xCRDlBZWZaVUExc01RcGl5VWlEMnZaUWlpanoxeXN1enIxR" 1 => "laravel_session=eyJpdiI6IjZpTnQ3bnFiODlqTUx1cDVVVmtKNXc9PSIsInZhbHVlIjoiTzlVU1RSbzRMUmV2aVNhQWxHQndrYkViNFBralZEcnNaeTRZWUhhN21OT2Z3b1QrcU10cng5UUdSdlBobDNlVlJpYUJNSXowSTNyRktVOTQzbUlPTG51SEhmZGNWYUFQdWdvTmdKODl5blBmd0ZhdjVKZUYvSXFNdmJCdHRFalYiLCJtYWMiOiJiNTUxM2M3YzQ4NWI3NGU0YzBmNjYyZmE5ZmRmODRlNTg4MGU0NTI5MWI4YjdhOWZjZjUxYzdlNTY2MWQzY2ZiIiwidGFnIjoiIn0%3D; expires=Sun, 25-May-2025 20:30:34 GMT; path=/; httponlylaravel_session=eyJpdiI6IjZpTnQ3bnFiODlqTUx1cDVVVmtKNXc9PSIsInZhbHVlIjoiTzlVU1RSbzRMUmV2aVNhQWxHQndrYkViNFBralZEcnNaeTRZWUhhN21OT2Z3b1QrcU10cng5UUdSdlBobDNlVlJp" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "d7eQ8XnBh6pgPHlWx8CGSBfcNFVyFaBTh9eh7UJL" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/getting-productive-with-chef-cookbooks" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]