English 中文(简体)
Installing & Configuring r10K
  • 时间:2024-12-22

Puppet - Instalpng and Configuring r10K


Previous Page Next Page  

In Puppet, we have a code management tool known as r10k that helps in managing environment configurations related to different kind of environments that we can configure in Puppet such as development, testing, and production. This helps in storing environment-related configuration in the source code repository. Using the source control repo branches, r10k creates environments on Puppet master machine installs and updates environment using modules present in the repo.

Gem file can be used to install r10k on any machine but for modularity and in order to get the latest version, we will use rpm and rpm package manager. Following is an example for the same.

$ urlgrabber -o /etc/yum.repos.d/timhughes-r10k-epel-6.repo
https://copr.fedoraproject.org/coprs/timhughes/yum -y install rubygem-r10k 

Configure environment in /etc/puppet/puppet.conf

[main] 
environmentpath = $confdir/environments 

Create a Configuration File for r10k Config

cat <<EOF >/etc/r10k.yaml 
# The location to use for storing cached Git repos 
:cachedir:  /var/cache/r10k  
# A pst of git repositories to create 
:sources: 
# This will clone the git repository and instantiate an environment per 
# branch in /etc/puppet/environments 
:opstree: 
#remote:  https://github.com/fullstack-puppet/fullstackpuppet-environment.git  
remote:  /var/pb/git/fullstackpuppet-environment.git  
basedir:  /etc/puppet/environments  
EOF

Instalpng Puppet Manifest and Module

r10k deploy environment -pv 

As we need to continue updating the environment in every 15 minutes, we will create a cron job for the same.

cat << EOF > /etc/cron.d/r10k.conf 
SHELL = /bin/bash 
PATH = /sbin:/bin:/usr/sbin:/usr/bin 
H/15 * * * * root r10k deploy environment -p 
EOF

Testing Installation

In order to test if everything works as accepted, one needs to compile the Puppet manifest for Puppet module. Run the following command and get a YAML output as the result.

curl --cert /etc/puppet/ssl/certs/puppet.corp.guest.pem  
--key /etc/puppet/ssl/private_keys/puppet.corp.guest.pem  
--cacert /etc/puppet/ssl/ca/ca_crt.pem  
-H  Accept: yaml   
https://puppet.corp.guest:8140/production/catalog/puppet.corp.guest 
Advertisements