{"id":11588,"date":"2019-06-18T13:22:10","date_gmt":"2019-06-18T13:22:10","guid":{"rendered":"http:\/\/shivaprogramming.com\/blog\/?p=11588"},"modified":"2019-07-15T20:05:57","modified_gmt":"2019-07-15T20:05:57","slug":"how-to-write-puppet-code","status":"publish","type":"post","link":"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/","title":{"rendered":"puppet code for windows environment?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Building blocks of Puppet<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Resources<\/li><li>Classes<\/li><li>Manifest<\/li><li>Modules<\/li><\/ol>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey 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-6a2900a7d485b\" 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-6a2900a7d485b\"  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=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Install_Puppet_Windows_Module_Pack\" >Install Puppet  Windows Module Pack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#How_to_copy_directory_and_its_files_using_puppet\" >How to copy directory  and it&#8217;s files using puppet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Copy_folder_and_remove_the_original_folder\" >Copy folder and remove the original folder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Simple_code_to_copy_folders\" >Simple code to copy folders<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Running_puppet_code_on_different_environment\" >Running puppet code on different environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Adding_git_and_auto_deploy_puppet_code\" >Adding git and auto deploy puppet code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Add_environmentconf_file\" >Add environment.conf file<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Add_working_environment\" >Add working environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Create_Modules\" >Create Modules<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Modules_Metadata\" >Modules Metadata<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Create_NTP_module\" >Create NTP module<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Add_puppet_ACL_for_IIS_Default_App_Pool\" >Add puppet ACL for IIS Default App Pool<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Adding_Registry_Key_Value\" >Adding Registry Key Value<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#Configure_Firewall\" >Configure Firewall<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"http:\/\/shivaprogramming.com\/blog\/how-to-write-puppet-code\/#StartEnable_puppet_server\" >Start\/Enable puppet server<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_Puppet_Windows_Module_Pack\"><\/span>Install Puppet  Windows Module Pack<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">puppet module install puppetlabs\/windows<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">puppet module list<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_to_copy_directory_and_its_files_using_puppet\"><\/span>How to copy directory  and it&#8217;s files using puppet<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>$soure_dir=c:\\temp\\puppetcode\\Source\n$destination_dir= c:\\temp\\puppetcode\\Destination\n\nfile { $destination_dir :\nensure  => 'directory',\nsource  => \"file:\/\/${source_dir}\",\nrecurse => true,\n}\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Copy_folder_and_remove_the_original_folder\"><\/span>Copy folder and remove the original folder<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>$soure_dir=c:\\temp\\puppetcode\\Source\n$destination_dir= c:\\temp\\puppetcode\\Destination\n\nfile { $destination_dir :\nensure  => 'directory',\nsource  => \"file:\/\/${source_dir}\",\nrecurse => true,\nbefore=> File[$source_dir],\n}\n\nfile{$source_dir :\n\tensure=>'absent',\n\tpurge=>true,\n\trecurse=>,\n\tforce=>true,\n\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simple_code_to_copy_folders\"><\/span>Simple code to copy folders<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>file {'\/my\/path':\n    ensure  => 'directory',\n    path    => '\/my\/path',\n    recurse => true,\n    source  => '\/home\/user_name\/scripts',\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Running_puppet_code_on_different_environment\"><\/span>Running puppet code on different environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>puppet agent -t --environment production\npuppet agent -t --environment stage\npuppet agent -t --environment development<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adding_git_and_auto_deploy_puppet_code\"><\/span>Adding git and auto deploy puppet code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>git init --bare \/srv\/git\/repos\/mypuppetcode.git\ngit clone  \/srv\/git\/repos\/mypuppetcode.git<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Add_environmentconf_file\"><\/span>Add environment.conf file<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>moudulepath=site:modules:$basemodulepath\nmainfest=mainfests\/site.pp<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Add_working_environment\"><\/span>Add working environment<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">puppet config print environment #Display the  current environment <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo puppet config set environment set environment dev<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_Modules\"><\/span>Create Modules<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">cd  \/ etc\/puppetlabs\/code\/environments\/production\/modules<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo mkdir -p motd\/{manifests,files,examples}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo vim motd\/examples\/init.pp<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">motd\/mainfest\/init.pp<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class motd{\n       file{'\/etc\/motd':\n       ensure=> 'present',\n       content=>file('motd\/message'),\n      }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">sudo vim motd\/files\/message<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">write a content such as  &#8220;Welcome to my server&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;environment&gt; \/modules<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;modulename&gt;\/mainfests\/init.pp<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">class motd{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">content=&gt;file(&#8216;motd\/message&#8217;)  # motd\/files\/message<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Modules_Metadata\"><\/span>Modules Metadata<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">cd \/etc\/puppetlabs\/code\/environments\/production\/modules<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo puppet module generate shiva\/test<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo puppet module generate shiva\/test &#8211;skip-interview # skip <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_NTP_module\"><\/span>Create NTP module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\/etc\/puppetlabs\/code\/enviroments\/production\/modules<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo mkdir -p  ntp \/ {manifests,files,examples}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">in windows<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">puppet  module generate modules\/ntp<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Add_puppet_ACL_for_IIS_Default_App_Pool\"><\/span>Add puppet ACL for IIS Default App Pool<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>acl { 'C:\\inetpub\\wwwroot\\uploads':\n  permissions => [\n   { identity => 'IIS AppPool\\DefaultAppPool', rights => ['full'] }\n ],\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adding_Registry_Key_Value\"><\/span>Adding Registry Key Value<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>registry_key { 'hklm\\software\\mykey':\n  ensure => present,\n}\n\nregistry_value { 'hklm\\software\\mykey\\value1':\n  type => string,\n  data => 'this is a value'\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configure_Firewall\"><\/span>Configure Firewall<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>firewall-cmd --permanent --zone=public --add-port=8140\/tcp\nfirewall-cmd \u2013reload<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"StartEnable_puppet_server\"><\/span>Start\/Enable puppet server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start puppetserver\nsystemctl enable puppetserver\nsystemctl status puppetserver\npuppet status\nnetstat -anpl | grep 8140<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Building blocks of Puppet Resources Classes Manifest Modules Install Puppet Windows Module Pack puppet module install puppetlabs\/windows puppet module list How to copy directory and it&#8217;s&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[32],"class_list":["post-11588","post","type-post","status-publish","format-standard","hentry","category-puppet-configuration-management-tool","tag-puppet"],"_links":{"self":[{"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/posts\/11588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/comments?post=11588"}],"version-history":[{"count":27,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/posts\/11588\/revisions"}],"predecessor-version":[{"id":12608,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/posts\/11588\/revisions\/12608"}],"wp:attachment":[{"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/media?parent=11588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/categories?post=11588"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/shivaprogramming.com\/blog\/wp-json\/wp\/v2\/tags?post=11588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}