Điều gì KHÔNG nên được quản lý bởi con rối?


67

Tôi đang học theo cách của mình thông qua quản lý cấu hình nói chung và sử dụng con rối để thực hiện nó nói riêng và tôi đang tự hỏi những khía cạnh nào của một hệ thống, nếu có, không nên được quản lý với con rối?

Lấy ví dụ, chúng ta thường cho rằng tên máy chủ đã được thiết lập trước khi cho hệ thống quản lý con rối. Kết nối IP cơ bản, ít nhất là trên mạng được sử dụng để tiếp cận với người điều khiển rối, phải hoạt động. Sử dụng con rối để tự động tạo các tệp vùng dns rất hấp dẫn, nhưng các con trỏ đảo ngược DNS phải được đặt sẵn trước khi bắt đầu điều hoặc chứng chỉ sẽ trở nên buồn cười.

Vậy tôi có nên bỏ cấu hình IP khỏi con rối không? Hoặc tôi nên thiết lập nó trước khi bắt đầu múa rối lần đầu tiên nhưng vẫn quản lý địa chỉ IP bằng con rối? Còn các hệ thống có nhiều IP (ví dụ: đối với mạng LAN, LAN và SAN) thì sao?

Những gì về IPMI ? Bạn có thể định cấu hình hầu hết, nếu không phải tất cả, với ipmitool , giúp bạn tiết kiệm quyền truy cập bảng điều khiển (vật lý, nối tiếp qua mạng, KVM từ xa, bất cứ điều gì) để có thể tự động hóa với con rối. Nhưng việc kiểm tra lại trạng thái của nó ở mỗi lần chạy đại lý bù nhìn có vẻ không hay đối với tôi và đèn cơ bản cho phép truy cập vào hệ thống là điều tôi muốn có trước khi làm bất cứ điều gì khác.

Một câu chuyện khác là về cài đặt bản cập nhật. Tôi sẽ không đi vào điểm cụ thể này, đã có nhiều câu hỏi về SF và nhiều triết lý khác nhau giữa các hệ thống khác nhau. Bản thân tôi, tôi quyết định không để con rối cập nhật mọi thứ (ví dụ: chỉ ensure => installed) và cập nhật thủ công như chúng ta đã quen, để tự động hóa nhiệm vụ này sang ngày sau khi chúng ta tự tin hơn với con rối (ví dụ: bằng cách thêm MCollective vào sự pha trộn).

Đó chỉ là một vài ví dụ mà tôi có ngay bây giờ trong đầu. Có bất kỳ khía cạnh nào của hệ thống nên để xa tầm với của con rối không? Hoặc, nói một cách khác, đâu là ranh giới giữa những gì nên được thiết lập tại thời điểm cung cấp và cấu hình "tĩnh" trong hệ thống, và những gì được xử lý thông qua quản lý cấu hình tập trung?


1
Câu hỏi hay. Bản thân tôi cũng tò mò liệu có thứ gì khác ngoài cấu hình dành riêng cho máy mà bạn không nên sử dụng con rối không. Vâng, đó và các máy Windows.
HoplessN00b

6
<vague> Bạn không nên quản lý mọi thứ trong con rối khi tốt hơn / dễ dàng hơn để quản lý chúng theo một cách khác. </ vague>: p
Zoredache

1
Với sự phổ biến của các công ty sử dụng Puppet những ngày này, tôi có thể thấy câu hỏi này thu hút nhiều sự chú ý trong vài năm tới
Daniel Li

Câu trả lời:


24

Quy tắc chung: Nếu bạn đang sử dụng quản lý cấu hình, hãy quản lý mọi khía cạnh của cấu hình mà bạn có thể. Bạn càng tập trung hóa thì càng dễ dàng mở rộng quy mô môi trường của bạn.

Các ví dụ cụ thể (được trích dẫn từ câu hỏi, tất cả các câu chuyện "Đây là lý do tại sao bạn muốn quản lý nó":


Cấu hình mạng IP

OK, chắc chắn, bạn đã cấu hình một địa chỉ / gateway / NS trên máy trước khi bạn thả nó vào giá đỡ. Ý tôi là nếu bạn không làm thế nào bạn sẽ chạy rối để làm phần còn lại của cấu hình?

Nhưng giả sử bây giờ bạn thêm một máy chủ tên khác vào môi trường của mình và bạn cần cập nhật tất cả các máy của mình - Bạn không muốn hệ thống quản lý cấu hình của mình làm điều đó cho bạn?

Hoặc giả sử công ty của bạn được mua lại và công ty mẹ mới của bạn yêu cầu bạn thay đổi từ địa chỉ 192.168.0.0/24 thành 10.11.12.0/24 để phù hợp với hệ thống đánh số của họ.

Hoặc bạn đột nhiên nhận được một hợp đồng lớn của chính phủ - Chỉ cần nắm bắt là bạn phải bật IPv6 RIGHT FREAKIN 'NGAY BÂY GIỜ hoặc thỏa thuận bị hủy bỏ ....

Có vẻ như cấu hình mạng là thứ chúng tôi muốn quản lý ...


Cấu hình IPMI

Giống như với các địa chỉ IP, tôi chắc chắn rằng bạn đã thiết lập điều này trước khi đặt máy vào giá đỡ - Việc bật IPMI, bảng điều khiển từ xa, v.v. trên bất kỳ máy nào có khả năng và các cấu hình đó đều không có ý nghĩa. sẽ thay đổi nhiều ...

... Cho đến khi mua lại giả thuyết mà tôi đã đề cập trong Cấu hình IP ở trên - Lý do bạn buộc phải bỏ các địa chỉ mạng 192.168 đó là vì đó là vùng đất IPMI theo lớp phủ công ty mới của bạn và bạn cần cập nhật tất cả các thẻ IPMI của mình NGAY BÂY GIỜ vì họ sẽ giẫm đạp lên không gian IP dành riêng của ai đó.

OK, có một chút khó khăn ở đây, nhưng như bạn đã nói - tất cả đều có thể được quản lý ipmitool, vậy tại sao Puppet không chạy công cụ và xác nhận cấu hình trong khi nó đang làm tất cả những thứ khác? Ý tôi là nó sẽ không làm hại gì cả, vì vậy chúng tôi cũng có thể bao gồm cả IPMI ...


Cập nhật

Các bản cập nhật phần mềm có nhiều vùng màu xám - Trong tổ chức của tôi, chúng tôi đã đánh giá con rối cho việc này và thấy nó "thiếu rất nhiều", vì vậy chúng tôi sử dụng radmindcho mục đích này. Không có lý do gì Puppet không thể gọi radmind mặc dù - Trên thực tế nếu / khi chúng ta di chuyển sang Puppet để quản lý cấu hình thì đó chính xác là điều sẽ xảy ra!

Điều quan trọng ở đây là cài đặt tất cả các bản cập nhật của bạn theo cách tiêu chuẩn (tiêu chuẩn trong toàn tổ chức hoặc tiêu chuẩn trong các nền tảng) - Không có lý do gì Puppet không nên khởi chạy quy trình cập nhật của bạn, miễn là bạn đã kiểm tra kỹ lưỡng tất cả mọi thứ để đảm bảo rằng Puppet sẽ không làm hỏng bất cứ điều gì.
Cũng không có lý do tại sao Puppet không thể gọi ra một công cụ phù hợp hơn cho nhiệm vụ này nếu bạn xác định rằng Puppet không thể tự mình làm tốt công việc ...


Re: Cập nhật. Một điều có thể khiến bạn gặp rắc rối với con rối chạy các bản cập nhật của bạn là khi dịch vụ quan trọng đang được vá, ví dụ: mysql, apache - bạn không muốn chúng khởi động lại theo ý thích. Con rối cung cấp các cách để khóa trong phiên bản của các gói đó, đó là cách tôi đã tránh nó trong khi thưởng thức các bản cập nhật chung cho các loại hạt và bu lông khác.
mỏng

@thinice Đó là một điểm tốt, nhưng đối trọng thông thường của tôi với nó là đập người sau gáy và hét REDUNDANCY thực sự rất to :-) (Đó là một tình huống tồi tệ hơn với radmind vì điều đó làm nổ tung hệ thống tập tin. Chính sách của chúng tôi là . có cân bằng tải dỡ bỏ một nửa các máy chủ vì vậy chúng tôi có thể vá / kiểm tra điều đó, rồi chúng tôi di chuyển tất cả mọi người để các máy vá vì vậy chúng tôi có thể làm nửa kia Hoạt động tốt, nhưng bạn cần có khả năng dự phòng tích hợp trong môi trường của bạn).
voretaq7

10

Đừng phát minh lại bánh xe.

Có, bạn có thể có 50 tài nguyên người dùng ảo rối và nhận ra chúng khi cần trong các mô-đun của mình ... nhưng nếu có thể, hãy sử dụng LDAP.

Tôi nói từ kinh nghiệm cay đắng. Mặc dù ldap không phải là một lựa chọn ở đây.

Ví dụ khác là đẩy ra các tệp lưu trữ, thay vì chỉ sử dụng DNS.


3
Tôi nhận ra tất cả những từ đó, nhưng tôi vẫn không chắc bạn đang cố nói gì.
Chris S

2
Tôi đang cố nói; con rối là một nơi trung tâm cho "thông tin". DNS và LDAP cũng vậy. Đừng cố gắng thực hiện công việc của họ với con rối, đó là rác rưởi .... Tôi nói điều này đã thấy các tập tin khổng lồ / etc / hosts bị đẩy ra với con rối mỗi khi một máy chủ mới tham gia mạng.
Sirex

3
Mọi người có thực sự sử dụng Puppet thay vì LDAP để quản lý tài khoản người dùng không ??
Joel E Salas

2
Mọi công cụ đều có vị trí của nó, nhưng sử dụng con rối để quản lý tài khoản người dùng hoặc LDAP để lưu trữ tệp là lạm dụng .
Hubert Kario

1
Đó chắc chắn là ab sử dụng ...
jldugger

9
  • Con rối không phải là một hệ thống phối hợp. Đặc biệt:
    • Con rối không phù hợp với việc điều phối VM, vì VM có vòng đời riêng nên được tôn trọng.
    • Con rối không phù hợp để quản lý phát hành ứng dụng / nâng cấp phức tạp. Chạy con rối độc lập có thể được khai thác cho việc này, nhưng ít nhất nó không phải là Con rối trong tầm kiểm soát, thay vào đó là kịch bản trình bao bọc của bạn hoặc robot người, điều đó là tốt.
  • Con rối không phải là một hệ thống quản lý người dùng tốt (Nó phải quản lý mọi mục nhập của người dùng, thậm chí xóa người dùng, để có hiệu quả. Vì vậy, hãy tìm giải pháp khác)
  • Con rối không phải là một cơ sở dữ liệu cấu hình tốt (xem xét việc sử dụng một cơ sở dữ liệu bên ngoài nào đó và ENC, Hiera hoặc một loại keo tương tự)

Tất nhiên bạn có thể làm tất cả những điều này với Puppet .. nhưng đó không phải là giải pháp tốt nhất cho chúng. Đôi khi bạn nên đặt búa xuống, và đi tìm cờ lê.

Tuy nhiên, Puppet cực kỳ tốt trong việc duy trì cấu hình cơ sở cho máy và cài đặt các công cụ cho phép bạn thực hiện VM và phát hành phối hợp, quản lý người dùng, v.v.


Thêm một sự ngụy biện: Con rối có thể được cấu hình để thêm và xóa người dùng có hoặc không có quản lý mọi người dùng. Điều đó nói rằng ... thật vô ích khi không quản lý mọi người dùng và thật tệ khi quản lý mọi người dùng. Tôi sử dụng con rối để thêm tài khoản dịch vụ, nhưng không phải tài khoản người dùng.
Đồi nghệ thuật

2

Tôi hầu hết đồng ý với voretaq7, nhưng với một vài cảnh báo.

  • Tôi hiếm khi định cấu hình địa chỉ IP trong con rối, trừ khi hệ thống sử dụng DHCP (tôi giả sử hầu hết các nhà cung cấp "đám mây" lớn làm điều này). Tôi đã gặp tình huống phá vỡ cấu hình mạng bằng con rối, nhưng không thể sửa chúng bằng con rối vì nút không có cách nào để liên lạc với người điều khiển rối.

  • Tôi khá tin tưởng rằng quản lý cập nhật thuộc về các công cụ hệ thống và tôi không thấy việc sử dụng con rối như một cron được tôn vinh là một sự cải tiến.


1

Trong trường hợp của tôi, tôi có một tập lệnh bootstrap tải cấu hình hệ thống tối thiểu (Ubuntu): Ruby, Rubygems, build-Essential, git, v.v. Các bản kê khai rối của tôi được giữ dưới sự kiểm soát phiên bản và tôi chỉ cần sao chép kho lưu trữ. Từ đó, tập lệnh bootstrap của tôi đưa ra một giả định hostname --shorthợp lệ và cố gắng puppet apply /root/infrastructure/puppet/hosts/$( hostname --short ).pp.

Để trả lời câu hỏi của bạn:

  • Các tập lệnh của tôi giả định kết nối mạng cơ bản (DNS, IP) và không quản lý hoặc thay đổi nó;
  • Các tập lệnh của tôi cho rằng danh tính của máy là chính xác và không thay đổi nó;
  • Kịch bản của tôi giả Ruby / Rubygems / Git là hiện tại, nhưng làm quản lý nó sau đó.

0

Hãy nghĩ rằng bạn không cần sử dụng con rối cho cấu hình mạng. Nó là một lần cấu hình điều thường. Ngoài ra, bạn có thể nhận được một số tào lao nếu bạn sẽ có một lỗi với IP hoặc MAC hoặc một cái gì đó tương tự sẽ mang lại bởi con rối.


2
Không bao giờ phải thay đổi cổng mặc định trên 100+ máy chủ bằng tay? Bạn may mắn;)

@EricDANNIELOU Tôi cho rằng có thể được coi là +1 để cho phép con rối quản lý cấu hình IP của giao diện mạng;)
Luke404

@EricDANNIELOU Hãy thử làm điều này với bash, "cho" chu kỳ và quyền người dùng thích hợp (sudo để root hoặc root trực tiếp) và sed / perl / vv. :)
Evgenii Iablokov

1
Tôi không nghĩ bash "cho" chu kỳ và các tập lệnh sed / awk / vi bẩn sẽ an toàn hơn scm cho cấu hình mạng. Và một khi bạn đã thiết lập con rối cho mọi thứ khác, sẽ không thuận tiện khi chỉ có vòng lặp ssh "for" cho cấu hình mạng.
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.