Мастер контроля версий и кукольный

8

Я только что настроил Foreman в первый раз и не уверен, как сделать так, чтобы все мои конфигурации были переведены под контроль версий. Я знаю, что могу использовать Git для каждого модуля, который я устанавливаю на своем хозяине Puppet, но предпочел бы более целостное решение, которое охватывает не только модули, но и классы, связанные с каждым хостом, и любые переменные, установленные на хостах. Любые предложения будут высоко оценены вместе с соответствующими рабочими процессами. В случае, если это уместно, у меня есть GitLab, настроенный как центральный сервер Git на месте, и я планирую в ближайшее время настроить сервер CI, такой как Jenkins.

GeneBean
источник
Вы нашли то, что искали? Я все еще ищу целостный подход к управлению шаблонами Foreman и conf. Упр. Я заметил, что этот вопрос имеет ноль принятых ответов.
Harperville

Ответы:

2

Существует плагин для хранения определения вашей инфраструктуры в Foreman, в значительной степени сериализованная версия ваших данных в Git, и загрузка (и изменение вашей инфраструктуры) изменений. Может быть, это было бы полезно для вас

https://github.com/marianitadn/foregit

eLobato
источник
На первый взгляд, это может быть именно то, что я искал! Я проверю это позже и приму в качестве ответа, если это так. Спасибо!
GeneBean
0

С помощью foreman вы сможете просматривать все классы вместе с любой переменной конфигурации, назначенной в деталях хоста. Смотрите: http://theforeman.org/manuals/1.4/index.html .

Ульриха
источник
Но как мне применить контроль версий ко всей этой информации?
GeneBean
0

Я не уверен, что понимаю ваш вопрос, но вы сталкивались с «марионеточным библиотекарем» https://github.com/rodjek/librarian-puppet ? Там вы можете определить, какие версии / sha1 кукольных модулей вы хотели бы использовать.

Ульриха
источник
Очень полезная информация (и то, что я, скорее всего, буду использовать), но не то, что я ищу. Я надеюсь применить версию ко всем вещам, сделанным в Foreman и Puppet, а не только к модулям. Это проясняет то, что я пытаюсь сделать?
GeneBean
0

На тот случай, если кто-то прочтет это позже: с помощью puppet вы можете определить, какую версию пакета / программного обеспечения вы хотите установить, с помощью декларации "version => XYZ".

Джин, я старался изо всех сил, но я все еще не понимаю твой вопрос. Простите за это :(

Ульриха
источник
Нет проблем, я действительно ценю эту попытку.
GeneBean
0

Я думаю, что вы ищете очень просто.

Конфиги Puppet находятся в /etc/puppet. Самый простой вариант - просто запустить

git init /etc/puppet/

Затем вы можете добавить Gitlab в качестве пульта и нажать на него.

В качестве альтернативы вы можете попробовать что-то наподобие того, что я здесь опишу, и это не ориентировано на Формана, но я не вижу причин, почему вы не могли бы использовать это как вдохновение.

chriscowley
источник
0

Вы также можете рассмотреть etckeeper, который делает это автоматически

Вы даже можете написать обертку, как

vi puppet_wrapper.sh

#!/bin/bash
# variables
ETCKEEPER=`which etckeeper`
ETCKEEPER_MSG=$1
PUPPET=`which puppet`
PUPPET_CMD=$2

# Msg would be your commit msg
etckeeper commit $ETCKEEPER_MSG

# PUPPET_CMD e.g. apply
puppet $PUPPET_CMD

Я работаю с этим некоторое время, и это нормально для моих нужд.

risker
источник
0

Я думаю, вам просто нужно настроить репозиторий в git, где каждая ветка репозитория git будет отображаться в среду марионеток, а когда вы захотите что-то изменить в марионетке, просто клонируйте репо, внесите изменения и перенесите его в соответствующую ветку. Вам также необходимо настроить ловушку git, которая будет срабатывать при отправке изменений в репозиторий git, чтобы он обновлял сопоставленную среду на марионеточном сервере. Вы можете сделать все это вручную или просто через этот кукольный модуль.

https://github.com/theforeman/puppet-puppet

Иджаз Ахмад Хан
источник