{"id":33999,"date":"2020-08-14T12:13:27","date_gmt":"2020-08-14T17:13:27","guid":{"rendered":"https:\/\/www.rosehosting.com\/blog\/?p=33999"},"modified":"2022-06-03T03:32:48","modified_gmt":"2022-06-03T08:32:48","slug":"how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/","title":{"rendered":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><img decoding=\"async\" class=\"alignnone size-full wp-image-34090\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\" alt=\"\" width=\"742\" height=\"372\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg 742w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04-300x150.jpg 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04-150x75.jpg 150w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignright size-full wp-image-34091\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/configure-puppet-module-automation-on-nodes-ubuntu-20-04-server-vps.jpg\" alt=\"\" width=\"125\" height=\"51\">Puppet is a powerful open-source configuration management tool that can be used to deploy, configure, manage, and maintain a server while accessing it remotely. Puppet is written in Ruby and helps you to deploy and manage a single server &#8211; all the way up to thousands of physical and virtual servers &#8211; all from a central location.<\/p>\n<p>Puppet modules are collections of manifest files and data that allow Puppet to load and find classes, facts, functions, defined types, and tasks. With Puppet modules, you can install and update packages, create files and directories, and\/or make any configuration changes quickly and easily. It aims to perform and automate almost any task, such as launching a LAMP environment, setting up virtual hosts, etc.<\/p>\n<p>In this tutorial, we will show how to create a LAMP module to deploy a LAMP stack on the Puppet agent machine, both of which are <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\">Ubuntu 20.04 VPS<\/a>es. Let&#8217;s begin.<\/p>\n<p><!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69ef71feccba3\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69ef71feccba3\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Before-we-Begin\" >Before we Begin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Getting-Started\" >Getting Started<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Verify-Puppet-Server-and-Agent\" >Verify Puppet Server and Agent<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Create-a-LAMP-Module\" >Create a LAMP Module<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Create-the-Main-Manifest-File\" >Create the Main Manifest File<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#Test-the-LAMP-Module\" >Test the LAMP Module<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Before-we-Begin\"><\/span>Before we Begin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You will need:<\/p>\n<ul>\n<li>Two Ubuntu 20.04 virtual servers with Puppet master and Puppet agent configured.<\/li>\n<li>A root access enabled or a user with sudo privileges.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Getting-Started\"><\/span>Getting Started<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First, you will need to log into your server using SSH. You can do that by entering this command:<\/p>\n<pre>ssh root@<span style=\"color: #ff0000;\">IP_Address<\/span> -p <span style=\"color: #ff0000;\">Port_Number<\/span><\/pre>\n<p>Remember to replace \u201croot\u201d with your username if you are not using the root user. Change \u201c<span style=\"color: #ff0000;\">IP_Address<\/span>\u201d and \u201c<span style=\"color: #ff0000;\">Port_Number<\/span>\u201d&nbsp;according to your server\u2019s IP address and SSH port number. The default port number is 22.<\/p>\n<p>Once you are logged in, you can proceed to the next step.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Verify-Puppet-Server-and-Agent\"><\/span>Verify Puppet Server and Agent<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First, verify the Puppet service by running the following command on the Puppet master node. We need to make sure that the service is active and running:<\/p>\n<pre>systemctl status puppetserver<\/pre>\n<p>Next, list all of the signed and unsigned agent requests with the following command:<\/p>\n<pre>\/opt\/puppetlabs\/bin\/puppetserver ca list --all<\/pre>\n<p>You should see the following output:<\/p>\n<pre>Signed Certificates:\n    puppet-client       (SHA256)  58:73:AE:62:04:9E:B8:0F:16:07:83:08:34:4A:00:D2:E6:82:9B:47:2A:00:9F:F4:08:AE:56:A8:E7:1B:6A:31\n    puppet-master       (SHA256)  7F:23:98:18:0E:3F:0F:FD:3E:12:FD:43:A6:50:C2:4C:58:0F:C6:EB:B0:5A:2A:74:6F:D8:A0:95:BC:31:EA:47\talt names: [\"DNS:puppet-master\", \"DNS:puppet-master\"]\tauthorization extensions: [pp_cli_auth: true]\n<\/pre>\n<p>On the Puppet agent node, run the following command to test the connectivity between both nodes.<\/p>\n<pre>\/opt\/puppetlabs\/bin\/puppet agent --test<\/pre>\n<p>If everything is fine, you should get the following output:<\/p>\n<pre>Info: Using configured environment 'production'\nInfo: Retrieving pluginfacts\nInfo: Retrieving plugin\nInfo: Retrieving locales\nInfo: Caching catalog for puppet-client\nInfo: Applying configuration version '1583136740'\nNotice: Applied catalog in 0.05 seconds\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Create-a-LAMP-Module\"><\/span>Create a LAMP Module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First, you will need to create a LAMP module on the Puppet master node. To create a module, you must create a directory whose name matches your module name in Puppet&#8217;s <code>modules<\/code> directory, and it must contain a directory called <code>manifests<\/code>, and that directory must contain an <code>init.pp<\/code> file.<\/p>\n<p>To do so, change the directory to the Puppet module directory and create a directory named <code>lamp<\/code> and then a <code>manifests<\/code> directory inside it:<\/p>\n<pre>cd \/etc\/puppetlabs\/code\/modules\/\nmkdir -p lamp\/manifests<\/pre>\n<p>Next, create a <code>init.pp<\/code> file that will contain a Puppet class that matches the module name. We&#8217;re going to use <code>nano<\/code> for this, but you can use any text editor you like.<\/p>\n<pre>nano lamp\/manifests\/init.pp<\/pre>\n<p>Add the following lines:<\/p>\n<pre>class lamp {\n  # execute 'apt-get update'\n  exec { 'apt-update':                    # exec resource named 'apt-update'\n    command =&gt; '\/usr\/bin\/apt-get update'  # command this resource will run\n  }\n\n  # install apache2 package\n  package { 'apache2':\n    require =&gt; Exec['apt-update'],        # require 'apt-update' before installing\n    ensure =&gt; installed,\n  }\n\n  # ensure apache2 service is running\n  service { 'apache2':\n    ensure =&gt; running,\n  }\n\n  # install mysql-server package\n  package { 'mysql-server':\n    require =&gt; Exec['apt-update'],        # require 'apt-update' before installing\n    ensure =&gt; installed,\n  }\n\n  # ensure mysql service is running\n  service { 'mysql':\n    ensure =&gt; running,\n  }\n\n  # install php package\n  package { 'php':\n    require =&gt; Exec['apt-update'],        # require 'apt-update' before installing\n    ensure =&gt; installed,\n  }\n  # ensure info.php file exists\n  file { '\/var\/www\/html\/info.php':\n    ensure =&gt; file,\n    content =&gt; '<!--?php phpinfo(); ?-->',    # phpinfo code\n    require =&gt; Package['apache2'],        # require 'apache2' package before creating\n  }\n}\n<\/pre>\n<p>Save and close the file when you are finished.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Create-the-Main-Manifest-File\"><\/span>Create the Main Manifest File<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A manifest is a file that contains client configurations that can be used to install the LAMP stack on the agent node. The main puppet manifest file is located at the <code>\/etc\/puppetlabs\/code\/environments\/production\/manifests<\/code> directory.<\/p>\n<p>You can create a new manifest file named <code>site.pp<\/code> with the following command:<\/p>\n<pre>nano \/etc\/puppetlabs\/code\/environments\/production\/manifests\/site.pp<\/pre>\n<p>Add the following lines:<\/p>\n<pre>node default { }\n\nnode 'puppet-agent' {\n  include lamp\n}\n<\/pre>\n<p>Save and close the file.<\/p>\n<p>In the above file, a node block allows you to specify the Puppet code that will only apply to certain agent nodes. The default node applies to every agent node that does not have a node block specified.<\/p>\n<p>Here, we have specified the <code>puppet-agent<\/code> node block that will apply only to our <code>puppet-agent<\/code> agent node. We have also added the <code>include lamp<\/code> snippet to get Puppet to use the lamp module on the agent node.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Test-the-LAMP-Module\"><\/span>Test the LAMP Module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now, you will need to pull the LAMP configuration on the agent node from the master node.<\/p>\n<p>On the agent node, run the following command to pull the LAMP configuration from the master node.<\/p>\n<pre>\/opt\/puppetlabs\/bin\/puppet agent --test<\/pre>\n<p>This will install and set up the LAMP stack on the agent node, as can be seen below:<\/p>\n<pre>Info: Using configured environment 'production'\nInfo: Retrieving pluginfacts\nInfo: Retrieving plugin\nInfo: Retrieving locales\nInfo: Caching catalog for puppet-agent\nInfo: Applying configuration version '1594188800'\nNotice: \/Stage[main]\/Lamp\/Exec[apt-update]\/returns: executed successfully\nNotice: \/Stage[main]\/Lamp\/Package[apache2]\/ensure: created\nNotice: \/Stage[main]\/Lamp\/Package[mysql-server]\/ensure: created\nNotice: \/Stage[main]\/Lamp\/Package[php]\/ensure: created\nNotice: \/Stage[main]\/Lamp\/File[\/var\/www\/html\/info.php]\/ensure: defined content as '{md5}d9c0c977ee96604e48b81d795236619a'\nNotice: Applied catalog in 73.09 seconds\n<\/pre>\n<p>And with that, the LAMP stack has now been installed on your agent node. To check it, open your web browser and type the URL <code>http:\/\/agent-ip-address\/info.php<\/code>. You should see your PHP page.<\/p>\n<p>Congratulations! you have successfully created a LAMP module on your Puppet master and have deployed it successfully on your agent node (or nodes) with Puppet.<\/p>\n<hr>\n<p><img decoding=\"async\" class=\"alignleft size-full wp-image-34092\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/managed-puppet-automation-maintenance-installs-for-ubuntu-vps-support.jpg\" alt=\"\" width=\"125\" height=\"51\">Deploying these changes on agent nodes is made to be as easy and as automated as possible, however you still need to configure both sides and perform these tasks yourself. If you use one of our <a href=\"https:\/\/www.rosehosting.com\/ubuntu-hosting.html\">Managed Ubuntu VPS<\/a> plans, all you would need to do is to simply ask our expert admin team to install whatever you need for you. They can install and set up anything else that you might want, whenever you want it, as well as perform any server maintenance, all without you having to do a thing.<\/p>\n<p>We hope you found this tutorial helpful. If you did, we would appreciate you sharing this tutorial with your friends through social media by using our share shortcuts, or you can leave a comment telling us how the installation went for you. Thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Puppet is a powerful open-source configuration management tool that can be used to deploy, configure, manage, and maintain a server &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#more-33999\" aria-label=\"Read more about How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":34090,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,1698],"tags":[1856,1852,1839],"class_list":["post-33999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-ubuntu","tag-automation","tag-puppet-modules","tag-ubuntu-20-04","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting<\/title>\n<meta name=\"description\" content=\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04\" \/>\n<meta property=\"og:description\" content=\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-14T17:13:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-03T08:32:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04\",\"datePublished\":\"2020-08-14T17:13:27+00:00\",\"dateModified\":\"2022-06-03T08:32:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/\"},\"wordCount\":835,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\",\"keywords\":[\"automation\",\"Puppet Modules\",\"Ubuntu 20.04\"],\"articleSection\":[\"Tutorials\",\"Ubuntu\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/\",\"name\":\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\",\"datePublished\":\"2020-08-14T17:13:27+00:00\",\"dateModified\":\"2022-06-03T08:32:48+00:00\",\"description\":\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg\",\"width\":742,\"height\":372},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/RoseHosting\",\"https:\\\/\\\/x.com\\\/rosehosting\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/rosehosting\\\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\\\/\\\/www.rosehosting.com\",\"https:\\\/\\\/www.facebook.com\\\/rosehosting.helpdesk\"],\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/author\\\/jwilson\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting","description":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04","og_description":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting","og_url":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2020-08-14T17:13:27+00:00","article_modified_time":"2022-06-03T08:32:48+00:00","og_image":[{"width":742,"height":372,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg","type":"image\/jpeg"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04","datePublished":"2020-08-14T17:13:27+00:00","dateModified":"2022-06-03T08:32:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/"},"wordCount":835,"commentCount":0,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg","keywords":["automation","Puppet Modules","Ubuntu 20.04"],"articleSection":["Tutorials","Ubuntu"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/","url":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/","name":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg","datePublished":"2020-08-14T17:13:27+00:00","dateModified":"2022-06-03T08:32:48+00:00","description":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04 | RoseHosting","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2020\/08\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04.jpg","width":742,"height":372},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-use-puppet-modules-to-create-a-lamp-stack-on-ubuntu-20-04\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Puppet Modules to Create a LAMP Stack on Ubuntu 20.04"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/33999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=33999"}],"version-history":[{"count":6,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/33999\/revisions"}],"predecessor-version":[{"id":34117,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/33999\/revisions\/34117"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/34090"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=33999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=33999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=33999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}