Я пишу обновленный ответ, чтобы уведомить будущих читателей, что теперь ресурс File действительно реализует источник HTTP.
Из документы :
источник
Исходный файл, который будет скопирован на место в локальной системе. Этот атрибут является взаимоисключающим с содержимым и целью. Допустимые значения:
- puppet: URI, которые указывают на файлы в модулях или точки подключения файлового сервера Puppet.
- Полные пути к локально доступным файлам (включая файлы на общих ресурсах NFS или сопоставленных дисках Windows).
- файл : URI, которые ведут себя так же, как пути к локальным файлам.
- http: URI, которые указывают на файлы, обслуживаемые общими веб-серверами
Таким образом, вы можете использовать конструкцию в том виде, в котором вы ее написали:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
Это запрашивалось как функция в течение многих лет ... Но в конечном итоге вам понадобится специальная функция для этого ... или использовать curl
или wget
. См. Кузница Марионеток .
Что в text.txt?
Прямо сейчас это невозможно из коробки:
источник:
...
Доступные схемы URI: марионетка и файл. Марионеточные URI будут извлекать файлы со встроенного файлового сервера Puppet
В итоге я использовал define
, который нашел в Интернете:
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'
}