In this blog i'm going to brief about the Puppet Server – Enterprise installation and configuration. We are going to install the puppet server in monolithic mode. In monolithic installation, Puppet Master, Puppet console, Puppet DB will be installing on one node. This is the simple method to evaluate puppet enterprise and you can manage up to 500 puppet agent nodes.
In a monolithic installation all PE components are installed on one node. This installation type is easy to install, upgrade, and troubleshoot, and you can expand this installation type up to 20,000 managed nodes by adding compile masters to it as you scale. A monolithic installation is the recommended install type for most users.
Here, we will configure a puppet in master/agent architecture and will use two CentOS 7.
Operating system : CentOS 7 IP Address : 192.168.178.130 HostName : puppetmaster
Timings of the master and client nodes should be accurately in sync with upstream time servers because Puppet master server master will be acting as the certificate authority.
(If the time is wrong, it might mistakenly issue agent certificates from the distant past or future date, which other nodes will treat as expired.)
Install the NTP package and perform the time sync with upstream NTP servers.
# yum -y install ntp # systemctl start ntpd # systemctl enable ntpd
Ensure that all the nodes are in same time zone using date command.
Set the time zone using the following command.
# timedatectl set-timezone Europe/Amsterdam
Puppet architecture uses the hostname to communicate with the managed nodes, so make sure nodes can resolve the hostname each other, either setup file or DNS server. My /etc/hosts looks like the following:
Add the following rules to the firewall.
firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=4443/tcp firewall-cmd --permanent --zone=public --add-port=8140/tcp firewall-cmd --permanent --zone=public --add-port=8142/tcp firewall-cmd --permanent --zone=public --add-port=61613/tcp firewall-cmd --permanent --zone=public --add-port=3000/tcp firewall-cmd --reload
For the download of the packages I refer to https://docs.puppet.com/pe/2016.5/
First of all make sure you have 2 CPU's and 4GB memory in your server because else the installation will fail.
[root@puppetmaster ~]# tar -xvf puppet-enterprise-2016.4.2-el-7-x86_64.tar.gz [root@puppetmaster ~]# cd puppet-enterprise-2016.4.2-el-7-x86_64 [root@puppetmaster puppet-enterprise-2016.4.2-el-7-x86_64]# ./puppet-enterprise-installer ~/puppet-enterprise-2016.4.2-el-7-x86_64 ~/puppet-enterprise- 2016.4.2-el-7-x86_64 ============================================================= Puppet Enterprise Installer ============================================================= Puppet Enterprise offers two different methods of installation.  Guided install Recommended for beginners. This method will install and configure a temporary webserver to walk you through the various configuration options. NOTE: This method requires you to be able to access port 3000 on this machine from your desktop web browser.  Text-mode Recommended for advanced users. This method will open your $EDITOR (vi) with a PE config file (pe.conf) for you to edit before you proceed with installation. The pe.conf file is a HOCON formatted file that declares parameters and values needed to install and configure PE. We recommend that you review it carefully before proceeding. ============================================================= How to proceed? :
Go to url: https://192.168.178.130:3000/ and the following screens will apear.
Let everything be default and after the installation check if it is working by typing:
[root@puppetmaster puppet-enterprise-2016.4.2-el-7-x86_64]# puppet agent --test Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Info: Caching catalog for puppetmaster Info: Applying configuration version '1482499930' Notice: Applied catalog in 12.22 seconds
In my next blog I'm going to make a signed RPM environment for my custom packages. A signed RPM environment is needed to make sure you are using trusted packages.