Làm thế nào để sao chép tập tin cho tất cả các khách hàng sử dụng con rối?


8

Làm cách nào để sao chép tệp cho tất cả khách hàng bằng cách sử dụng con rối? Tôi đã thiết lập một máy chủ rối và máy khách và tôi đã kiểm tra kết nối hoạt động tốt. Tôi không phải là chuyên gia múa rối, tôi chỉ là người mới bắt đầu và tôi chỉ muốn biết cách sao chép tệp cho tất cả khách hàng từ máy chủ con rối? Tôi cũng muốn biết làm thế nào để xóa các tập tin?


1
Từ Jorge trong trò chuyện: docs.puppetlabs.com/guides/file_serving.html Sao chép liên kết dưới dạng câu trả lời.
Rinzwind

Câu trả lời:


8

Máy chủ tệp rối

Hướng dẫn này bao gồm việc sử dụng khả năng phục vụ tệp của Puppet.


Dịch vụ con rối bao gồm một máy chủ tệp để truyền tệp tĩnh. Nếu một khai báo tài nguyên tệp chứa một con rối: URI trong thuộc tính nguồn của nó, các nút sẽ truy xuất tệp đó từ máy chủ tệp của chủ:

# sao chép một tập tin từ xa vào / etc / sudoers
tệp {"/ etc / sudoers":
    chế độ => 440,
    chủ sở hữu => root,
    nhóm => root,
    nguồn => "con rối: /// mô-đun / module_name / sudoers"
}

Tất cả các URI máy chủ tệp rối được cấu trúc như sau:

puppet://{server hostname (optional)}/{mount point}/{remainder of path}

Nếu tên máy chủ của máy chủ bị bỏ qua (nghĩa là puppet:///{mount point}/{path}lưu ý dấu gạch chéo ba), URI sẽ phân giải đến bất kỳ máy chủ nào mà nút đánh giá coi là chủ của nó. Vì điều này làm cho mã kê khai dễ mang theo hơn và có thể sử dụng lại, tên máy chủ nên được bỏ qua bất cứ khi nào có thể.

Phần còn lại của con rối: URI ánh xạ tới hệ thống tệp của máy chủ theo một trong hai cách, tùy thuộc vào việc các tệp được cung cấp bởi a modulehoặc được hiển thị thông qua a custom mount point.

Phục vụ tập tin mô-đun

Vì phần lớn việc phục vụ tệp nên được thực hiện thông qua các mô-đun, máy chủ tệp Puppet cung cấp một điểm gắn kết đặc biệt và bán ma thuật gọi là các mô-đun, có sẵn theo mặc định. Nếu điểm gắn kết của URI là các mô-đun, Puppet sẽ:

  • Giải thích đoạn tiếp theo của đường dẫn là tên của một mô-đun
  • ... xác định vị trí mô-đun đó trong đường dẫn mô-đun của máy chủ (như được mô tả ở đây trong mục Tra cứu mô-đun của ...
  • ... và giải quyết phần còn lại của đường dẫn bắt đầu trong thư mục / tệp của mô-đun đó.
  • Điều đó có nghĩa là, nếu một mô-đun có tên test_module được cài đặt trong /etc/puppet/modulesthư mục của máy chủ trung tâm , thì con rối sau: URI ...

    puppet:///modules/test_module/testfile.txt
    

    ... sẽ giải quyết theo đường dẫn tuyệt đối sau:

    /etc/puppet/modules/test_module/files/testfile.txt
    

    Nếu test_moduleđược cài đặt /usr/share/puppet/modules, cùng một URI sẽ giải quyết:

    /usr/share/puppet/modules/test_module/files/testfile.txt
    

Mặc dù không cần cấu hình bổ sung để sử dụng điểm gắn mô-đun, một số điều khiển truy cập có thể được chỉ định trong cấu hình máy chủ tệp bằng cách thêm [modules]khối cấu hình; xem Bảo mật.

Phục vụ tập tin từ các điểm gắn tùy chỉnh

Con rối cũng có thể phục vụ các tệp từ các điểm gắn tùy ý được chỉ định trong cấu hình máy chủ tệp của máy chủ (xem bên dưới). Khi phục vụ các tệp từ điểm gắn tùy chỉnh, Puppet không thực hiện trừu tượng URI bổ sung được sử dụng trong giá trị mô-đun và sẽ giải quyết đường dẫn theo tên gắn kết dưới dạng cấu trúc thư mục đơn giản.

Cấu hình máy chủ tệp

Vị trí mặc định cho dữ liệu cấu hình của máy chủ tệp là /etc/puppet/fileserver.conf; điều này có thể được thay đổi bằng cách chuyển --fsconfigcờ cho chủ rối.

Định dạng của fileserver.conftệp gần giống như của rsyncvà tương tự như tệp INI:

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

Các tùy chọn sau hiện có thể được chỉ định cho một điểm gắn kết nhất định:

  • Đường dẫn đến vị trí gắn kết trên đĩa
  • Bất kỳ số lượng chỉ thị cho phép
  • Bất kỳ số lượng chỉ thị từ chối

đường dẫn là tùy chọn bắt buộc duy nhất, nhưng vì cấu hình bảo mật mặc định là từ chối tất cả quyền truy cập, nên một điểm gắn kết không có chỉ thị cho phép sẽ không có sẵn cho bất kỳ nút nào.

Con đường có thể chứa bất kỳ hoặc tất cả %h, %H%d, được tự động thay thế bằng tên máy của khách hàng, tên miền đầy đủ của nó và tên miền của mình, tương ứng. Tất cả đượ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 bạn có sự trùng khớp tên máy chủ / chứng chỉ). Điều này rất hữu ích trong việc tạo các mô-đun nơi các tệp cho mỗi máy khách được giữ hoàn toàn riêng biệt, ví dụ: đối với các khóa máy chủ ssh riêng. Ví dụ, với cấu hình

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

yêu cầu tệp /private/file.txttừ máy khách client1.example.com sẽ tìm tệp /data/private/client1/file.txt, trong khi yêu cầu tương tự từ đó client2.example.comsẽ cố gắng truy xuất tệp /data/private/client2/file.txt trên máy chủ tệp.

Hiện tại các đường dẫn không thể chứa dấu gạch chéo hoặc lỗi sẽ xảy ra. Ngoài ra, hãy lưu ý rằng trong puppet.confbạn không chỉ định vị trí thư mục có dấu gạch chéo.

Bảo vệ

Bảo mật máy chủ tệp Puppet bao gồm cho phép và từ chối truy cập (ở các mức độ cụ thể khác nhau) trên mỗi điểm gắn kết. Các nhóm nút có thể được xác định để xin phép hoặc từ chối theo ba cách: theo địa chỉ IP, theo tên hoặc bằng một ký tự đại diện chung (*). Điểm gắn tùy chỉnh mặc định để từ chối tất cả quyền truy cập.

Ngoài các điểm gắn kết tùy chỉnh, có hai điểm gắn kết đặc biệt có thể được quản lý bằng fileserver.conf: modulesplugins. Cả hai điểm gắn kết này đều phải có tùy chọn đường dẫn được chỉ định. Hành vi của điểm gắn mô-đun được mô tả ở trên trong Phục vụ tệp từ Điểm gắn tùy chỉnh. Gắn kết bổ trợ không phải là điểm gắn kết thực sự, mà là một móc nối để cho phép fileserver.conf chỉ định các nút nào được phép đồng bộ hóa các plugin từ Puppet Master. Cả hai điểm gắn kết này đều tồn tại theo mặc định và cả hai mặc định cho phép tất cả quyền truy cập; nếu bất kỳ chỉ thị cho phép hoặc từ chối nào được đặt cho một trong các giá trị gắn kết đặc biệt này, cài đặt bảo mật của nó sẽ hoạt động giống như các giá trị gắn kết thông thường (nghĩa là nó sẽ mặc định từ chối tất cả quyền truy cập). Lưu ý rằng đây là những điểm gắn kết duy nhất mà từ chối * không dư thừa.

Nếu các nút không kết nối trực tiếp với máy chủ tệp Puppet, ví dụ: sử dụng proxy ngược và Mongrel (xem Sử dụng Mongrel), thì máy chủ tệp sẽ thấy tất cả các kết nối đến từ địa chỉ IP của máy chủ proxy thay vì của nút Puppet Agent . Trong trường hợp này, tốt nhất là hạn chế quyền truy cập dựa trên tên máy chủ. Ngoài ra, (các) máy đóng vai trò proxy ngược (thường là 127.0.0.0/8) sẽ cần phải được phép truy cập vào các điểm gắn kết áp dụng.

Sự ưu tiên

Từ chối cụ thể hơn và cho phép các tuyên bố được ưu tiên hơn các tuyên bố ít cụ thể hơn; nghĩa là, một câu lệnh cho phép cho node.domain.com sẽ cho phép nó kết nối mặc dù câu lệnh từ chối cho * .domain.com. Ở một mức độ cụ thể nhất định, các tuyên bố từ chối được ưu tiên hơn các báo cáo cho phép.

Hành vi không thể đoán trước có thể xuất phát từ việc trộn các chỉ thị địa chỉ IP với các chỉ thị tên máy chủ và tên miền, vì vậy hãy cố gắng tránh làm điều đó. (Hiện tại, nếu địa chỉ IP của node.domain.com là 192.168.1.80 và fileserver.conf chứa cho phép 192.168.1.80 và từ chối node.domain.com, thì lệnh cho phép dựa trên IP sẽ thực sự được ưu tiên. Hành vi này có thể được thay đổi trong tương lai và không nên dựa vào.)

Tên máy chủ

Tên máy chủ có thể được chỉ định bằ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:

[export]
    path /export
    allow host.domain1.com
    allow *.domain2.com
    deny badhost.domain2.com

Các địa chỉ IP

Địa chỉ IP có thể được chỉ định tương tự như tên máy chủ, sử dụng địa chỉ IP hoàn chỉnh hoặc địa chỉ ký tự đại diện. Bạn cũng có thể sử dụng ký hiệu kiểu CIDR:

[export]
    path /export
    allow 127.0.0.1
    allow 192.168.0.*
    allow 192.168.1.0/24

Toàn cầu cho phép

Chỉ định một ký tự đại diện sẽ cho phép bất kỳ nút nào truy cập vào điểm gắn kết:

[export]
    path /export
    allow *

Lưu ý rằng hành vi mặc định cho các điểm gắn tùy chỉnh tương đương với từ chối *.


Xin chào @Rinzwind sẽ thật tuyệt nếu bạn thêm câu trả lời chính xác những gì tôi muốn.
karthick87

Vâng, liên kết từ Jorge / câu trả lời này là sự khởi đầu để thực hiện điều này và nó trả lời câu hỏi "Làm cách nào để sao chép tệp cho tất cả khách hàng sử dụng con rối?" bao gồm cả bảo mật bạn nên xem xét. Tất cả những gì nó thiếu là một phương pháp để loại bỏ các tập tin. Tôi sẽ bao gồm điều đó (phần cuối cùng của câu trả lời này là về việc thực hiện nó một cách an toàn có thể tốt hơn để loại bỏ nó có thể).
Rinzwind

Tôi có muốn chỉnh sửa tệp kê khai không? Và nhập những dòng trên?
karthick87
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.