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",
]
}
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",
]
}
Câu trả lời:
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",
}
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 curl
hoặc wget
. Xem múa rối .
Có gì trong text.txt?
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 define
tô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'
}