Puppet - r10K Kurulumu ve Yapılandırılması
Puppet'te, geliştirme, test etme ve üretim gibi Puppet'te yapılandırabileceğimiz farklı türdeki ortamlarla ilgili ortam yapılandırmalarını yönetmeye yardımcı olan r10k olarak bilinen bir kod yönetimi aracına sahibiz. Bu, ortamla ilgili yapılandırmanın kaynak kodu havuzunda depolanmasına yardımcı olur. Kaynak kontrol repo dallarını kullanarak r10k, Puppet master makine kurulumlarında ortamlar oluşturur ve depoda bulunan modülleri kullanarak ortamı günceller.
Gem dosyası herhangi bir makineye r10k yüklemek için kullanılabilir ancak modülerlik için ve en son sürümü almak için rpm ve rpm paket yöneticisini kullanacağız. Aşağıdakiler bunun bir örneğidir.
$ urlgrabber -o /etc/yum.repos.d/timhughes-r10k-epel-6.repo
https://copr.fedoraproject.org/coprs/timhughes/yum -y install rubygem-r10k
/Etc/puppet/puppet.conf içinde ortamı yapılandırın
[main]
environmentpath = $confdir/environments
R10k Config için bir Yapılandırma Dosyası oluşturun
cat <<EOF >/etc/r10k.yaml
# The location to use for storing cached Git repos
:cachedir: '/var/cache/r10k'
# A list 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/lib/git/fullstackpuppet-environment.git'
basedir: '/etc/puppet/environments'
EOF
Puppet Manifest ve Modülünü Yükleme
r10k deploy environment -pv
Ortamı her 15 dakikada bir güncellemeye devam etmemiz gerektiğinden, bunun için bir cron işi oluşturacağız.
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
Kurulum Testi
Her şeyin kabul edildiği gibi çalışıp çalışmadığını test etmek için, Puppet modülü için Puppet manifestini derlemek gerekir. Aşağıdaki komutu çalıştırın ve sonuç olarak bir YAML çıktısı alın.
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