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