{"id":51572,"date":"2020-04-18T15:43:26","date_gmt":"2020-04-18T12:43:26","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=51572"},"modified":"2022-05-06T12:49:56","modified_gmt":"2022-05-06T09:49:56","slug":"install-puppet-master-server-on-centos-rhel-linux","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/install-puppet-master-server-on-centos-rhel-linux\/","title":{"rendered":"Install Puppet 7 Server on CentOS 8|RHEL 8|Rocky Linux 8"},"content":{"rendered":"\n<p>Today we will explore installation of Puppet Server on CentOS 8 | RHEL 8|Rocky Linux 8 Linux  machine. A separate guide on the installation and configuration of  Puppet Agent will be published as well. <strong>Puppet<\/strong> operates in an <em>agent-master<\/em> architecture, in which a master node controls configuration information for a fleet of managed agent nodes.<\/p>\n\n\n\n<p>The Puppet Server performs the role of the master node. Puppet Server is a Ruby and Clojure application that runs on the Java Virtual Machine (JVM) and provides the same services as the classic Puppet master application. It mostly does this by running the existing Puppet master code in several JRuby interpreters, but it replaces some parts of the classic application with new services written in Clojure.<\/p>\n\n\n\n<p>There are two editions of Puppet:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/puppet.com\/products\/puppet-enterprise\/\" target=\"_blank\" rel=\"noreferrer noopener\">Puppet Enterprise (PE)<\/a><\/li><li>Puppet Open Source<\/li><\/ul>\n\n\n\n<p>If you&#8217;re going for a Puppet Enterprise edition, its architecture is as shown below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large td-caption-align-https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-1024x576.png\" alt=\"\" class=\"wp-image-51593\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-1024x576.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-300x169.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-768x432.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-1536x864.png 1536w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-2048x1152.png 2048w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-696x392.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-1068x601.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2020\/04\/puppet-architecture-747x420.png 747w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The Puppet platform comprises of the following components:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Package<\/th><th>Contents<\/th><\/tr><\/thead><tbody><tr><td><\/td><td><\/td><\/tr><tr><td><code><em>puppetserver<\/em><\/code><\/td><td><em>Puppet Server<\/em> . This controls configuration information for a fleet of managed agent nodes<\/td><\/tr><tr><td><code><em>puppetdb<\/em><\/code><\/td><td><em>PuppetDB<\/em> &#8211; collects data generated by Puppet . It enables advanced Puppet features like exported resources.<\/td><\/tr><tr><td><code><em>puppet-agent<\/em><\/code><\/td><td>Puppet, Facter, Hiera, the PXP agent, root certificates, and prerequisites like Ruby and Augeas. The agent runs on any node in Puppet cluster.<\/td><\/tr><tr><td><code><em>puppetdb-termini<\/em><\/code><\/td><td>Plugins to connect your master to PuppetDB<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Install Puppet 6.x Master on CentOS 8 \/ RHEL 8 \/ Rocky Linux 8<\/h2>\n\n\n\n<p>There are many ways of installing Puppet Master on CentOS 8 Linux system. The common and easiest method is pulling the packages required from the YUM repository provided and maintained by Puppet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Update CentOS machine<\/h3>\n\n\n\n<p>Ensure your CentOS 8 machine is updated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y update\nsudo dnf -y install wget curl vim bash-completion<\/code><\/pre>\n\n\n\n<p>As update includes latest kernel packages, consider rebooting the machine if no critical applications are running in it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reboot<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Set System Hostname and Configure Chrony<\/h2>\n\n\n\n<p>Set a proper hostname for your machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo hostnamectl set-hostname puppetmaster.example.com<\/code><\/pre>\n\n\n\n<p>Ensure the hostname  has proper DNS record and also update<em> \/etc\/hosts<\/em> file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo vim \/etc\/hosts<\/span>\n192.168.122.12 puppetmaster.example.com puppetmaster<\/code><\/pre>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>192.168.122.12<\/strong> is the IP Address of Puppet Server<\/li><li><strong>puppetmaster.example.com<\/strong> is the FQDN of Puppet Server<\/li><\/ul>\n\n\n\n<p>Logout then login again to confirm the hostname.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">exit<\/span>\n$ <span class=\"has-inline-color has-pale-pink-color\">hostname<\/span>\npuppetmaster.example.com<\/code><\/pre>\n\n\n\n<p>Configure Chrony NTP<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y install chrony\nsudo systemctl enable --now chronyd\nsudo timedatectl set-timezone Africa\/Nairobi --adjust-system-clock\nsudo timedatectl set-ntp yes<\/code><\/pre>\n\n\n\n<p>Confirm date and time is correctly configured.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">timedatectl<\/span> \n               Local time: Sat 2020-04-18 14:33:26 EAT\n           Universal time: Sat 2020-04-18 11:33:26 UTC\n                 RTC time: Sat 2020-04-18 11:33:25\n                Time zone: Africa\/Nairobi (EAT, +0300)\nSystem clock synchronized: yes\n              NTP service: active\n          RTC in local TZ: no<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Add Puppet Yum repository<\/h2>\n\n\n\n<p>Add the repository required by running the command below in your terminal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y install https:\/\/yum.puppet.com\/puppet-release-el-8.noarch.rpm<\/code><\/pre>\n\n\n\n<p>Also consider adding EPEL repository:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y install https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-8.noarch.rpm\nsudo dnf config-manager --set-enabled powertools<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install Puppet Master on CentOS 8 \/ RHEL 8 \/ Rocky Linux 8<\/h2>\n\n\n\n<p>With all the pre-reqs configured, you can begin the installation of Puppet Master on CentOS 8 \/ RHEL 8 \/ Rocky Linux 8 Linux.<\/p>\n\n\n\n<p>Update Package list cache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$<span class=\"has-inline-color has-pale-pink-color\"> sudo dnf makecache<\/span>\nCentOS-8 - AppStream                                                                                                    4.2 kB\/s | 4.3 kB     00:01    \nCentOS-8 - Base                                                                                                         5.7 kB\/s | 3.8 kB     00:00    \nCentOS-8 - Extras                                                                                                       1.8 kB\/s | 1.5 kB     00:00    \nCentOS-8 - PowerTools                                                                                                   7.0 kB\/s | 4.3 kB     00:00    \nExtra Packages for Enterprise Linux 8 - x86_64                                                                           24 kB\/s |  39 kB     00:01    \nPuppet Repository el 8 - x86_64                                                                                         3.3 kB\/s | 2.5 kB     00:00    \nMetadata cache created.<\/code><\/pre>\n\n\n\n<p>Puppet repository should be in the list of repositories available in the system.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo dnf repolist<\/span>\nLast metadata expiration check: 0:00:30 ago on Sat 18 Apr 2020 02:36:49 PM EAT.\nrepo id                                                repo name                                                                                  status\nAppStream                                              CentOS-8 - AppStream                                                                       5,281\nBaseOS                                                 CentOS-8 - Base                                                                            2,231\nPowerTools                                             CentOS-8 - PowerTools                                                                      1,533\n*epel                                                  Extra Packages for Enterprise Linux 8 - x86_64                                             5,315\nextras                                                 CentOS-8 - Extras                                                                             15\npuppet                                                 Puppet Repository el 8 - x86_64                                                              148<\/code><\/pre>\n\n\n\n<p>You can query a list of Puppet packages available on the repository:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo dnf search puppet<\/span>\nLast metadata expiration check: 0:03:16 ago on Thu 21 Oct 2021 04:40:12 AM EAT.\n==================================================================================== Name Exactly Matched: puppet ====================================================================================\npuppet.noarch : Network tool for managing many disparate systems\n=================================================================================== Name &amp; Summary Matched: puppet ===================================================================================\ndmlite-puppet-dpm.noarch : Puppet modules for DPM configuration\npuppet-agent.x86_64 : The Puppet Agent package contains all of the elements needed to run puppet, including ruby, facter, and hiera.\npuppet-release.noarch : Release packages for the Puppet repository\npuppet7-release.noarch : Release packages for the Puppet 7 repository\npuppetdb.noarch : Puppet Labs puppetdb\npuppetdb-termini.noarch : Termini for puppetdb\npuppetserver.noarch : Puppet Labs puppetserver\npython3-collectd_puppet.noarch : Collectd plugin to monitor puppet agents\nrubygem-puppet-resource_api.noarch : This library provides a simple way to write new native resources for puppet\nrubygem-puppet-resource_api-doc.noarch : Documentation for rubygem-puppet-resource_api\nrubygem-puppetserver-ca.noarch : A simple CLI tool for interacting with Puppet Server's Certificate Authority\nrubygem-puppetserver-ca-doc.noarch : Documentation for rubygem-puppetserver-ca\nrubygem-semantic_puppet-doc.noarch : Documentation for rubygem-semantic_puppet\n======================================================================================== Name Matched: puppet ========================================================================================\npuppet-bolt.x86_64 : Stand alone task runner\nrubygem-semantic_puppet.noarch : Useful tools for working with Semantic Versions\n====================================================================================== Summary Matched: puppet =======================================================================================\npdk.x86_64 : Puppet Development Kit<\/code><\/pre>\n\n\n\n<p>Install Puppet Master packages on CentOS 8 Linux.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install puppetserver<\/code><\/pre>\n\n\n\n<p>Puppet Agent will be installed as a dependency:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Rocky Linux 8 - PowerTools                                                                                                                                            638 kB\/s | 2.3 MB     00:03\nLast metadata expiration check: 0:00:02 ago on Thu 21 Oct 2021 04:45:47 AM EAT.\nDependencies resolved.\n======================================================================================================================================================================================================\n Package                                                Architecture                      Version                                                          Repository                            Size\n======================================================================================================================================================================================================\nInstalling:\n puppetserver                                           noarch                            7.4.1-1.el8                                                      puppet                                63 M\nInstalling dependencies:\n copy-jdk-configs                                       noarch                            3.7-4.el8                                                        appstream                             26 k\n java-1.8.0-openjdk-headless                            x86_64                            1:1.8.0.302.b08-0.el8_4                                          appstream                             34 M\n javapackages-filesystem                                noarch                            5.3.0-2.module+el8.3.0+125+5da1ae29                              appstream                             29 k\n libjpeg-turbo                                          x86_64                            1.5.3-10.el8                                                     appstream                            154 k\n lksctp-tools                                           x86_64                            1.0.18-3.el8                                                     baseos                                98 k\n lua                                                    x86_64                            5.3.4-11.el8                                                     appstream                            191 k\n puppet-agent                                           x86_64                            7.12.0-1.el8                                                     puppet                                24 M\n tzdata-java                                            noarch                            2021a-1.el8                                                      appstream                            190 k\nEnabling module streams:\n javapackages-runtime                                                                     201801\n\nTransaction Summary\n======================================================================================================================================================================================================\nInstall  9 Packages\n\nTotal download size: 122 M\nInstalled size: 299 M\nIs this ok &#91;y\/N]: <span class=\"has-inline-color has-vivid-purple-color\">y<\/span><\/code><\/pre>\n\n\n\n<p>Agree to import GPG key when prompted.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nTotal                                                                                                                                                                  22 MB\/s | 122 MB     00:05\nwarning: \/var\/cache\/dnf\/puppet-caea408efb9b2853\/packages\/puppet-agent-7.12.0-1.el8.x86_64.rpm: Header V4 RSA\/SHA256 Signature, key ID 9e61ef26: NOKEY\nPuppet Repository el 8 - x86_64                                                                                                                                       1.6 MB\/s | 1.6 kB     00:00\nImporting GPG key 0xEF8D349F:\n Userid     : \"Puppet, Inc. Release Key (Puppet, Inc. Release Key) &lt;release@puppet.com&gt;\"\n Fingerprint: 6F6B 1550 9CF8 E59E 6E46 9F32 7F43 8280 EF8D 349F\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-puppet-release\nIs this ok &#91;y\/N]: <span class=\"has-inline-color has-pale-pink-color\">y<\/span>\nKey imported successfully\nPuppet Repository el 8 - x86_64                                                                                                                                       3.1 MB\/s | 3.1 kB     00:00\nImporting GPG key 0x9E61EF26:\n Userid     : \"Puppet, Inc. Release Key (Puppet, Inc. Release Key) &lt;release@puppet.com&gt;\"\n Fingerprint: D681 1ED3 ADEE B844 1AF5 AA8F 4528 B6CD 9E61 EF26\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-2025-04-06-puppet-release\nIs this ok &#91;y\/N]: <span class=\"has-inline-color has-vivid-purple-color\">y<\/span><\/code><\/pre>\n\n\n\n<p>Confirm package installation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">rpm -qi puppetserver <\/mark>\nName        : puppetserver\nVersion     : 7.7.0\nRelease     : 1.el8\nArchitecture: noarch\nInstall Date: Fri May  6 12:42:25 2022\nGroup       : System Environment\/Daemons\nSize        : 106546740\nLicense     : ASL 2.0\nSignature   : RSA\/SHA256, Tue Apr  5 03:09:51 2022, Key ID 4528b6cd9e61ef26\nSource RPM  : puppetserver-7.7.0-1.el8.src.rpm\nBuild Date  : Tue Apr  5 03:06:26 2022\nBuild Host  : k8s-jenkins-fpm-z70mg\nRelocations : \/\nPackager    : Puppet Labs &lt;info@puppetlabs.com>\nVendor      : Puppet Labs &lt;info@puppetlabs.com>\nURL         : http:\/\/puppet.com\nSummary     : Puppet Labs puppetserver\n....<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Configure Puppet Master \/ Server on CentOS 8 \/ RHEL 8<\/h2>\n\n\n\n<p>With the installation of Puppet Master \/ Server done on CentOS 8, it is time to start configurations.<\/p>\n\n\n\n<p>Define Puppet Master FQDN and DNS alternative names:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/puppetlabs\/puppet\/puppet.conf<\/code><\/pre>\n\n\n\n<p>Add the DNS settings under the <em>[server] <\/em>section.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;server]\nvardir = \/opt\/puppetlabs\/server\/data\/puppetserver\nlogdir = \/var\/log\/puppetlabs\/puppetserver\nrundir = \/var\/run\/puppetlabs\/puppetserver\npidfile = \/var\/run\/puppetlabs\/puppetserver\/puppetserver.pid\ncodedir = \/etc\/puppetlabs\/code\ndns_alt_names=<span class=\"has-inline-color has-luminous-vivid-orange-color\">puppetmaster.example.com<\/span>,<span class=\"has-inline-color has-luminous-vivid-amber-color\">puppetmaster<\/span>,<span class=\"has-inline-color has-pale-pink-color\">puppetserver<\/span><\/code><\/pre>\n\n\n\n<p>Also configure main section like below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;main]\ncertname = <span class=\"has-inline-color has-luminous-vivid-orange-color\">puppetmaster.example.com<\/span>\nserver = <span class=\"has-inline-color has-luminous-vivid-orange-color\">puppetmaster.example.com<\/span>\nenvironment = production\nruninterval = 1h<\/code><\/pre>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>puppetmaster.example.com<\/strong> is the FQDN of your Puppet server. <\/li><\/ul>\n\n\n\n<p>My configurations look like below after updating:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;master]\nvardir = \/opt\/puppetlabs\/server\/data\/puppetserver\nlogdir = \/var\/log\/puppetlabs\/puppetserver\nrundir = \/var\/run\/puppetlabs\/puppetserver\npidfile = \/var\/run\/puppetlabs\/puppetserver\/puppetserver.pid\ncodedir = \/etc\/puppetlabs\/code\ndns_alt_names=puppetmaster.example.com,puppetmaster,puppetserver\n\n&#91;main]\ncertname = puppetmaster.example.com\nserver = puppetmaster.example.com\nenvironment = production\nruninterval = 1h<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configure JVM Memory Allocation<\/h3>\n\n\n\n<p>The file where you can set min and max memory for JVM is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/sysconfig\/puppetserver<\/code><\/pre>\n\n\n\n<p>By default it is set to 2GB. Adjust this depending on resources available on your machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>JAVA_ARGS=<strong>\"<span class=\"has-inline-color has-vivid-red-color\">-Xms1g<\/span> <span class=\"has-inline-color has-luminous-vivid-orange-color\">-Xmx1g<\/span><\/strong> -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Start Puppet Server on CentOS 8 \/ RHEL 8 \/ Rocky Linux 8<\/h3>\n\n\n\n<p>After our basic Puppet Server configuration, start the service and set it to start at system boot.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable --now puppetserver<\/code><\/pre>\n\n\n\n<p>If you had started it earlier, then restart after modifications.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart puppetserver<\/code><\/pre>\n\n\n\n<p>Check service status to confirm it is running.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">systemctl status puppetserver<\/span>\n<span class=\"has-inline-color has-light-green-cyan-color\">\u25cf<\/span> puppetserver.service - puppetserver Service\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/puppetserver.service; enabled; vendor preset: disabled)\n   Active: <span class=\"has-inline-color has-vivid-green-cyan-color\">active (running)<\/span> since Sat 2020-04-18 14:56:58 EAT; 18s ago\n  Process: 4068 ExecStart=\/opt\/puppetlabs\/server\/apps\/puppetserver\/bin\/puppetserver start (code=exited, status=0\/SUCCESS)\n Main PID: 4077 (java)\n    Tasks: 42 (limit: 4915)\n   Memory: 670.5M\n   CGroup: \/system.slice\/puppetserver.service\n           \u2514\u25004077 \/usr\/bin\/java -Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError=kill -9 %p -cp \/&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Open Service Port on the firewall<\/h3>\n\n\n\n<p>With the service started, open the port on the firewall so you can access the server from the network.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --add-service=puppetmaster --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Confirm Puppet server is working using Puppet Client on CentOS 8:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo \/opt\/puppetlabs\/bin\/puppet agent --test --ca_server=<\/span><span class=\"has-inline-color has-vivid-purple-color\">puppetmaster.example.com <\/span>\nInfo: Using configured environment 'production'\nInfo: Retrieving pluginfacts\nInfo: Retrieving plugin\nInfo: Retrieving locales\nInfo: Caching catalog for puppetmaster.example.com\nInfo: Applying configuration version '1587211455'\nInfo: Creating state file \/opt\/puppetlabs\/puppet\/cache\/state\/state.yaml\nNotice: Applied catalog in 0.01 seconds<\/code><\/pre>\n\n\n\n<p>On the Puppet Master Node list all the available certificates:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">sudo \/opt\/puppetlabs\/bin\/puppetserver ca list --all<\/span>\nSigned Certificates:\n    puppetmaster.example.com       (SHA256)  82:D0:CB:2D:13:09:DD:66:36:F8:B9:7A:90:3F:28:08:C7:68:F1:73:75:EF:6A:B0:EA:CC:92:16:D5:F7:4B:7A\talt names: &#91;\"DNS:puppetmaster.example.com\", \"DNS:puppetmaster\", \"DNS:puppetserver\", \"DNS:puppetmaster.example.com\"]\tauthorization extensions: &#91;pp_cli_auth: true]<\/code><\/pre>\n\n\n\n<p>You can sign all pending certificates by running the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/puppetlabs\/bin\/puppetserver ca sign --all<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Add Puppet Binary folder to $PATH<\/h3>\n\n\n\n<p>Puppet binaries are located in <strong>\/opt\/puppetlabs\/bin<\/strong>. This directory by default is not in your $PATH. As can be confirmed with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">ls \/opt\/puppetlabs\/bin\/<\/span>\nfacter  hiera  puppet  puppetserver\n\n$ <span class=\"has-inline-color has-pale-pink-color\">which puppet<\/span>\n\/usr\/bin\/which: no puppet in (\/home\/vagrant\/.local\/bin:\/home\/vagrant\/bin:\/usr\/local\/bin:\/usr\/bin:\/usr\/local\/sbin:\/usr\/sbin)<\/code><\/pre>\n\n\n\n<p>Add it to PATH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'export PATH=$PATH:\/opt\/puppetlabs\/bin' | tee -a ~\/.bashrc\nsource ~\/.bashrc<\/code><\/pre>\n\n\n\n<p>Test if working as expected:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">which puppet<\/span>\n\/opt\/puppetlabs\/bin\/puppet<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Start Puppet client<\/h3>\n\n\n\n<p>Let&#8217;s start puppet agent service as we&#8217;ll use it for some testing.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start puppet\nsudo systemctl enable puppet<\/code><\/pre>\n\n\n\n<p>Our next guide will cover installation of Puppet Agent in your machines to be managed with Puppet. And how you can write basic manifest to install packages, add users, manage Linux services e.t.c.<\/p>\n\n\n\n<p><strong>Reference<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/puppet.com\/docs\/puppet\/7\/puppet_index.html\" target=\"_blank\" rel=\"noreferrer noopener\">Puppet Documentation pages<\/a><\/li><\/ul>\n\n\n\n<p>Similar guides:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/computingforgeeks.com\/how-to-install-and-configure-ansible-on-rhel-8-centos-8\/\" target=\"_blank\">Install Ansible on CentOS \/ RHEL 8<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/computingforgeeks.com\/install-and-configure-ansible-tower-on-centos-rhel\/\" target=\"_blank\">How To Install and Configure Ansible Tower on CentOS 7 \/ RHEL 7\/8<\/a><\/li><li><a href=\"https:\/\/computingforgeeks.com\/how-to-setup-chef-infra-server-on-centos-rhel\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Setup Chef Infra Server on CentOS 8 \/ RHEL 8<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today we will explore installation of Puppet Server on CentOS 8 | RHEL 8|Rocky Linux 8 Linux machine. A separate guide on the installation and configuration of Puppet Agent will be published as well. Puppet operates in an agent-master architecture, in which a master node controls configuration information for a fleet of managed agent nodes. &#8230; <a title=\"Install Puppet 7 Server on CentOS 8|RHEL 8|Rocky Linux 8\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/install-puppet-master-server-on-centos-rhel-linux\/\" aria-label=\"Read more about Install Puppet 7 Server on CentOS 8|RHEL 8|Rocky Linux 8\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":51593,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[329,5,299,50,136],"tags":[36935,36933,36934,210,440],"class_list":["post-51572","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-featured","category-how-to","category-linux-tutorials","category-puppet","tag-install-puppet-7-server-centos-8","tag-install-puppet-7-server-rhel-8","tag-install-puppet-7-server-rocky-linux-8","tag-puppet","tag-puppet-master"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/51572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=51572"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/51572\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/51593"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=51572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=51572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=51572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}