В Puppet у нас есть инструмент управления кодом, известный как r10k, который помогает в управлении конфигурациями среды, связанной с различными типами сред, которые мы можем настроить в Puppet, такими как разработка, тестирование и производство. Это помогает хранить конфигурацию, связанную со средой, в хранилище исходного кода. Используя ветви репозитория управления исходным кодом, r10k создает среды на главной машине Puppet для установки и обновления среды, используя модули, присутствующие в репо.
Gem-файл может быть использован для установки r10k на любой машине, но для модульности и для получения последней версии мы будем использовать менеджер пакетов rpm и rpm. Ниже приведен пример для того же.
$ 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
[main] environmentpath = $confdir/environments
Создайте файл конфигурации для конфигурации 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
Установка Puppet Manifest и модуля
r10k deploy environment -pv
Поскольку нам нужно продолжать обновлять среду каждые 15 минут, мы создадим для нее задание cron.
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
Тестирование Установка
Чтобы проверить, все ли работает как принято, нужно скомпилировать манифест Puppet для модуля Puppet. Выполните следующую команду и получите результат YAML в качестве результата.