Nguồn tập tin rối có thể từ một dịch vụ web?


10

Có cách nào (đơn giản) để con rối sử dụng một tệp có sẵn trên internet cho thuộc tính Nguồn của Tệp không?

ví dụ:

file { "/home/text.txt":
  source => [
    "http://www.example.com/text.txt",
  ]
}

Nếu bạn coi trọng tính toàn vẹn của máy chủ của mình, ít nhất hãy sử dụng https. Và sử dụng một tên miền đáng tin cậy hơn vì bạn không biết ai có thể kiểm soát cái đó ... ừm ... Nó trở nên âm thầm hơn từ đây.
mc0e

Câu trả lời:


4

Tôi đang viết một câu trả lời cập nhật để thông báo cho những người đọc trong tương lai rằng bây giờ tài nguyên Tệp thực sự thực hiện nguồn HTTP.

Từ các tài liệu :

nguồn

Một tệp nguồn, sẽ được sao chép vào vị trí trên hệ thống cục bộ. Thuộc tính này là loại trừ lẫn nhau với nội dung và mục tiêu. Các giá trị được phép là:

  • con rối: URI, trỏ đến các tệp trong các mô-đun hoặc các điểm gắn máy chủ tệp rối.
  • Đường dẫn đầy đủ đến các tệp khả dụng cục bộ (bao gồm các tệp trên chia sẻ NFS hoặc ổ đĩa được ánh xạ Windows).
  • tệp: URI, hoạt động giống như đường dẫn tệp cục bộ.
  • http: URI, trỏ đến các tệp được phục vụ bởi các máy chủ web phổ biến

Vì vậy, bạn có thể sử dụng cấu trúc như bạn đã viết nó:

file { "/home/text.txt":
  source => "http://www.example.com/text.txt",
}

2
kể từ phiên bản Puppet 4.4.0 (thông qua vé Ticket.puppetlabs.com/browse/PUP-1072 )
KJH

4

Nó được yêu cầu như một tính năng trong nhiều năm ... Nhưng cuối cùng bạn cần một chức năng tùy chỉnh cho việc này ... hoặc để sử dụng curlhoặc wget. Xem múa rối .

Có gì trong text.txt?


txt.txt chỉ là một ví dụ. Tôi thực sự muốn sử dụng nó để kéo khách hàng của Freeradius khỏi hệ thống quản trị.
gunwin

4

Hiện tại không thể ra khỏi hộp:

nguồn:

...

Các lược đồ URI có sẵn là con rối và tệp. URI rối sẽ lấy các tệp từ máy chủ tệp tích hợp của Puppet

Tôi đã kết thúc bằng cách sử dụng definetôi tìm thấy trên internet:

define remote_file($remote_location=undef, $mode='0644'){
  exec{ "retrieve_${title}":
    command => "/usr/bin/wget -q ${remote_location} -O ${title}",
    creates => $title,
  }

  file{$title:
    mode    => $mode,
    require => Exec["retrieve_${title}"],
  }
}

remote_file{'/home/text.txt':
  remote_location => 'http://www.example.com/text.txt'
}
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.