Phiên bản kiểm soát Foreman & Puppet


8

Tôi mới thiết lập Foreman lần đầu tiên và tôi không biết phải làm thế nào để đặt tất cả các cấu hình của mình dưới sự kiểm soát phiên bản. Tôi biết tôi có thể sử dụng Git cho mỗi mô-đun tôi cài đặt trên Puppet master của mình nhưng sẽ thích một giải pháp tổng thể hơn bao gồm không chỉ các mô-đun mà cả các lớp được liên kết với mỗi máy chủ và bất kỳ biến nào được đặt trên máy chủ. Bất kỳ đề xuất sẽ được đánh giá rất cao cùng với quy trình công việc liên quan. Trong trường hợp có liên quan, tôi có thiết lập GitLab như một máy chủ Git trung tâm trên trang web và dự định sớm thiết lập một máy chủ CI như Jenkins.


bạn đã tìm thấy những gì bạn đang tìm kiếm? Tôi vẫn đang tìm kiếm một cách tiếp cận toàn diện để quản lý các mẫu Foreman và conf. mgmt. Tôi nhận thấy câu hỏi này không có câu trả lời được chấp nhận.
harperville

Câu trả lời:


2

Có một plugin để giữ định nghĩa cơ sở hạ tầng của bạn trong Foreman, gần như là một phiên bản tuần tự của dữ liệu của bạn trong Git và tải lên (và thay đổi cơ sở hạ tầng của bạn) thay đổi. Có lẽ điều đó sẽ hữu ích cho bạn

https://github.com/marianitadn/forgit


Thoạt nhìn, đây có thể chính xác là những gì tôi đang tìm kiếm! Tôi sẽ kiểm tra sớm hơn và chấp nhận câu trả lời nếu có. Cảm ơn!
GeneBean


0

Tôi không chắc là tôi có hiểu câu hỏi của bạn không nhưng bạn có bắt gặp "thủ thư bù nhìn" https://github.com/rodjek/librarian-puppet không? Ở đó bạn có thể xác định phiên bản / sha1 của các mô đun con rối mà bạn muốn sử dụng.


Thông tin rất hữu ích (và một cái gì đó rất có thể tôi sẽ đưa vào sử dụng) nhưng không phải là thứ tôi đang tìm kiếm. Tôi đang tìm cách áp dụng phiên bản cho tất cả những thứ được thực hiện trong Foreman và Puppet, không chỉ các mô-đun. Điều đó có làm sáng tỏ những gì tôi đang cố gắng làm bất kỳ?
GeneBean

0

Chỉ trong trường hợp ai đó đọc được điều này sau: Với con rối, bạn có thể xác định phiên bản gói / phần mềm nào bạn muốn cài đặt với khai báo "phiên bản => XYZ".

Gene, tôi đã cố gắng hết sức nhưng tôi vẫn không nhận được câu hỏi của bạn. Xin lỗi vì điều đó :(


Không có vấn đề, tôi thực sự đánh giá cao nỗ lực.
GeneBean

0

Tôi nghĩ những gì bạn đang theo sau là rất đơn giản.

Các cấu hình rối được trong /etc/puppet. Tùy chọn đơn giản nhất là chỉ để chạy

git init /etc/puppet/

sau đó bạn có thể thêm Gitlab làm điều khiển từ xa và đẩy tới nó.

Ngoài ra, bạn có thể thử một cái gì đó giống như những gì tôi mô tả ở đây không phải là Foreman-centric, nhưng tôi thấy không có lý do gì bạn không thể sử dụng nó làm nguồn cảm hứng.


0

Bạn cũng có thể xem xét etckeeper, nó tự động

Bạn thậm chí có thể viết một trình bao bọc như

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

Tôi đang làm việc với điều này một lúc và nó ổn cho nhu cầu của tôi.


0

Tôi nghĩ bạn chỉ cần thiết lập một kho lưu trữ trong git trong đó mỗi nhánh của git repo sẽ ánh xạ tới môi trường con rối và khi bạn muốn thay đổi một cái gì đó trong con rối, chỉ cần sao chép repo, thay đổi và đẩy nó vào nhánh tương ứng. Bạn cũng cần thiết lập một git hook sẽ kích hoạt khi bạn thay đổi các thay đổi của mình sang repo git để nó cập nhật môi trường được ánh xạ trên máy chủ con rối. Bạn có thể làm tất cả điều này bằng tay hoặc chỉ thông qua mô-đun con rối này.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.