Sử dụng git để quản lý / vv?


13

Tôi đang suy nghĩ về một hệ thống, nơi /etcđược theo dõi trên một kho lưu trữ git từ xa. Tôi đang suy nghĩ về một quy trình công việc git, nơi mỗi máy chủ lưu trữ một nhánh khác nhau.

Mọi phiên bản trước trên mọi máy đều có thể dễ dàng theo dõi, so sánh, sáp nhập.

Nếu một /etcsửa đổi phải được cam kết trên nhiều máy, nó có thể được thực hiện dễ dàng bằng một số tập lệnh hợp nhất.

Trong trường hợp có /etcsự thay đổi "không mong muốn" , điều này có thể được nhìn thấy rõ (thậm chí các kịch bản báo động có thể được điều chỉnh để xem điều đó).

Bất cứ ai đã sử dụng một cấu hình như vậy? Có bất kỳ vấn đề bảo mật với nó?


6
etckeepercái đã được sử dụng trên nhiều hệ thống. Nó không cung cấp tất cả các tính năng bạn yêu cầu. Ví dụ, nó có một kho lưu trữ trên mỗi máy chủ, không phải là một trung tâm.
jofel

Những tập tin nào bạn quan tâm hoặc những tập tin nào đã bị thay đổi không mong muốn trong quá khứ? Tôi hỏi bởi vì tôi nghĩ Git không phải là cách đúng đắn để giải quyết các vấn đề gây ra tại một thời điểm khác trong quy trình làm việc của bạn. Hơn nữa: nếu ai đó quên thực hiện nhiều thay đổi thì Git là vô giá trị. Bạn có thể vui lòng giải thích môi trường của bạn? Bạn có thử nghiệm QA enConnionments giống hệt với sản xuất không? Bạn có nhiều hơn hai hoặc ba máy chủ cùng loại / mục đích hay nó không đồng nhất? Điều gì quan trọng hơn: so sánh cấu hình máy chủ hoặc theo dõi cấu hình máy chủ theo thời gian?
thử-bắt-cuối cùng

Câu trả lời:


6

Chương trình này etckeeperkhông quản lý /etctrong git, bạn chỉ cần thay đổi mặc định vcs phụ trợ từ bzrđể git/etc/etckeeper/etckeeper.conf.

Nó được cài đặt theo mặc định trong Ubuntu Linux và xử lý các trường hợp phổ biến khi nào cần cam kết tự động.
Nó cam kết trước khi cài đặt các gói trong trường hợp có những thay đổi thủ công không được ghi nhận và sau khi cài đặt.


4

Vấn đề với theo dõi cấu hình cho /etctrong gitlà tất cả các bạn thực sự đạt được bằng cách làm như vậy là điều khiển phiên bản (hầu hết gitngười mới thậm chí không biết làm thế nào để tagbranchđúng cách, do đó khó xảy ra tại thời điểm đó) và khả năng rollback (một lần nữa, nếu bạn aren' t taggingđúng cách, bạn không đạt được bất cứ điều gì nhưng một khúc gỗ để mọi người đổ lỗi); nhưng bạn mất templating (không thể tạo khuôn mẫu vì git không cung cấp điều đó) và mở rộng ra (bạn không thể áp dụng cấu hình ở bất kỳ nơi nào khác, đặc biệt nếu bạn đang sử dụng cơ sở dữ liệu phân tán như Elaticsearch) và quản lý hệ thống tự động (một lần nữa, git không cung cấp điều này ).

Với điều đó đang được nói, những gì bạn có thể đang tìm kiếm là quản lý cấu hình ; rằng quan hệ trong khuôn mẫu , gitvà kịch bản cơ bản để quản lý cấu hình. Điều này, tất nhiên là đi theo hướng của DevOps và Cơ sở hạ tầng dưới dạng Mã .

Để thêm vào điều này; Ansible có ansible-pullthể lấy repo mới nhất của playbooks của bạn từ git; Điều này cũng đúng với Chef. Về cơ bản, các quản trị viên Linux hiện đại không nên sử dụng cái gì đó như etckeeper. Chef cũng có chế độ client-server nơi bạn có thể quản lý tất cả các hệ thống với chef-clientdựa trên environment, rolesvà sách dạy nấu ăn các phiên bản; những điều bạn không thể làm với gitchỉ và ở quy mô.


Không chỉ rollback có được tôi với git. Tôi cũng nhận được sự so sánh (cả giữa máy và giữa thời gian), và cả đồng bộ hóa. Nhưng tôi nghĩ ý tưởng về một số công cụ nhắm mục tiêu là hữu ích.
peterh - Phục hồi Monica
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.