Con rối - Cài đặt và định cấu hình r10K
Trong Puppet, chúng tôi có một công cụ quản lý mã được gọi là r10k, giúp quản lý các cấu hình môi trường liên quan đến các loại môi trường khác nhau mà chúng tôi có thể định cấu hình trong Puppet như phát triển, thử nghiệm và sản xuất. Điều này giúp lưu trữ cấu hình liên quan đến môi trường trong kho mã nguồn. Sử dụng các nhánh repo điều khiển nguồn, r10k tạo môi trường trên máy chủ Puppet để cài đặt và cập nhật môi trường bằng cách sử dụng các mô-đun có trong repo.
Tệp Gem có thể được sử dụng để cài đặt r10k trên bất kỳ máy nào nhưng đối với mô-đun và để có được phiên bản mới nhất, chúng tôi sẽ sử dụng trình quản lý gói rpm và rpm. Sau đây là một ví dụ cho tương tự.
$ urlgrabber -o /etc/yum.repos.d/timhughes-r10k-epel-6.repo
https://copr.fedoraproject.org/coprs/timhughes/yum -y install rubygem-r10k
Định cấu hình môi trường trong /etc/puppet/puppet.conf
[main]
environmentpath = $confdir/environments
Tạo tệp cấu hình cho cấu hình r10k
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
Cài đặt mô-đun và tệp kê khai con rối
r10k deploy environment -pv
Vì chúng tôi cần tiếp tục cập nhật môi trường sau mỗi 15 phút, chúng tôi sẽ tạo một công việc cron cho cùng một công việc.
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
Thử nghiệm cài đặt
Để kiểm tra xem mọi thứ có hoạt động như được chấp nhận hay không, người ta cần biên dịch tệp kê khai Con rối cho mô-đun Con rối. Chạy lệnh sau và nhận được kết quả đầu ra YAML.
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