Apakah ada cara (sederhana) untuk membuat boneka menggunakan file yang tersedia di internet untuk properti Sumber dari File?
misalnya:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Apakah ada cara (sederhana) untuk membuat boneka menggunakan file yang tersedia di internet untuk properti Sumber dari File?
misalnya:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Jawaban:
Saya menulis jawaban yang diperbarui untuk memberi tahu pembaca di masa mendatang bahwa sekarang sumber daya File memang mengimplementasikan sumber HTTP.
Dari dokumen :
sumber
File sumber, yang akan disalin ke tempatnya di sistem lokal. Atribut ini saling eksklusif dengan konten dan target. Nilai yang diizinkan adalah:
- wayang: URI, yang menunjuk ke file dalam modul atau titik mount server file wayang.
- Jalur yang sepenuhnya memenuhi syarat untuk file yang tersedia secara lokal (termasuk file pada NFS yang dibagikan atau drive yang dipetakan Windows).
- file: URI, yang berperilaku sama dengan jalur file lokal.
- http: URI, yang menunjuk ke file yang dilayani oleh server web umum
Jadi, Anda dapat menggunakan konstruk seperti yang Anda tulis:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
Sudah diminta sebagai fitur selama bertahun-tahun ... Tapi Anda akhirnya membutuhkan fungsi khusus untuk ini ... atau untuk menggunakan curl
atau wget
. Lihat Wayang Tempa .
Apa yang ada di text.txt?
Itu tidak mungkin di luar kotak sekarang:
sumber:
...
Skema URI yang tersedia adalah boneka dan file. URI boneka akan mengambil file dari server file yang ada di Puppet
Saya akhirnya menggunakan yang define
saya temukan di 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'
}