Con rối - Máy chủ Tệp

Puppet tuân theo khái niệm máy khách và máy chủ, trong đó một máy trong một thiết lập hoạt động như máy chủ với phần mềm máy chủ Puppet đang chạy trên đó và máy còn lại hoạt động như máy khách với phần mềm tác nhân Puppet chạy trên đó. Tính năng này của máy chủ tệp giúp sao chép tệp xung quanh nhiều máy. Tính năng này của chức năng phục vụ tệp trong Puppet là một phần của daemon Puppet trung tâm. Puppetmasterd và hàm khách hàng đóng vai trò quan trọng trong việc tìm nguồn cung cấp các thuộc tính tệp làm đối tượng tệp.

class { 'java':  
   package               => 'jdk-8u25-linux-x64',  
   java_alternative      => 'jdk1.8.0_25',  
   java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'  
}

Như trong đoạn mã trên, các chức năng phục vụ tệp của Puppet tóm tắt cấu trúc liên kết hệ thống tệp cục bộ bằng cách hỗ trợ mô-đun dịch vụ tệp. Chúng tôi sẽ chỉ định mô-đun phục vụ tệp theo cách sau.

“puppet://server/modules/module_name/sudoers”

Định dạng tệp

Trong cấu trúc thư mục Con rối, theo mặc định, cấu hình máy chủ tệp được đặt dưới /etc/puppet/fileserver.config thư mục, nếu người dùng muốn thay đổi đường dẫn tệp cấu hình mặc định này, nó có thể được thực hiện bằng cách sử dụng cờ cấu hình mới để puppetmasterd. Tệp cấu hình giống tệp INI nhưng không hoàn toàn giống nhau.

[module] 
path /path/to/files 
allow *.domain.com 
deny *.wireless.domain.com

Như được hiển thị trong đoạn mã trên, tất cả ba tùy chọn đều được thể hiện trong tệp cấu hình. Tên mô-đun phần nào nằm trong dấu ngoặc. Đường dẫn là lựa chọn bắt buộc duy nhất. Tùy chọn bảo mật mặc định là từ chối tất cả quyền truy cập, vì vậy nếu không có dòng cho phép nào được chỉ định, thì mô-đun sẽ được cấu hình sẽ khả dụng cho bất kỳ ai.

Đường dẫn có thể chứa bất kỳ hoặc tất cả% d,% h và% H được thay thế động bằng tên miền, tên máy chủ và tên máy chủ đủ điều kiện. Tất cả đều được lấy từ chứng chỉ SSL của khách hàng (vì vậy hãy cẩn thận nếu có một tên máy chủ và tên chứng chỉ không khớp). Điều này hữu ích là tạo các mô-đun nơi các tệp của mỗi máy khách được giữ hoàn toàn riêng biệt. Ví dụ, đối với khóa máy chủ riêng.

[private] 
path /data/private/%h 
allow *

Trong đoạn mã trên, mã đang cố gắng tìm kiếm tệp /private/file.txt từ máy khách client1.vipin.com. Nó sẽ tìm kiếm nó trong /data/private/client1/file.txt, trong khi yêu cầu tương tự cho client2.vipin.com sẽ cố gắng truy xuất tệp /data/private/client2/file.txt trên máy chủ tệp.

Bảo vệ

Puppet hỗ trợ hai khái niệm cơ bản về bảo mật tệp trên máy chủ tệp Puppet. Điều này đạt được bằng cách cho phép truy cập vào các tệp cụ thể và từ chối quyền truy cập vào những tệp không bắt buộc. Theo mặc định, Puppet không cho phép truy cập vào bất kỳ tệp nào. Nó cần được định nghĩa một cách rõ ràng. Định dạng có thể được sử dụng trong các tệp để cho phép hoặc từ chối quyền truy cập bằng cách sử dụng địa chỉ IP, tên hoặc cho phép chung.

Nếu máy khách không được kết nối trực tiếp với máy chủ tệp Con rối, chẳng hạn như sử dụng proxy ngược và Mongrel, thì máy chủ tệp sẽ thấy tất cả các kết nối đến từ máy chủ proxy chứ không phải máy khách Con rối. Trong các trường hợp trên, hạn chế tên máy chủ trên cơ sở tên máy chủ là cách tốt nhất.

Một điểm quan trọng cần lưu ý khi xác định cấu trúc tệp là, tất cả các câu lệnh từ chối đều được phân tích cú pháp trước câu lệnh allow. Do đó, nếu bất kỳ câu lệnh từ chối nào khớp với một máy chủ, thì máy chủ đó sẽ bị từ chối và nếu không có câu lệnh allow nào được viết trong các tệp sắp tới thì máy chủ đó sẽ bị từ chối. Tính năng này giúp thiết lập mức độ ưu tiên của bất kỳ trang web cụ thể nào.

Tên máy chủ

Trong bất kỳ cấu hình máy chủ tệp nào, tên máy chủ tệp có thể được chỉ định theo hai cách bằng cách sử dụng tên máy chủ hoàn chỉnh hoặc chỉ định toàn bộ tên miền bằng cách sử dụng ký tự đại diện * như trong ví dụ sau.

[export] 
path /usr 
allow brcleprod001.brcl.com 
allow *.brcl.com 
deny brcleprod002.brcl.com

Địa chỉ IP

Trong bất kỳ cấu hình máy chủ tệp nào, địa chỉ tệp có thể được chỉ định tương tự như tên máy chủ lưu trữ, sử dụng địa chỉ IP hoàn chỉnh hoặc địa chỉ ký tự đại diện. Người ta cũng có thể sử dụng ký hiệu hệ thống CIDR.

[export] 
path /usr 
allow 127.0.0.1 
allow 172.223.30.* 
allow 172.223.30.0/24

Cho phép toàn cầu

Global allow được sử dụng khi người dùng muốn mọi người đều có thể truy cập vào một mô-đun cụ thể. Để làm điều này, một ký tự đại diện duy nhất giúp cho phép mọi người truy cập vào mô-đun.

[export] 
path /export 
allow *