<!DOCTYPE html>
<html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#" class="scroll-smooth">
  <head>
        <script type="text/plain" nonce="ZUQZrJg-f7s94WMdgIN6eA" class="optanon-category-C0004" src="https://cdn.optimizely.com/js/5486583420289024.js"></script>
                <!-- Standard Favicon -->
    <link rel="icon" type="image/png" sizes="16x16" href="/themes/custom/p4base/assets/favicons/pup/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/themes/custom/p4base/assets/favicons/pup/favicon-32x32.png">
    <link rel="shortcut icon" href="/themes/custom/p4base/assets/favicons/pup/favicon.ico">
    <link rel="icon" type="image/x-icon" href="/themes/custom/p4base/assets/favicons/pup/favicon.ico">
    <!-- Apple Touch Icon (iOS) -->
    <link rel="apple-touch-icon" sizes="180x180" href="/themes/custom/p4base/assets/favicons/pup/apple-touch-icon.png">
    <!-- Android Chrome Icons -->
    <link rel="icon" type="image/png" sizes="192x192" href="/themes/custom/p4base/assets/favicons/pup/android-chrome-192x192.png">
    <link rel="icon" type="image/png" sizes="512x512" href="/themes/custom/p4base/assets/favicons/pup/android-chrome-512x512.png">
    <!-- Web App Manifest -->
    <link rel="manifest" href="/themes/custom/p4base/assets/favicons/pup/site.webmanifest">

        <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="theme-color" content="#4C00FF">

    <meta charset="utf-8" />
<meta name="description" content="Read the Puppet blog for insights on automation, DevOps, security, and compliance. Discover best practices, trends, and expert guidance." />
<meta property="og:url" content="https://www.puppet.com/blog" />
<meta property="og:title" content="Blog | Puppet" />
<meta property="og:description" content="Stay up to date with the Puppet blog. Explore insights on infrastructure automation, DevOps, security, and compliance, along with best practices and industry trends to help modernize IT operations and improve efficiency." />
<meta property="og:image" content="https://www.puppet.com/sites/default/files/image-social-share-default.jpg" />
<meta property="og:image:url" content="https://www.puppet.com/sites/default/files/image-social-share-default.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:description" content="Stay up to date with the Puppet blog. Explore insights on infrastructure automation, DevOps, security, and compliance, along with best practices and industry trends to help modernize IT operations and improve efficiency." />
<meta name="twitter:site" content="@perforce" />
<meta name="twitter:title" content="Blog | Puppet" />
<meta name="twitter:creator" content="@perforce" />
<meta name="MobileOptimized" content="width" />
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script id="gtmScript" nonce="ZUQZrJg-f7s94WMdgIN6eA" data-gtm-nonce="ZUQZrJg-f7s94WMdgIN6eA">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id=GTM-PF6FV6'+dl;var n=d.querySelector('[nonce]');n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PF6FV6');</script>
<link rel="alternate" hreflang="en" href="https://www.puppet.com/blog" />
<link rel="stylesheet" href="/styles/node/234/10169/backgrounds.css" />
<link rel="icon" href="/sites/default/files/favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="canonical" href="https://www.puppet.com/blog" />
<script nonce="ZUQZrJg-f7s94WMdgIN6eA">window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};a2a_config.icon_color = "#4C00FF";</script>

    <title>IT Automation &amp; DevOps Blog | Puppet</title>
    <link rel="stylesheet" media="all" href="/sites/default/files/css/css_o_6N4eansPV5gtWUxZ3RTItDKL15F_xUk4EOBpW3wLU.css?delta=0&amp;language=en&amp;theme=p4base&amp;include=eJxVjlFuwzAMQy_k2j-7T6BUqqPVsQRJadLbz9uaDvshyCeIICCGQH8WeJl8M-mRgAvwVJvM0NJMEWQTHSpOON24jeilUicb56sYFbRNoWX4hCPREY37_WSvmPRjBqfyLaevYDFKLjtjpTipGvuaFAyqgS5-Fv2RvHXd5sa-ECZdJMR31vH5tvmKPTkHjWqaoJFF4c6R_OlB6--KB9Pu5UfzKri1_8jIVbrzgy7VGL8ANuN0hw" />
<link rel="stylesheet" media="all" href="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.min.css" />
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_AmDCQZmTBAy0Ad6xKXbqo4_7aJ79QWqttuhOZ9cXjcs.css?delta=2&amp;language=en&amp;theme=p4base&amp;include=eJxVjlFuwzAMQy_k2j-7T6BUqqPVsQRJadLbz9uaDvshyCeIICCGQH8WeJl8M-mRgAvwVJvM0NJMEWQTHSpOON24jeilUicb56sYFbRNoWX4hCPREY37_WSvmPRjBqfyLaevYDFKLjtjpTipGvuaFAyqgS5-Fv2RvHXd5sa-ECZdJMR31vH5tvmKPTkHjWqaoJFF4c6R_OlB6--KB9Pu5UfzKri1_8jIVbrzgy7VGL8ANuN0hw" />
<link rel="stylesheet" media="all" href="/sites/default/files/css/css_Zsgziioo8V6XZ7BPHXq6OXKaQtmN8-YyX-mCDwVXXQ8.css?delta=3&amp;language=en&amp;theme=p4base&amp;include=eJxVjlFuwzAMQy_k2j-7T6BUqqPVsQRJadLbz9uaDvshyCeIICCGQH8WeJl8M-mRgAvwVJvM0NJMEWQTHSpOON24jeilUicb56sYFbRNoWX4hCPREY37_WSvmPRjBqfyLaevYDFKLjtjpTipGvuaFAyqgS5-Fv2RvHXd5sa-ECZdJMR31vH5tvmKPTkHjWqaoJFF4c6R_OlB6--KB9Pu5UfzKri1_8jIVbrzgy7VGL8ANuN0hw" />

    
    <script type="text/plain" nonce="ZUQZrJg-f7s94WMdgIN6eA" class="optanon-category-C0004">
      var zaius = window['zaius']||(window['zaius']=[]);zaius.methods=["initialize","onload","customer","entity","event","subscribe","unsubscribe","consent","identify","anonymize","dispatch"];zaius.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);zaius.push(t);return zaius}};(function(){for(var i=0;i<zaius.methods.length;i++){var method=zaius.methods[i];zaius[method]=zaius.factory(method)}var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src=("https:"===document.location.protocol?"https://":"http://")+"d1igp3oop3iho5.cloudfront.net/v2/fhfbx5i1OfDpypNu3t8vpQ/zaius-min.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
      // Edits to this script should only be made below this line.
      function sixsense_vuid_hash_id() {zaius.event('pageview',
      {"sixsense_vuid_hash_id": window.zaius.VUID}
      );}
      if (window.zaius.VUID) {sixsense_vuid_hash_id();}else {window.zaius.onload(sixsense_vuid_hash_id);}
    </script>
  </head>
  <body class="site-puppet">
      <!-- Google Tag  Manager (noscript) -->
    <noscript>
      <iframe class="hidden invisible" src="//www.googletagmanager.com/ns.html?id=GTM-PF6FV6" height="0" width="0"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->
        <a href="#main-content" class="visually-hidden focusable">
      Skip to main content
    </a>
    <div data-sitewide-alert aria-live="polite"></div>

      <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas>
    



<div  class="layout-container">
  <header >
            <div id="top-nav-bar">
  <div class="region--header-top">
    <div class="max-w-container mx-auto relative block">
    <div  id="block-p4base-perforcesite" class="block">
  
    
      

            <div class="text-long"><div><div class="photoswipe-gallery"><div><a href="https://www.perforce.com" title="Perforce"><svg style="margin-top:-10px;" id="logo-perforce-icon-reg" width="30" height="30" viewBox="0 0 176.53 144.22"><g><path d="M122.2,50.37l-16.76,9.68,4.24,2.45c5.01,2.89,5.55,7.69,5.55,9.62s-.54,6.73-5.55,9.62l-75.84,43.79c-5.01,2.89-9.44.96-11.11,0-1.67-.96-5.55-3.83-5.55-9.62V28.32c0-5.79,3.88-8.66,5.55-9.62,1.67-.96,6.09-2.89,11.11,0l20.09,11.6,17.17-9.91L42.42,3.83C33.56-1.28,22.99-1.28,14.14,3.83,5.29,8.95,0,18.1,0,28.32v87.58c0,10.22,5.29,19.38,14.14,24.49,4.43,2.56,9.28,3.83,14.14,3.83s9.71-1.28,14.14-3.83l75.84-43.79c8.85-5.11,14.14-14.27,14.14-24.49,0-8.6-3.75-16.43-10.2-21.74Z" fill="#4c00ff" /><path d="M54.33,93.86l16.76-9.68-4.24-2.45c-5.01-2.89-5.55-7.69-5.55-9.62s.54-6.73,5.55-9.62l75.84-43.79c5.01-2.89,9.44-.96,11.11,0,1.67.96,5.55,3.83,5.55,9.62v87.58c0,5.79-3.88,8.66-5.55,9.62-1.67.96-6.09,2.89-11.11,0l-20.09-11.6-17.17,9.91,28.68,16.56c8.85,5.11,19.43,5.11,28.28,0,8.85-5.11,14.14-14.27,14.14-24.49V28.32c0-10.22-5.29-19.38-14.14-24.49-4.43-2.56-9.28-3.83-14.14-3.83s-9.71,1.28-14.14,3.83L58.27,47.62c-8.85,5.11-14.14,14.27-14.14,24.49,0,8.6,3.75,16.43,10.2,21.74Z" fill="#4c00ff" /></g></svg></a></div></div></div></div>
      
  </div>

    </div>
  </div>

                  
  <div id="branding-mm">

        <div class="flex items-center justify-between px-8 py-4 fixed z-50 bg-white w-full h-24">
      <div  id="block-p4base-sitebranding" class="block my-auto mr-8">
  
    
    <div class="branding-flex flex items-center gap-6">
              <a
        href="https://www.perforce.com"
        class="perforce-logo"
        aria-label="Perforce"
      >
      </a>
            <a href="/" rel="home" target="_blank">
      <img src="/sites/default/files/logo-puppet-reg_0.svg" alt="Puppet" fetchpriority="high" class="lg:max-w-[18.75rem] max-w-[12rem] max-h-[40px] w-48" />
    </a>
      
  </div>
</div>
<nav role="navigation" aria-labelledby="block-p4base-mainmenusystem-menu" id="block-p4base-mainmenusystem" data-region="header" class="order-2 xl:order-1 xl:border-none md:border-l border-solid border-gray-300">
            
  <h2 class="visually-hidden" id="block-p4base-mainmenusystem-menu">Main Menu System</h2>
  

        
<nav
  class="relative w-full"
  aria-label="Main navigation"
  x-data="{
    mobileOpen: false,
    activeItem: null,
    closeTimer: null,
    toggleItem(index) {
      this.activeItem = this.activeItem === index ? null : index;
    }
  }"
>

    <div class="xl:hidden flex items-center justify-end">
    <button
      class="flex items-center gap-2 px-3 py-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
      @click="mobileOpen = true"
      :aria-expanded="mobileOpen ? 'true' : 'false'"
      aria-controls="main-nav-menu"
      aria-label="Open navigation menu"
    >
      <span class="text-[2.25rem] leading-none">☰</span>
      <span class="sr-only">Open menu</span>
    </button>
  </div>

    <div
    x-show="mobileOpen"
    x-transition:enter="transition ease-out duration-300"
    x-transition:enter-start="opacity-0 translate-x-full"
    x-transition:enter-end="opacity-100 translate-x-0"
    x-transition:leave="transition ease-in duration-200"
    x-transition:leave-start="opacity-100 translate-x-0"
    x-transition:leave-end="opacity-0 translate-x-full"
    class="fixed inset-0 bg-white z-50 flex flex-col h-screen overflow-y-auto xl:hidden"
    x-cloak
    @keydown.escape.window="mobileOpen = false"
    role="dialog"
    aria-modal="true"
    aria-label="Mobile navigation"
  >

        <div class="flex items-center justify-between px-4 py-3 border-b border-gray-100 flex-shrink-0">

            <div class="flex-shrink-0">
        <div  class="block my-auto mr-8">
  
    
    <div class="branding-flex flex items-center gap-6">
              <a
        href="https://www.perforce.com"
        class="perforce-logo"
        aria-label="Perforce"
      >
      </a>
            <a href="/" rel="home" target="_blank">
      <img src="/sites/default/files/logo-puppet-reg_0.svg" alt="Puppet" fetchpriority="high" class="lg:max-w-[18.75rem] max-w-[12rem] max-h-[40px] w-48" />
    </a>
        <a href="/" rel="home" class="hidden">Puppet</a>
    
  </div>
</div>

      </div>

            <button
        class="flex items-center gap-2 px-3 py-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 mr-8"
        @click="mobileOpen = false"
        aria-label="Close navigation menu"
      >
        <span class="text-base leading-none">✖</span>
        <span class="sr-only">Close menu</span>
      </button>

    </div>
    <div class="mobile-search md:hidden">
      <div  data-drupal-selector="views-exposed-form-sitewide-search-page-search" class="block views-exposed-form bef-exposed-form">
  
      <h2 class="h2">Sitewide Search</h2>
    
      <form action="/search" method="get" id="views-exposed-form-sitewide-search-page-search" accept-charset="UTF-8">

        <div class="relative mx-auto">
        <input
                type="text"
                name="keys"
                value=""
                placeholder="Search..."
                class="w-[800px] placeholder:text-p4-primary text-base text-p4-dark py-4 px-4 pr-12 border rounded-md focus:outline-none focus:ring-0 focus:border-transparent"
        />

                <button
                type="submit"
                name=""
                value="Apply"
                class="absolute top-1/2 right-8 transform -translate-y-1/2"
                aria-label="Search"
        >
            <svg class="w-6 h-6 text-p4-primary" id="icon_search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"
                      d="M17.4 9.2c0 4.5-3.7 8.2-8.2 8.2S1 13.8 1 9.2 4.7 1 9.2 1s8.2 3.7 8.2 8.2ZM15 15l8 8"/>
            </svg>

        </button>
    </div>

        
    
    
</form>
  </div>

    </div>  
        <ul class="menu menu-level-0 flex flex-col w-full flex-1 overflow-y-auto !pl-2">
      
                                
        
        <li
          class="menu-item list-none border-gray-100"
        >

                
          <div class="flex items-center justify-between">

                                                            
                      <button
              type="button"
               class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 0) ? &quot;true&quot; : &quot;false&quot;"
                              @click="activeItem = activeItem === 0 ? null : 0"
                          >
              Solutions
            </button>
          
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 0 ? null : 0"
                :aria-expanded="activeItem === 0 ? 'true' : 'false'"
                aria-label="Toggle Solutions submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 0 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 0"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5278" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5284" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Industries</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5279" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/government">Government</a></div>
       
</div></div>
              <div>

<div id="p-5280" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/healthcare">Healthcare</a></div>
       
</div></div>
              <div>

<div id="p-5281" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/financial-services">Financial Services</a></div>
       
</div></div>
              <div>

<div id="p-5282" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/retail-consumer-goods">Retail and Consumer Goods</a></div>
       
</div></div>
              <div>

<div id="p-5283" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/software-it-services">Software and IT Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
        
        <li
          class="menu-item list-none border-gray-100"
        >

                
          <div class="flex items-center justify-between">

                                                            
                      <button
              type="button"
               class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 1) ? &quot;true&quot; : &quot;false&quot;"
                              @click="activeItem = activeItem === 1 ? null : 1"
                          >
              Products
            </button>
          
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 1 ? null : 1"
                :aria-expanded="activeItem === 1 ? 'true' : 'false'"
                aria-label="Toggle Products submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 1 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 1"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5285" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5287" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Core</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Core Configuration Management and Infrastructure Automation Tool</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5286" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-core">Puppet Core</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5289" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Enterprise</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>An IT Operations Platform Designed to Automate, Scale and Secure your Infrastructure</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5288" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-enterprise">Puppet Enterprise</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5292" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Professional Services</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Suite of Managed Puppet Services to Simplify Infrastructure Management</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5290" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services">Professional Services</a></div>
       
</div></div>
              <div>

<div id="p-5291" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services/black-belt/contact">Puppet Black Belt Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
        
        <li
          class="menu-item list-none border-gray-100"
        >

                
          <div class="flex items-center justify-between">

                                                            
                      <button
              type="button"
               class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 2) ? &quot;true&quot; : &quot;false&quot;"
                              @click="activeItem = activeItem === 2 ? null : 2"
                          >
              Learn
            </button>
          
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 2 ? null : 2"
                :aria-expanded="activeItem === 2 ? 'true' : 'false'"
                aria-label="Toggle Learn submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 2 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 2"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5293" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5301" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Resources</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5294" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/blog">Blog</a></div>
       
</div></div>
              <div>

<div id="p-5295" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/customers/case-studies">Customer Case Studies</a></div>
       
</div></div>
              <div>

<div id="p-5296" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/ebooks-papers">eBooks &amp; Papers</a></div>
       
</div></div>
              <div>

<div id="p-5297" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/podcasts">Podcasts</a></div>
       
</div></div>
              <div>

<div id="p-5298" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/webinars">Webinars</a></div>
       
</div></div>
              <div>

<div id="p-5299" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/videos">Videos</a></div>
       
</div></div>
              <div>

<div id="p-5300" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources">All Resources</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5308" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Technical</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5302" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://help.puppet.com/">Documentation</a></div>
       
</div></div>
              <div>

<div id="p-5303" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/community">Community</a></div>
       
</div></div>
              <div>

<div id="p-5304" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/support/training">Training</a></div>
       
</div></div>
              <div>

<div id="p-5305" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/integrations">Puppet Integrations</a></div>
       
</div></div>
              <div>

<div id="p-5306" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet">Customer Support Portal</a></div>
       
</div></div>
              <div>

<div id="p-5307" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      

<div id="p-5309" class="paragraph paragraph--type--menu-featured-content paragraph--view-mode--default menu-featured-content p-4 hidden lg:block">
      <span class="font-bold my-4 leading-normal">System Hardening Assessment</span>
  
  <div class="rounded-3xl overflow-hidden mx-auto !my-4">
  




            <div class="field field--name-field-image field--type-entity-reference field--label-hidden"><div>
  
  




  <div class="field field--name-field-media-image field--type-image field--label-visually_hidden">
    <div class="visually-hidden">Image</div>
                          <img loading="lazy" src="/sites/default/files/2026-07/puppet-image-web-system-hardening-checklist-navigation-1.png" width="600" height="400" alt="A circular progress chart displaying a score of 43 out of 100 with &quot;Developing&quot; in orange below." />


                </div>

</div>
</div>
       
    </div>
  <span class="menu-link-list">
  

            <div class="text-long"><p>Identify the gaps before they impact.</p>
</div>
      
  </span>

  <div class="menu-link-item mt-8">
    




            <div class="field field--name-field-link field--type-link field--label-hidden"><a href="https://www.puppet-assessment.com">See Where You Stand &gt;</a></div>
          
    </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
        
        <li
          class="menu-item list-none border-gray-100"
        >

                
          <div class="flex items-center justify-between">

                                                            
                      <button
              type="button"
               class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 3) ? &quot;true&quot; : &quot;false&quot;"
                              @click="activeItem = activeItem === 3 ? null : 3"
                          >
              Puppet Forge
            </button>
          
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 3 ? null : 3"
                :aria-expanded="activeItem === 3 ? 'true' : 'false'"
                aria-label="Toggle Puppet Forge submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 3 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 3"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5310" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5313" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5311" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/">Puppet Forge</a></div>
       
</div></div>
              <div>

<div id="p-5312" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/modules?limit=25&amp;sort_by=rank&amp;module_groups=base%20pe_only&amp;utm_term=trendemon&amp;_gl=1*15ymtg2*_gcl_aw*R0NMLjE3NzE4NjAyMjEuQ2p3S0NBaUFrdkRNQmhCTUVpd0FuVUE5QmQzS014dnQ2bDNhUHdya1M3YnBkU1NWZ0tUOGh5VHludC12c2VsMGNmNkVaNW91eGNLMVp4b0NUYm9RQXZEX0J3RQ..*_gcl_au*MTcxNjQxNDk3Ni4xNzY3MzY3MjMwLjE0Mzg3OTMzMjYuMTc3MzM0MjM4Ni4xNzczMzQyMzg1&amp;premium=true">Premium Modules</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
      
                                
        
        <li
          class="menu-item list-none border-gray-100"
        >

                
          <div class="flex items-center justify-between">

                                                            
                      <button
              type="button"
               class="px-1 py-1 inline-flex items-center gap-2 flex-1 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 4) ? &quot;true&quot; : &quot;false&quot;"
                              @click="activeItem = activeItem === 4 ? null : 4"
                          >
              Company
            </button>
          
                                      <button
                class="px-4 py-4 mr-12 lg:mr-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2"
                @click="activeItem = activeItem === 4 ? null : 4"
                :aria-expanded="activeItem === 4 ? 'true' : 'false'"
                aria-label="Toggle Company submenu"
              >
                <svg
                  class="w-4 h-4 transition-transform duration-200"
                  :class="activeItem === 4 ? 'rotate-180' : ''"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none" viewBox="0 0 24 24"
                  stroke="currentColor" stroke-width="2"
                >
                  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7" />
                </svg>
              </button>
            
          </div>

  
  <div
    x-show="activeItem === 4"
    x-transition:enter="transition ease-out duration-200"
    x-transition:enter-start="opacity-0 -translate-y-2"
    x-transition:enter-end="opacity-100 translate-y-0"
    x-transition:leave="transition ease-in duration-150"
    x-transition:leave-start="opacity-100 translate-y-0"
    x-transition:leave-end="opacity-0 -translate-y-2"
    class="flex flex-col"
    x-cloak
  >
        <div class=" flex-1">
      <div class="
        lg:p-4
        [&_.layout]:!block
        [&_.layout__region]:!block
        [&_.layout__region]:!w-full
      ">
        
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5314" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5321" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5315" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/about">About Puppet</a></div>
       
</div></div>
              <div>

<div id="p-5316" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/careers">Careers</a></div>
       
</div></div>
              <div>

<div id="p-5317" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/company/management-team">Leadership</a></div>
       
</div></div>
              <div>

<div id="p-5318" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/partner-ecosystem">Partners</a></div>
       
</div></div>
              <div>

<div id="p-5319" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/press">Press</a></div>
       
</div></div>
              <div>

<div id="p-5320" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



      </div>
    </div>

    
  </div>

        </li>
            <div class="mobile-utility-nav-container md:hidden block">
        <nav role="navigation" aria-labelledby="-menu">
      
  <h2 id="-menu"></h2>
  

        <ul class="utility-nav list-none md:flex hidden items-center desktop-utility-nav">

                                                                
  
      
            
    <li>

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Customer Portal Icon" src="/sites/default/files/2026-04/icon-simple-composition-window-man.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

              <a href="/downloads/puppet-enterprise" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Download Icon" src="/sites/default/files/2026-04/icon-simple-download-bottom.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

      
        
        
                      <a href="/contact" class="text-[1.15rem] underline xl1485:no-underline xl1485:p4-cta p4-cta--secondary xl1485:border xl1485:border-p4-primary xl1485:border-solid xl1485:!px-4 xl1485:py-2 xl1485:mt-0 xl1485:hover:!no-underline">
              Contact Us
            </a>

          
        
            
    </li>

      
            
    <li>

      
        
        
          
          <a href="/contact/demo-request" class="utility-nav__link underline xl1485:no-underline xl1485:!px-4 xl1485:mt-0 xl1485:p4-cta text-[1.15rem]">
            Get a Demo
          </a>
          
        
            
    </li>

  </ul>


                                                                
  
      
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="px-1 py-1">
          Login
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="/downloads/puppet-enterprise" class="px-1 py-1">
          Downloads
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
                      
            


<a href="/contact"  class="p4-cta p4-cta--secondary text-[1.15rem] border border-p4-primary border-solid !px-4 py-2 mt-0 hover:!no-underline">
      Contact Us
  </a>

          
        
            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
          
            


<a href="/contact/demo-request"  class="p4-cta text-[1.15rem] !px-4 mt-0">
      Get a Demo
  </a>
          
        
        
  </nav>

      </div>
    </ul>
  </div>

    <ul
    id="main-nav-menu"
    class="menu menu-level-0 hidden xl:flex xl:flex-row xl:items-stretch xl:gap-[1.2rem] w-full xl:w-auto !m-0"
  >
    
                              
      
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 0
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button type="button"  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 0) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 0) ? null : 0" @keydown.space.prevent="activeItem = (activeItem === 0) ? null : 0" @keydown.escape.stop="activeItem = null">
          Solutions
        </button>
      
   
    <div
      x-show="activeItem === 0"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5278" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5284" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Industries</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5279" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/government">Government</a></div>
       
</div></div>
              <div>

<div id="p-5280" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/healthcare">Healthcare</a></div>
       
</div></div>
              <div>

<div id="p-5281" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/financial-services">Financial Services</a></div>
       
</div></div>
              <div>

<div id="p-5282" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/retail-consumer-goods">Retail and Consumer Goods</a></div>
       
</div></div>
              <div>

<div id="p-5283" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/solutions/software-it-services">Software and IT Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                              
      
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 1
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
              "
    >
            
                          
            
              <button type="button"  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 1) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 1) ? null : 1" @keydown.space.prevent="activeItem = (activeItem === 1) ? null : 1" @keydown.escape.stop="activeItem = null">
          Products
        </button>
      
   
    <div
      x-show="activeItem === 1"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 right-0
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      w-max">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5285" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5287" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Core</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Core Configuration Management and Infrastructure Automation Tool</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5286" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-core">Puppet Core</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5289" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Enterprise</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>An IT Operations Platform Designed to Automate, Scale and Secure your Infrastructure</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5288" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/products/puppet-enterprise">Puppet Enterprise</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5292" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Professional Services</span>
    <span class="hidden lg:inline">

            <div class="text-long"><p>A Suite of Managed Puppet Services to Simplify Infrastructure Management</p>
</div>
      </span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5290" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services">Professional Services</a></div>
       
</div></div>
              <div>

<div id="p-5291" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/professional-services/black-belt/contact">Puppet Black Belt Services</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                              
      
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 2
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
              "
    >
            
                          
            
              <button type="button"  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 2) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 2) ? null : 2" @keydown.space.prevent="activeItem = (activeItem === 2) ? null : 2" @keydown.escape.stop="activeItem = null">
          Learn
        </button>
      
   
    <div
      x-show="activeItem === 2"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 right-0
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      w-max">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5293" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  
<div  class="layout--three-column-33-33-33-menu w-full lg:w-[calc(100vw-4rem)] max-w-screen-lg mx-auto">
  <div  class="grid grid-cols-1 lg:grid-cols-[1fr_1fr_1fr] gap-4">
        <div  class="layout__region--col1 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5301" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Resources</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5294" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/blog">Blog</a></div>
       
</div></div>
              <div>

<div id="p-5295" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/customers/case-studies">Customer Case Studies</a></div>
       
</div></div>
              <div>

<div id="p-5296" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/ebooks-papers">eBooks &amp; Papers</a></div>
       
</div></div>
              <div>

<div id="p-5297" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/podcasts">Podcasts</a></div>
       
</div></div>
              <div>

<div id="p-5298" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/webinars">Webinars</a></div>
       
</div></div>
              <div>

<div id="p-5299" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources/videos">Videos</a></div>
       
</div></div>
              <div>

<div id="p-5300" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/resources">All Resources</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col2 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      


<div id="p-5308" class="menu-link-list p-4 has-title">
      <span class="font-bold w-full leading-normal">Technical</span>
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5302" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://help.puppet.com/">Documentation</a></div>
       
</div></div>
              <div>

<div id="p-5303" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/community">Community</a></div>
       
</div></div>
              <div>

<div id="p-5304" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/support/training">Training</a></div>
       
</div></div>
              <div>

<div id="p-5305" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/integrations">Puppet Integrations</a></div>
       
</div></div>
              <div>

<div id="p-5306" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet">Customer Support Portal</a></div>
       
</div></div>
              <div>

<div id="p-5307" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
            <div  class="layout__region--col3 layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
      

<div id="p-5309" class="paragraph paragraph--type--menu-featured-content paragraph--view-mode--default menu-featured-content p-4 hidden lg:block">
      <span class="font-bold my-4 leading-normal">System Hardening Assessment</span>
  
  <div class="rounded-3xl overflow-hidden mx-auto !my-4">
  




            <div class="field field--name-field-image field--type-entity-reference field--label-hidden"><div>
  
  




  <div class="field field--name-field-media-image field--type-image field--label-visually_hidden">
    <div class="visually-hidden">Image</div>
                          <img loading="lazy" src="/sites/default/files/2026-07/puppet-image-web-system-hardening-checklist-navigation-1.png" width="600" height="400" alt="A circular progress chart displaying a score of 43 out of 100 with &quot;Developing&quot; in orange below." />


                </div>

</div>
</div>
       
    </div>
  <span class="menu-link-list">
  

            <div class="text-long"><p>Identify the gaps before they impact.</p>
</div>
      
  </span>

  <div class="menu-link-item mt-8">
    




            <div class="field field--name-field-link field--type-link field--label-hidden"><a href="https://www.puppet-assessment.com">See Where You Stand &gt;</a></div>
          
    </div>
</div>

    </div>
      </div>
</div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                              
      
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 3
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button type="button"  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 3) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 3) ? null : 3" @keydown.space.prevent="activeItem = (activeItem === 3) ? null : 3" @keydown.escape.stop="activeItem = null">
          Puppet Forge
        </button>
      
   
    <div
      x-show="activeItem === 3"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5310" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5313" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5311" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/">Puppet Forge</a></div>
       
</div></div>
              <div>

<div id="p-5312" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://forge.puppet.com/modules?limit=25&amp;sort_by=rank&amp;module_groups=base%20pe_only&amp;utm_term=trendemon&amp;_gl=1*15ymtg2*_gcl_aw*R0NMLjE3NzE4NjAyMjEuQ2p3S0NBaUFrdkRNQmhCTUVpd0FuVUE5QmQzS014dnQ2bDNhUHdya1M3YnBkU1NWZ0tUOGh5VHludC12c2VsMGNmNkVaNW91eGNLMVp4b0NUYm9RQXZEX0J3RQ..*_gcl_au*MTcxNjQxNDk3Ni4xNzY3MzY3MjMwLjE0Mzg3OTMzMjYuMTc3MzM0MjM4Ni4xNzczMzQyMzg1&amp;premium=true">Premium Modules</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
    
                              
      
    <li
              @mouseenter="
          clearTimeout(closeTimer);
          activeItem = 4
        "
        @mouseleave="
          closeTimer = setTimeout(() => activeItem = null, 150)
        "
            class="
        menu-item !m-0 list-none
        relative      "
    >
            
                          
            
              <button type="button"  class="px-3 py-2 inline-flex items-center gap-2 heading-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 menu-item--has-panel" aria-haspopup="true" :aria-expanded="(activeItem === 4) ? &quot;true&quot; : &quot;false&quot;" @keydown.enter.prevent="activeItem = (activeItem === 4) ? null : 4" @keydown.space.prevent="activeItem = (activeItem === 4) ? null : 4" @keydown.escape.stop="activeItem = null">
          Company
        </button>
      
   
    <div
      x-show="activeItem === 4"
      x-cloak
      x-transition:enter="transition ease-out duration-200"
      x-transition:enter-start="opacity-0 translate-y-1"
      x-transition:enter-end="opacity-100 translate-y-0"
      x-transition:leave="transition ease-in-out duration-200"
      x-transition:leave-start="opacity-100 translate-y-0"
      x-transition:leave-end="opacity-0"
      @mouseenter="clearTimeout(closeTimer)"
      @mouseleave="closeTimer = setTimeout(() => activeItem = null, 150)"
      class="
        absolute top-full -mt-px z-50
                  left-0 min-w-[14rem]
              "
    >

    <div class="
      bg-white shadow-lg rounded-3xl overflow-hidden border border-t flex flex-col
      ">

            <div class=" flex-1">
        <div class="px-6 pt-6 pb-0">
          
  
  <div class="menu_link_content menu-link-contentmain-menu-system view-mode-default menu-dropdown menu-dropdown-0 menu-type-default">
              




      <div class="field field--name-field-menu-panel field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5314" class="paragraph paragraph--type--menu-panel paragraph--view-mode--default">
  <div class="layout--one-column-menu w-md mx-auto">
        <div  class="layout__region--main layout__region w-full lg:hover:bg-p4-white transition duration-300 ease-in-out rounded-lg !mb-6">
    


<div id="p-5321" class="menu-link-list p-4 has-no-title">
    <span class="hidden lg:inline"></span>
  <div class="menu-links-wrapper">
    




      <div class="field field--name-field-menu-links field--type-entity-reference-revisions field--label-hidden">
              <div>

<div id="p-5315" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="/about">About Puppet</a></div>
       
</div></div>
              <div>

<div id="p-5316" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/careers">Careers</a></div>
       
</div></div>
              <div>

<div id="p-5317" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/company/management-team">Leadership</a></div>
       
</div></div>
              <div>

<div id="p-5318" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/partner-ecosystem">Partners</a></div>
       
</div></div>
              <div>

<div id="p-5319" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://www.perforce.com/press">Press</a></div>
       
</div></div>
              <div>

<div id="p-5320" class="paragraph paragraph--type--menu-link-item paragraph--view-mode--default menu-link-item">
  




            <div class="field field--name-field-menu-link field--type-link field--label-hidden"><a href="https://trust.perforce.com/">Trust Center</a></div>
       
</div></div>
          </div>
  
  </div>
</div>

    </div>
    </div>

</div>
</div>
          </div>
  
      </div>



        </div>
      </div>

      
    </div>

  </div>

      </li>
      </ul>
</nav>
  </nav>
<nav role="navigation" aria-labelledby="block-p4base-utilitynav-menu" id="block-p4base-utilitynav" data-region="header" class="py-8 px-2 text-[.9rem] [&amp;_li]:mx-3 hidden md:flex items-center justify-end xl:order-2 order-1 ml-auto">
  
            
  <h2 class="visually-hidden" id="block-p4base-utilitynav-menu">Utility Nav</h2>
  

  <div class="flex items-center gap-2">
    

      <div x-data="{ open: false }" class="relative flex items-center">
    <!-- Search Icon Button -->
    <button @click="open = true" class="hover:text-gray-300 dark:text-p4-teal focus:outline-none" id="search-button" aria-label="Open Site Search" title="Open Site Search">
      <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-6 h-6">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-4.35-4.35M16 10a6 6 0 1 0-12 0 6 6 0 0 0 12 0z"/>
      </svg>
    </button>

    <!-- Fullscreen Search Overlay -->
    <div x-show="open" x-transition.opacity x-cloak
         @click.away="open = false"
         @keydown.escape.window="open = false"
         x-init="$watch('open', value => {
         if (value) {
            $nextTick(() => {
            const input = document.querySelector('#search-modal-content input[type=text]');
            if (input) input.focus();
          });
         }
       })"
         class="fixed inset-0 bg-p4-primary bg-opacity-90 flex items-center justify-center z-50">

      <div class="container p-4 relative">
          <!-- Search Form Container -->
        <div id="search-modal-content" class="w-full flex items-center justify-center">
          <div  data-drupal-selector="views-exposed-form-sitewide-search-page-search" class="block views-exposed-form bef-exposed-form">
  
      <h2 class="h2">Sitewide Search</h2>
    
      <form action="/search" method="get" id="views-exposed-form-sitewide-search-page-search" accept-charset="UTF-8">

        <div class="relative mx-auto">
        <input
                type="text"
                name="keys"
                value=""
                placeholder="Search..."
                class="w-[800px] placeholder:text-p4-primary text-base text-p4-dark py-4 px-4 pr-12 border rounded-md focus:outline-none focus:ring-0 focus:border-transparent"
        />

                <button
                type="submit"
                name=""
                value="Apply"
                class="absolute top-1/2 right-8 transform -translate-y-1/2"
                aria-label="Search"
        >
            <svg class="w-6 h-6 text-p4-primary" id="icon_search" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"
                      d="M17.4 9.2c0 4.5-3.7 8.2-8.2 8.2S1 13.8 1 9.2 4.7 1 9.2 1s8.2 3.7 8.2 8.2ZM15 15l8 8"/>
            </svg>

        </button>
    </div>

        
    
    
</form>
  </div>

            <!-- Close Button -->
            <button @click="open = false"
                    class="ml-8 w-10 h-10 bg-p4-teal text-p4-dark hover:text-black text-xl rounded-full flex items-center justify-center">
                ✖
            </button>
        </div>
      </div>
    </div>
  </div>


        <div>
              <ul class="utility-nav list-none md:flex hidden items-center desktop-utility-nav">

                                                                
  
      
            
    <li>

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Customer Portal Icon" src="/sites/default/files/2026-04/icon-simple-composition-window-man.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

              <a href="/downloads/puppet-enterprise" class="utility-nav__link utility-nav__icon hover:opacity-70 w-5 h-5 block !max-w-none">
          <div>
  
  




  <div class="field field--name-field-icon field--type-svg-image-field field--label-visually_hidden">
    <div class="visually-hidden">SVG</div>
                        <img width="25" height="25" alt="Download Icon" src="/sites/default/files/2026-04/icon-simple-download-bottom.svg" />

                </div>

</div>

        </a>

            
    </li>

      
            
    <li>

      
        
        
                      <a href="/contact" class="text-[1.15rem] underline xl1485:no-underline xl1485:p4-cta p4-cta--secondary xl1485:border xl1485:border-p4-primary xl1485:border-solid xl1485:!px-4 xl1485:py-2 xl1485:mt-0 xl1485:hover:!no-underline">
              Contact Us
            </a>

          
        
            
    </li>

      
            
    <li>

      
        
        
          
          <a href="/contact/demo-request" class="utility-nav__link underline xl1485:no-underline xl1485:!px-4 xl1485:mt-0 xl1485:p4-cta text-[1.15rem]">
            Get a Demo
          </a>
          
        
            
    </li>

  </ul>


                                                                
  
      
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="px-1 py-1">
          Login
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

              <a href="/downloads/puppet-enterprise" class="px-1 py-1">
          Downloads
        </a>

            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
                      
            


<a href="/contact"  class="p4-cta p4-cta--secondary text-[1.15rem] border border-p4-primary border-solid !px-4 py-2 mt-0 hover:!no-underline">
      Contact Us
  </a>

          
        
            
            
    <li class="md:hidden block menu-item list-none border-gray-100 !mb-4 pl-4 text-[1.15rem] leading-[2.1rem] tracking-[.005rem] font-normal">

      
        
        
          
            


<a href="/contact/demo-request"  class="p4-cta text-[1.15rem] !px-4 mt-0">
      Get a Demo
  </a>
          
        
        
          </div>
  </div>
</nav>

    </div>

  </div>

        </header>

<main role="main"  class="main-content px-0 pt-[96px]">
    
    
    
    
    <a id="main-content" tabindex="-1"></a>                <div>
        
<div  id="block-p4base-headerfieldblock" class="block block-- w-full">
  
    
      




      <div class="field field--name-field-header field--type-entity-reference-revisions field--label-hidden">
              <div>


<div id="p-3007" class="header-listings">
  
<div class="listings-hero px-4 py-10 min-h-[350px] flex items-center bg- bg-cover bg-center bg-no-repeat">
    <div class="max-w-container w-full mx-auto">
        <div class="md:flex max-md:mt-6">  
            <div class="md:w-8/12 mr-8 sm:max-w-[55%] place-content-center sm:flex-none ">
                                    

<h1  class="heading">
                Blog
      </h1>
                                            </div>
                        <div class="md:w-4/12 mt-6 md:mt-0 relative">
                
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block my-6 absolute ml-6">Featured | Blog</span>                                    
<img
   class="w-full h-auto object-cover rounded-3xl"
      src="https://www.puppet.com/sites/default/files/2025-03/pup-blog-automatic-system-hardening.jpg"
  alt="System Hardening Explained: Types, Techniques, Examples &amp; Mistakes to Know"
  />
                                                
                
<a
   class="text-sm w-full px-4 block absolute bottom-0 py-2 bg-p4-primary rounded-3xl text-p4-white"
    href="/blog/system-hardening"
>
      System Hardening Explained: Types, Techniques, Examples &amp; Mistakes to Know
  </a>
            </div>    
                    </div>
    </div>    
</div>
</div>
</div>
          </div>
  
  </div>

    <div data-drupal-messages-fallback class="hidden"></div><div  id="block-p4base-content" class="block">
  
    
      
<article  class="node">

  
    

  
  <div>
    


            <div class="subnav field field--name-field-subnav field--type-entity-reference field--label-hidden bg-p4-primary shadow-xl">


                                  
    

<ul  class="menu max-w-container mx-auto list-none hidden md:flex">
          
<li  class="menu__item flex leading-5">
                      <a href="/resources" class="menu__link" data-drupal-link-system-path="node/237">Resources</a>
                </li>
        
<li  class="menu__item flex leading-5">
                      <a href="/resources/ebooks-papers" class="menu__link" data-drupal-link-system-path="node/240">eBooks &amp; Papers</a>
                </li>
        
<li  class="menu__item flex leading-5">
                      <a href="/resources/webinars" class="menu__link" data-drupal-link-system-path="node/243">Webinars</a>
                </li>
        
<li  class="menu__item flex leading-5">
                      <a href="/resources/videos" class="menu__link" data-drupal-link-system-path="node/249">Videos</a>
                </li>
        
<li  class="menu__item flex leading-5">
                      <a href="/resources/podcasts" class="menu__link" data-drupal-link-system-path="node/642">Podcasts</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--active">
                      <a href="/blog" class="menu__link menu__link--active is-active" data-drupal-link-system-path="node/234" aria-current="page">Blog</a>
                </li>
              

<li  class="menu__item flex leading-5 menu__item flex leading-5--with-sub" x-data="{
            open: false,
            leftOffset: 0,
            adjustDropdown() {
                  const dropdown = this.$el.querySelector(&#039;.menu--sub&#039;);
                  dropdown.style.display = &#039;block&#039;;
                  dropdown.style.visibility = &#039;hidden&#039;;
                  dropdown.style.left = &#039;0px&#039;;
                  const rect = dropdown.getBoundingClientRect();
                  const windowWidth = window.innerWidth;

                  let leftValue = 0;
                  const rightOverflow = rect.right - windowWidth;
                  if (rightOverflow &gt; 0) {
                  leftValue = -rightOverflow -  10;
                  }

                  const leftOverflow = rect.left;
                  if (leftOverflow &lt; 0) {
                  leftValue = -leftOverflow + 10;
                  }

                dropdown.style.removeProperty(&#039;left&#039;);
                dropdown.style.visibility = &#039;visible&#039;;
                if (leftOverflow &lt; 0 || rightOverflow &gt; 0) {
                  console.log(&#039;shift&#039;);
                  dropdown.style.left = `${leftValue}px`;
                  dropdown.style.visibility = &#039;visible&#039;;
                }
            }
          }" @mouseenter="open = true; adjustDropdown()" @mouseleave="open = false">
                          <button
                  class="menu__link menu__link--with-sub flex items-center cursor-default "
                  :aria-expanded="open"
                  @click.prevent="open = !open"
          >
              Community
              <svg
                      xmlns="http://www.w3.org/2000/svg"
                      viewBox="0 0 10 6"
                      class="ml-2 w-[14px] h-[14px] mt-[2px]"
                      fill="currentColor"
              >
                  <path d="M0 0h10L5 6z"></path>
              </svg>
          </button>

                    <span class="expand-sub"></span>
                                                        
    

<ul  class="menu menu--sub menu--sub-1 list-none px-6 py-4 z-40" x-show="open" x-transition:enter="transition ease-out duration-200 transform" x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-out duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @focusout="await $nextTick(); if (! $el.contains(document.activeElement)) open = false">
            
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/283">Overview</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/contribute" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/75">Contribute</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="https://slack.puppet.com/" class="menu__link menu__link--sub menu__link--sub-1">Connect (Slack)</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/calendar" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/339">Calendar</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="/community/open-source/open-source-puppet" class="menu__link menu__link--sub menu__link--sub-1" data-drupal-link-system-path="node/76">Open Source Puppet</a>
                </li>
          
<li  class="menu__item flex leading-5 menu__item flex leading-5--sub menu__item flex leading-5--sub-1">
                      <a href="https://forge.puppet.com/" class="menu__link menu__link--sub menu__link--sub-1">The Forge</a>
                </li>
  </ul>
  
      </li>
        
<li  class="menu__item flex leading-5">
                      <a href="/customers" class="menu__link" data-drupal-link-system-path="node/235">Customer Stories</a>
                </li>
  </ul>
  

<div x-data="{
    mobileMenuOpen: false,
    toggleMenu() {
        this.mobileMenuOpen = !this.mobileMenuOpen;
        console.log(this.mobileMenuOpen);
        if (this.mobileMenuOpen) {
            document.body.style.overflow = 'hidden';
        } else {

            document.body.style.overflow = '';
        }
    }
}" class="md:hidden">
        <button
            @click="toggleMenu()"
            class="md:hidden w-full flex items-center px-8 py-4 rounded-3xl flex justify-between">
        <span class="mr-2 text-white">Overview</span>
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6" class="w-4 h-4 text-p4-teal" fill="currentColor">
            <path d="M0 0h10L5 6z" />
        </svg>

    </button>

        <nav :class="mobileMenuOpen ? 'block' : 'hidden'" class="mega-menu mt-2 md:block bg-white">
        <div class="fixed inset-0 bg-white z-[500] peer-checked:flex lg:hidden flex-col overflow-y-auto">
            <!-- Close Button -->
            <div class="text-right px-4 py-2 border-b">
                <label @click="toggleMenu()"  class="cursor-pointer text-xl">✖</label>
            </div>
            <!-- Menu Items -->
            <ul class="flex-1 flex flex-col gap-y-4 px-4 py-6 list-none">
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Resources
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/ebooks-papers" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                eBooks &amp; Papers
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/webinars" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Webinars
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/videos" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Videos
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/resources/podcasts" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Podcasts
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/blog" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Blog
                            </a>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Accordion Toggle for Submenus -->
                                                        <input id="toggle-community-148347058" type="checkbox"
                                   class="hidden peer"/>
                            <label for="toggle-community-148347058"
                                   class="flex items-center justify-between py-2 px-4 font-medium cursor-pointer text-lg">
                                Community
                                <!-- Triangle Icon -->
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="2"
                                     stroke="currentColor"
                                     class="size-5 shrink-0 transition-transform duration-300 peer-checked:rotate-90"
                                     aria-hidden="true">
                                    <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"/>
                                </svg>
                            </label>

                            <!-- Dropdown Content -->
                            <ul class="hidden peer-checked:block space-y-2 list-none">
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community"
                                               class="hover:underline text-p4-dark">
                                                Overview
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/contribute"
                                               class="hover:underline text-p4-dark">
                                                Contribute
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="https://slack.puppet.com/"
                                               class="hover:underline text-p4-dark">
                                                Connect (Slack)
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/calendar"
                                               class="hover:underline text-p4-dark">
                                                Calendar
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="/community/open-source/open-source-puppet"
                                               class="hover:underline text-p4-dark">
                                                Open Source Puppet
                                            </a>
                                                                            </li>
                                                                    <li class="list-none pl-4 py-2">
                                                                                    <a href="https://forge.puppet.com/"
                                               class="hover:underline text-p4-dark">
                                                The Forge
                                            </a>
                                                                            </li>
                                                            </ul>
                                            </li>
                                    <li class="mega-menu__item list-none">
                                                    <!-- Top-Level Link Without Dropdown -->
                            <a href="/customers" class="block py-2 px-4 font-medium text-lg hover:text-primary">
                                Customer Stories
                            </a>
                                            </li>
                            </ul>
        </div>
    </nav>
</div></div>
      
  </div>

</article>


  </div>
<div  id="block-p4base-views-block-blog-block-1" class="block views-element-container">
  
    
      <div><div class="js-view-dom-id-ba8b2cbfe17035799e7f7e4e2d60b65a17dec16ad5bab151ec4ad99b3babb413">
  
  
  

  
  <form class="views-exposed-form bef-exposed-form" data-bef-auto-submit="" data-bef-auto-submit-delay="500" data-bef-auto-submit-minimum-length="3" data-bef-auto-submit-full-form="" data-drupal-selector="views-exposed-form-blog-block-1" action="/blog/export/daily" method="get" id="views-exposed-form-blog-block-1" accept-charset="UTF-8">
  <div class="js-form-item form-item">
      <label for="edit-field-topics-target-id" class="visually-hidden form-item__label">Topics</label>
        <div class="form-item__dropdown"><select data-drupal-selector="edit-field-topics-target-id" id="edit-field-topics-target-id" name="field_topics_target_id" class="form-select form-item__select"><option value="All" selected="selected">Topic</option><option value="45">Announcements &amp; Events</option><option value="51">Cloud</option><option value="48">Community &amp; Open Source</option><option value="40">Configuration Management</option><option value="44">DevOps</option><option value="46">Ecosystems &amp; Integrations</option><option value="50">Glossary</option><option value="43">Government</option><option value="39">How to &amp; Use Cases</option><option value="47">Infrastructure Automation</option><option value="52">Platform Engineering</option><option value="42">Products &amp; Services</option><option value="41">Security &amp; Compliance</option><option value="49">Windows</option></select></div>
        </div>
<div class="js-form-item form-item">
      <label for="edit-blog-created-year" class="visually-hidden form-item__label">Sort by Year</label>
        <div class="form-item__dropdown"><select data-drupal-selector="edit-blog-created-year" id="edit-blog-created-year" name="blog_created_year" class="form-select form-item__select"><option value="All" selected="selected">Sort By Year</option><option value="2026">2026</option><option value="2025">2025</option><option value="2024">2024</option><option value="2023">2023</option><option value="2022">2022</option><option value="2021">2021</option><option value="2020">2020</option><option value="2019">2019</option></select></div>
        </div>
<div class="js-hide form-actions js-form-wrapper form-wrapper" data-drupal-selector="edit-actions" id="edit-actions"><input data-bef-auto-submit-click="" class="js-hide button js-form-submit form-submit form-item__textfield" data-drupal-selector="edit-submit-blog" type="submit" id="edit-submit-blog" value="Apply" />
</div>


</form>

  

  




<div class="views-view-responsive-grid views-view-responsive-grid--horizontal" style="--views-responsive-grid--column-count:3;--views-responsive-grid--cell-min-width:350px;--views-responsive-grid--layout-gap:10px;">
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
  







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/ai-open-source" title="Building with AI: Our Approach to Responsible Agentic Development in Open Source "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/puppet-blog-agentic-development.jpg" alt="Building with AI: Our Approach to Responsible Agentic Development in Open Source " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Building with AI: Our Approach to Responsible Agentic Development in Open Source 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Puppet is using AI to support open source development while maintaining trust, quality, and accountability. Learn how governance, human review, validation, and community feedback guide AI-assisted contributions across the Puppet ecosystem.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Community &amp; Open Source
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/os-eol-extended-agent-support" title="Your OS Is End of Life. Your Automation May Be Next. "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/puppet-image-blog-os-operating-systems-is-end-of-life.png" alt="Your OS Is End of Life. Your Automation May Be Next. " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Your OS Is End of Life. Your Automation May Be Next. 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        RHEL 7 is end of life, and extended OS support doesn’t cover every layer of risk. Learn how Puppet Extended Agent Support helps keep automation secure, compliant, and reliable while you plan your migration. 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Products &amp; Services, Security &amp; Compliance
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/puppet-unified-compliance" title="Introducing Unified Compliance as a Foundational Part of Puppet&#039;s Future"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/corporate-blog-image-perforce-unified-compliance-puppet-1.png" alt="Introducing Unified Compliance as a Foundational Part of Puppet&#039;s Future" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Introducing Unified Compliance as a Foundational Part of Puppet&#039;s Future
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Puppet has always helped organizations automate and control infrastructure. With Perforce Unified Compliance, that mission expands to meet the demands of the AI era, helping teams continuously govern increasingly diverse environments while connecting infrastructure operations to Perforce’s broader vision for trusted, accountable AI-driven software delivery.  
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Announcements &amp; Events, Security &amp; Compliance
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
  







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/puppetlabs-module-tiers" title="Puppetlabs Modules Now Have Tiered Review Cycles"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/puppet-blog-puppetlabs-modules.jpg" alt="Puppetlabs Modules Now Have Tiered Review Cycles" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Puppetlabs Modules Now Have Tiered Review Cycles
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Puppet is introducing a new tiered review model for Puppetlabs modules on the Forge to improve transparency, contribution turnaround times, and module maintenance. Modules are now grouped into three tiers with defined review cadences.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Community &amp; Open Source
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/cloud-repatriation-trends-2026" title="The Great Repatriation: Enterprise IT Infrastructure Returns to On-Premises"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/puppet-blog-cloud-repatriation-trends-2026.png" alt="The Great Repatriation: Enterprise IT Infrastructure Returns to On-Premises" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      The Great Repatriation: Enterprise IT Infrastructure Returns to On-Premises
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Cloud repatriation is becoming a mainstream enterprise strategy as organizations move selected workloads back to on-premises and private infrastructure. Rising cloud costs, data sovereignty requirements, AI workload demands, and performance considerations are driving this shift.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Cloud, Platform Engineering
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
  







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/driving-value-observability-data-connector" title="Driving Value from Puppet Metrics: Puppet Observability Data Connector "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-07/puppet-blog-driving-value-from-metrics.jpg" alt="Driving Value from Puppet Metrics: Puppet Observability Data Connector " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Driving Value from Puppet Metrics: Puppet Observability Data Connector 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        The Puppet Observability Data Connector, transforms Puppet agent reports into actionable metrics that can be visualized in dashboards, helping teams monitor fleet health, identify configuration drift, measure performance, detect failures, and improve operational decision-making.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            How to &amp; Use Cases
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/multi-agent-ai-control-panes" title="Why Multi-Agent AI Workflows Need a Control Plane"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-05/pup-blog-multi-agent-ai-workflows-740x390.jpg" alt="Why Multi-Agent AI Workflows Need a Control Plane" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Why Multi-Agent AI Workflows Need a Control Plane
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Learn why successful multi-agent AI systems require a control plane to coordinate actions, enforce policies, and provide operational oversight at scale.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/openssl-cve-2026-45447-patching" title="AI Found 18 OpenSSL Vulnerabilities. Now Your Team Has to Patch Them."
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-06/pup-OpenSSL-cve-blog.png" alt="AI Found 18 OpenSSL Vulnerabilities. Now Your Team Has to Patch Them." class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      AI Found 18 OpenSSL Vulnerabilities. Now Your Team Has to Patch Them.
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        AI-driven OpenSSL discoveries are shrinking patch windows. See how Puppet helps teams find, patch, and continuously enforce remediation at scale.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/puppetlabs-stdlib-10" title="What You Need to Know About the New puppetlabs-stdlib 10 in June 2026 "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2025-07/image-blog-pup-developing-modules-puppet-forge-2025-2.png" alt="What You Need to Know About the New puppetlabs-stdlib 10 in June 2026 " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      What You Need to Know About the New puppetlabs-stdlib 10 in June 2026 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Get ready for puppetlabs-stdlib 10. Discover key changes, compatibility updates, and how Puppet is helping module authors prepare for the transition.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Community &amp; Open Source, Announcements &amp; Events
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/policy-as-code" title="Policy as Code Tools &amp; Examples to Make Better Infrastructure Easier, Anywhere"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-06/pup-blog-pac-tools-740x390-02.jpg" alt="Policy as Code Tools &amp; Examples to Make Better Infrastructure Easier, Anywhere" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Policy as Code Tools &amp; Examples to Make Better Infrastructure Easier, Anywhere
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Policy as code is an infrastructure management approach where you write policies as code so they can be enforced at scale. In this blog for sysadmins and IT ops managers, we’ll share a few PaC Solutions, examples, use cases, and compare PaC to infrastructure as code (IaC). 
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Configuration Management, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
  







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/policy-as-code-beyond-the-pipeline" title="Policy as Code Beyond the Pipeline: What Actually Breaks, Drifts, and Gets Audited "
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-05/image-blog-pup-policy-as-code-beyond-pipeline.png" alt="Policy as Code Beyond the Pipeline: What Actually Breaks, Drifts, and Gets Audited " class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Policy as Code Beyond the Pipeline: What Actually Breaks, Drifts, and Gets Audited 
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Discover how runtime policy enforcement helps teams detect configuration drift, maintain compliance, and generate audit-ready evidence beyond pipeline-based policy checks.
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
      <div class="views-view-responsive-grid__item">
      <div class="views-view-responsive-grid__item-inner">
    







<div class="card-component group/[card] w-full p-4 h-full transition-all relative duration-300 hover:text-p4-white">
  <a href="/blog/claude-mythos" title="Claude Mythos: Sorting Fact from Fiction and What It Means for Cyber Defense in 2026"
        class="absolute w-full h-full inset-0 z-30"
    >
  </a>
<div class="card flex flex-wrap bg-white rounded-3xl shadow-md overflow-hidden relative h-full group/[card]">

        <div class="absolute inset-0 bg-gradient-to-b from-p4-primary to-p4-dark opacity-0 transition-opacity duration-700 ease-in-out group-hover/[card]:opacity-100"></div>

        
        <div class="card-top-section w-full h-48 relative z-10 transition-all duration-500 group-hover/[card]:opacity-0 ">
                            <img src="/sites/default/files/2026-05/pup-blog-claude-mythos-ai-cyber-threats-740x390.jpg" alt="Claude Mythos: Sorting Fact from Fiction and What It Means for Cyber Defense in 2026" class="absolute inset-0 w-full h-full  object-cover"/>
            
            
  
<span  class="tag py-2 px-4 shadow-md no-underline text-xs rounded-full focus:outline-none active:shadow-none mr-2 text-p4-dark bg-p4-teal inline-block m-8 absolute">Blog</span>        </div>

                        <div class="card-content basis-full flex flex-col justify-between flex-grow pt-4 px-8 pb-16 relative z-10 transition-all duration-500 group-hover/[card]:text-p4-white">
            <div class="group-hover/[card]:-translate-y-[185px] transition-all duration-500">
                                
  
<h3  class="heading text-p4-dark text-sm transition-all duration-700 group-hover/[card]:text-p4-white ">
                      Claude Mythos: Sorting Fact from Fiction and What It Means for Cyber Defense in 2026
      </h3>
                
                                                    <div class="left-0 w-full text-p4-white absolute opacity-0 group-hover/[card]:opacity-100 transition-all duration-800 mt-6 text-[1rem] leading-6">
                        Claude Mythos highlights a future where AI accelerates vulnerability discovery, making operational speed, automated patching, and continuous enforcement critical for defenders
                    </div>
                
                
                            </div>
        </div>
                            <div class="card-topics-text text-p4-dark mx-8 min-h-[85px] text-[1rem] leading-6 w-full group-hover/[card]:text-p4-white z-20 text-no-underline relative overflow-hidden">
                <div class="absolute bottom-0 border-t-2 pt-2 w-full min-h-[75px]">
                    <div class="marquee" aria-label="Product topics scroller">
                        <div class="marquee__track">
                            Security &amp; Compliance, Infrastructure Automation
                        </div>
                    </div>
                </div>
            </div>
        
        
            </div>
</div>
</div>
    </div>
  </div>

    

  <nav  class="pager" aria-label="Pagination" role="navigation">
    <ul  class="pager__items js-pager__items">
                                                                        <li  class="pager__item is-active">
                    <a  class="pager__link is-active" href="?page=0" title="Current page" aria-current="page" aria-current=&quot;page&quot;>
            <span  class="visually-hidden">
              Current page
            </span>1</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=1" title="Go to page 2" >
            <span  class="visually-hidden">
              Page 
            </span>2</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=2" title="Go to page 3" >
            <span  class="visually-hidden">
              Page 
            </span>3</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=3" title="Go to page 4" >
            <span  class="visually-hidden">
              Page 
            </span>4</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=4" title="Go to page 5" >
            <span  class="visually-hidden">
              Page 
            </span>5</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=5" title="Go to page 6" >
            <span  class="visually-hidden">
              Page 
            </span>6</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=6" title="Go to page 7" >
            <span  class="visually-hidden">
              Page 
            </span>7</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=7" title="Go to page 8" >
            <span  class="visually-hidden">
              Page 
            </span>8</a>
        </li>
                              <li  class="pager__item">
                    <a  class="pager__link" href="?page=8" title="Go to page 9" >
            <span  class="visually-hidden">
              Page 
            </span>9</a>
        </li>
                          <li  class="pager__item pager__item--ellipsis">&hellip;</li>
                          <li  class="pager__item pager__item--next">
          <a  class="pager__link pager__link--next" href="?page=1" title="Go to next page" rel="next">
            <span  class="visually-hidden">Next page</span>
            <span aria-hidden="true">››</span>
          </a>
        </li>
                          <li  class="pager__item pager__item--last">
          <a  class="pager__link pager__link--last" href="?page=19" title="Go to last page" >
            <span  class="visually-hidden">Last page</span>
            <span aria-hidden="true">Last »</span>
          </a>
        </li>
          </ul>
  </nav>


  
  

  
  
</div>
</div>

  </div>

  </div>

      </main>

            
<footer  class="footer footer-- min-h-72">
  <div  class="footer__inner">
    <!-- Footer Menu Section -->
    <div  class="footer__menu border-b border-p4-dark max-w-container mx-auto py-8">
        <nav role="navigation" aria-labelledby="block-p4base-footer-menu" id="block-p4base-footer">
            
  <h2 class="visually-hidden" id="block-p4base-footer-menu">Footer</h2>
  

        
  <div class="footer-menu">
<div class="mx-auto px-4 sm:px-6 grid grid-cols-1 sm:grid-cols-3 lg:grid-cols-5 gap-6">
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Products</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/products/puppet-enterprise" class="footer-menu__link text-p4-dark">Puppet Enterprise Platform</a></li>
                      <li class="list-none !pl-0"><a href="/products/puppet-core" class="footer-menu__link text-p4-dark">Puppet Core</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Forge</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="https://forge.puppet.com/modules" class="footer-menu__link text-p4-dark">Puppet Modules</a></li>
                      <li class="list-none !pl-0"><a href="https://forge.puppet.com/" class="footer-menu__link text-p4-dark">Visit Puppet Forge</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Resources</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/resources/ebooks-papers" class="footer-menu__link text-p4-dark">eBooks &amp; Papers</a></li>
                      <li class="list-none !pl-0"><a href="/resources/videos" class="footer-menu__link text-p4-dark">Videos</a></li>
                      <li class="list-none !pl-0"><a href="/resources/webinars" class="footer-menu__link text-p4-dark">Webinars</a></li>
                      <li class="list-none !pl-0"><a href="/resources/podcasts" class="footer-menu__link text-p4-dark">Podcasts</a></li>
                      <li class="list-none !pl-0"><a href="/blog" class="footer-menu__link text-p4-dark">Blog</a></li>
                      <li class="list-none !pl-0"><a href="/resources" class="footer-menu__link text-p4-dark">All Resources</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Support &amp; Services</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="https://portal.perforce.com/s/product/a3g4X000009wMFBQA2/puppet" class="footer-menu__link text-p4-dark">Customer Portal</a></li>
                      <li class="list-none !pl-0"><a href="https://help.puppet.com/" class="footer-menu__link text-p4-dark">Documentation</a></li>
                      <li class="list-none !pl-0"><a href="/professional-services" class="footer-menu__link text-p4-dark">Professional Services</a></li>
                      <li class="list-none !pl-0"><a href="/support/training" class="footer-menu__link text-p4-dark">Training &amp; Education</a></li>
                  </ul>
          </div>
      <div class="footer-menu__section">
            <div class="footer-menu__section-title text-sm mb-4">Community</div>
                    <ul class="!pl-0 space-y-2">
                      <li class="list-none !pl-0"><a href="/community" class="footer-menu__link text-p4-dark">Overview</a></li>
                  </ul>
          </div>
    </div>
</div>


  </nav>

    </div>

<!-- Branding and Social Media Section -->
<div  class="footer__branding_social max-w-container mx-auto py-6 flex items-center justify-between lg:flex-row flex-col">
  <!-- Branding Section -->
  <div  class="footer__branding max-w-[275px] flex-shrink-0">
    


<div  class="logo">
  
<a
   class="logo__link"
    href="/"
>
        

  
<img
   class="logo__image"
      src="/themes/custom/p4base/assets/images/logo.svg"
  alt="Logo"
  />
    </a>
</div>
    <div class="mt-4 text-xs">
      &copy; 2026 Perforce Software Inc. All Rights Reserved.
    </div>
    <div class="mt-2 text-xs text-center lg:text-left">
      <a href="https://www.perforce.com/privacy-policy">Privacy Policy</a> | 
      <a href="https://www.perforce.com/website-terms-use">Terms of Use</a> |
      <a href="https://www.perforce.com/legal">Legal</a><br/>
      <a href="https://trust.perforce.com/">Trust Center</a> |
      <a id="ot-sdk-btn" class="ot-sdk-show-settings"> Cookie Manager</a><br/>
      <a href="https://preferences.perforce.com/form/opt_out">Do Not Sell or Share My Personal Information</a>
    </div>
  </div>

  <!-- Social Menu Section -->
  <div  class="footer__social flex-shrink-0 lg:flex-row flex-col">
      <div class="social-menu">
        <ul class="social-menu__list flex !pl-0 [&>li]:!px-4 mt-4">
          </ul>
  </div>
  </div>
</div>

  </div>
</footer>
      </div>

  </div>

    
    <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/234","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxPageState":{"libraries":"eJx1j0tyxCAMRC9km03uQ4lCxkrEpyQxHt8-TGwnNYtsRPdDagHEaBXK4eASyyq12ATkgHziGoCngGYoHp-tKka_Eg-rDrpVrz1ksv9aEhaUkYC5s9J6uCsRn8ZUvlyU3oCXy07tI4CiA25U8HavcusEYiNx3ikmtJvmGohxzlj6jZqQ5qmBQBJom96b_sjSS-uBSTeMU9uqVd2pjclfuVAZP1MyHOvQA6OYO9mhhvl82YNwV_dTF_iE5xvINXZ-7xHUVovSA-ckFM87_5r0G6lVOdx1fgM5laC9","theme":"p4base","theme_token":null},"ajaxTrustedUrl":{"\/blog\/export\/daily":true,"\/search":true},"data":{"extlink":{"extTarget":true,"extTargetAppendNewWindowDisplay":true,"extTargetAppendNewWindowLabel":"(opens in a new window)","extTargetNoOverride":true,"extNofollow":false,"extTitleNoOverride":false,"extNoreferrer":false,"extFollowNoOverride":false,"extClass":"0","extLabel":"(link is external)","extImgClass":false,"extSubdomains":true,"extExclude":"","extInclude":"\\.pdf$","extCssExclude":"","extCssInclude":"","extCssExplicit":"","extAlert":false,"extAlertText":"This link will take you to an external web site. We are not responsible for their content.","extHideIcons":false,"mailtoClass":"0","telClass":"0","mailtoLabel":"(link sends email)","telLabel":"(link is a phone number)","extUseFontAwesome":false,"extIconPlacement":"before","extPreventOrphan":true,"extFaLinkClasses":"fa fa-external-link","extFaMailtoClasses":"fa fa-envelope-o","extAdditionalLinkClasses":"","extAdditionalMailtoClasses":"","extAdditionalTelClasses":"","extFaTelClasses":"fa fa-phone","allowedDomains":[],"extExcludeNoreferrer":""}},"sitewideAlert":{"refreshInterval":2592000000,"automaticRefresh":false,"showCount":false,"serverSideRender":false},"photoswipe":{"selector":"a.photoswipe:not(.no-lightbox) \u003E img"},"csp":{"nonce":"ZUQZrJg-f7s94WMdgIN6eA"},"viewsAjaxHistory":{"renderPageItem":0,"initialExposedInput":{"views_dom_id:ba8b2cbfe17035799e7f7e4e2d60b65a17dec16ad5bab151ec4ad99b3babb413":null}},"views":{"ajax_path":"\/views\/ajax","ajaxViews":{"views_dom_id:ba8b2cbfe17035799e7f7e4e2d60b65a17dec16ad5bab151ec4ad99b3babb413":{"view_name":"blog","view_display_id":"block_1","view_args":"","view_path":"\/node\/234","view_base_path":"blog\/export\/daily","view_dom_id":"ba8b2cbfe17035799e7f7e4e2d60b65a17dec16ad5bab151ec4ad99b3babb413","pager_element":0}}},"better_exposed_filters":{"autosubmit_exclude_textfield":false},"user":{"uid":0,"permissionsHash":"c0d2ecfc93d3b34d931d1045496250bcfda1cad2d2d181e33522d31b321f8ffd"}}</script>
<script src="/core/assets/vendor/jquery/jquery.min.js?v=4.0.0"></script>
<script src="/sites/default/files/js/js_mNC9OOyqveiJ7wCYHOUlJA42XOQ-zdbs8xzEHvvrNWA.js?scope=footer&amp;delta=1&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="https://static.addtoany.com/menu/page.js" defer></script>
<script src="/sites/default/files/js/js_4qe7WMbP92DSVxAP5Egnkb5bNNx_9HvSKoiKgoRaRuc.js?scope=footer&amp;delta=3&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="https://cdn.jsdelivr.net/npm/@alpinejs/focus@3.14.3/dist/cdn.min.js" integrity="sha384-bKXNU7o2Y3Uk/F2PB6U0bMyGZf6pLDnePM70U7sTE3cXUQ+JLgzrr/kwipEh0p23" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/alpinejs@3.14.3/dist/cdn.min.js" integrity="sha384-iZD2X8o1Zdq0HR5H/7oa8W30WS4No+zWCKUPD7fHRay9I1Gf+C4F8sVmw7zec1wW" crossorigin="anonymous"></script>
<script src="/sites/default/files/js/js_Ebs5Pnoif9fi0x7vuAJ3i_telU26efDHFpd0Gefd-xg.js?scope=footer&amp;delta=6&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe-lightbox.umd.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/umd/photoswipe.umd.min.js"></script>
<script src="/sites/default/files/js/js_qYzrWMPJxGMXh1YSssnS6glmY-DQAmo8lxSNO0EWwjc.js?scope=footer&amp;delta=9&amp;language=en&amp;theme=p4base&amp;include=eJx1jkEOwyAMBD9E4dL_ICOcxC1ghE2T_r4kTXrrZT07sixDjMpQ3g5OsFPjogbIAfk5cYBkAqpi87hVFox-ojSqOOjKXnrIpP9WZizYxgXcNFF5uth6hWTPauo9gKCDVKng1fa4OHOghLeMpV-qNpJs6sLKslId4oeWynhFSHGliB4SNnWHexGu4o608IDtK_yOfiFRbm93zg9i0GsF"></script>

  </body>
</html>
