Ресурс remote_file
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл remote_file.rb и отправьте запрос на добавление в репозиторий Chef Infra Client.
Используйте ресурс remote_file для передачи файла из удалённого расположения с использованием специфичности к файлам. Этот ресурс похож на ресурс file.
Примечание
Загрузка файлов из каталога files/ в кулинарной книге должна выполняться с помощью ресурса cookbook_file.
Синтаксис
Блок ресурса remote_file управляет файлами, используя удалённые файлы. Например, чтобы записать домашнюю страницу веб-сайта Apache:
remote_file '/var/www/customers/public_html/index.html' do
source 'http://somesite.com/index.html'
owner 'web_admin'
group 'web_admin'
mode '0755'
action :create
end
где:
-
'/var/www/customers/public_html/index.html'— путь к файлу, который должен быть создан -
'http://somesite.com/index.html'указывает расположение удалённого файла, откуда происходит загрузка файла -
owner,group, иmodeопределяют права доступа
Полный синтаксис всех доступных свойств ресурса remote_file:
remote_file 'name' do
atomic_update true, false
authentication # default value: remote
backup Integer, false # default value: 5
checksum String
content String, nil
force_unlink true, false # default value: false
ftp_active_mode true, false # default value: false
group String, Integer
headers Hash
inherits true, false
manage_symlink_source true, false
mode String, Integer
notifies # see description
owner String, Integer
path String # defaults to 'name' if not specified
rights Hash
source String, Array
subscribes # see description
use_conditional_get true, false
verify String, Block
remote_domain String
remote_password String
remote_user String
show_progress true, false # default value: false
use_etag true, false # default value: true
use_last_modified true, false # default value: true
sensitive true, false # default value: false
verifications Array
action Symbol # defaults to :create if not specified
endгде:
-
remote_file— ресурс. -
name— имя, заданное для блока ресурса. -
actionопределяет, какие шаги Chef Infra Client предпримет для приведения узла в желаемое состояние. -
atomic_update,authentication,backup,checksum,content,force_unlink,ftp_active_mode,group,headers,http_options,manage_symlink_source,mode,owner,path,remote_domain,remote_password,remote_user,show_progress,ssl_verify_mode,use_etag, иuse_last_modified— доступные для этого ресурса свойства.
Действия
Ресурс remote_file имеет следующие действия:
:create- По умолчанию. Создать файл. Если файл уже существует (но не соответствует), обновить этот файл, чтобы он соответствовал.
:create_if_missing- Создать файл только в том случае, если он не существует. Если файл существует, ничего не происходит.
:delete- Удалить файл.
:nothing- Этот блок ресурса не действует, пока другой ресурс не сообщит ему о выполнении действия. После получения сообщения, этот блок ресурса выполняется немедленно или помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:touch- Изменить метку файла. Это обновляет время доступа (atime) и время изменения файла (mtime). (Это действие может использоваться с этим ресурсом, но обычно используется только с ресурсом file.)
Свойства
Ресурс remote_file имеет следующие свойства:
-
atomic_update - Тип Ruby: true, false | Значение по умолчанию:
False if modifying /etc/hosts, /etc/hostname, or /etc/resolv.conf within Docker containers. Otherwise default to the client.rb 'file_atomic_update' config value.Выполнять атомарные обновления файлов на основе каждого ресурса. Установите в значение true для атомарных обновлений файлов. Установите в значение false для неатомарных обновлений файлов. Это значение переопределяет
file_atomic_update, которое является глобальным значением, найденным в файлеclient.rb.
-
authentication - Тип Ruby: Символ | Значение по умолчанию:
:remoteРазрешенные значения::local, :remote
-
backup - Тип Ruby: Целое число, false | Значение по умолчанию:
5Количество резервных копий, которые нужно сохранить в
/var/chef/backup(для платформ на основе UNIX и Linux) илиC:/chef/backup(для платформы Microsoft Windows). Установите вfalse, чтобы не сохранять резервные копии.
-
checksum - Тип Ruby: Строка
Необязательно, см.
use_conditional_get. Сумма контрольной цифры SHA-256 файла. Используется для предотвращения повторной загрузки файла. Если локальный файл соответствует контрольной сумме, Chef Infra Client не загружает его.
-
force_unlink - Тип Ruby: true, false | Значение по умолчанию:
falseКак Chef Infra Client обрабатывает определённые ситуации, когда целевой файл оказывается не файлом. Например, когда целевой файл на самом деле является символической ссылкой. Установите в
trueдля Chef Infra Client, чтобы удалить целевой объект, который не является файлом, и заменить его указанным файлом. Установите вfalseдля Chef Infra Client, чтобы выдать ошибку.
-
ftp_active_mode - Тип Ruby: true, false | Значение по умолчанию:
falseИспользует ли Chef Infra Client активный или пассивный FTP. Установите в
trueдля использования активного FTP.
-
group - Тип Ruby: Целое число, Строка
Строка или идентификатор, который идентифицирует владельца группы по имени группы или SID, включая полностью квалифицированные имена групп, такие как
domain\groupилиgroup@domain. Если это значение не указано, существующие группы остаются без изменений, а новые назначения групп используют группу по умолчаниюPOSIX(если доступна).
-
headers - Тип Ruby: Хэш | Значение по умолчанию:
{}Хэш пользовательских заголовков. Например:
headers({ "Cookie" => "user=user_name; pass=p@ssw0rd!" })или:
headers({ "Referer" => "#{header}" })или:
headers( "Authorization"=>"Basic #{ Base64.encode64("#{username}:#{password}").gsub("\n", "") }" )
-
inherits - Тип Ruby: true, false | Значение по умолчанию:
trueТолько Microsoft Windows. Наследует ли файл права из родительского каталога.
-
http_options - Тип Ruby: Хэш | Значение по умолчанию:
{}Хэш пользовательских параметров HTTP. Например:
http_options({ http_retry_count: 0, http_retry_delay: 2 })Новое в Chef Infra Client 17.5
-
manage_symlink_source - Тип Ruby: true, false | Значение по умолчанию:
true(с предупреждением)
Изменить поведение ресурса файла, если он указывает на символическую ссылку. Когда это значение установлено в
true, Chef Infra Client будет управлять правами символической ссылки или заменит символическую ссылку обычным файлом, если у ресурса есть содержимое. Когда это значение установлено вfalse, Chef Infra Client будет следовать символической ссылке и будет управлять правами и содержимым целевого файла символической ссылки.Поведение по умолчанию —
true, но выводится предупреждение, что значение по умолчанию будет изменено наfalseв будущей версии; явное указание значенияtrueилиfalseподавляет это предупреждение.
-
mode - Тип Ruby: Целое число, Строка
Заключённая в кавычки строка длиной от 3 до 5 символов, определяющая восьмеричный режим. Например:
'755','0755', или00755. Еслиmodeне указано и если файл уже существует, используется существующий режим файла. Еслиmodeне указано, файл не существует и действие:createуказано, Chef Infra Client предполагает значение маски'0777'и затем применяет значение umask для системы, на которой файл должен быть создан, к значениюmask. Например, если umask в системе —'022', Chef Infra Client использует значение по умолчанию'0755'.Поведение различается в зависимости от платформы.
Системы на базе UNIX и Linux: Заключённая в кавычки строка длиной от 3 до 5 символов, определяющая восьмеричный режим, передаваемый в chmod. Например:
'755','0755', или00755. Если значение указано как строка в кавычках, оно работает точно так же, как если бы командаchmodбыла передана. Если значение указано как целое число, добавьте ноль (0) к значению, чтобы убедиться, что оно интерпретируется как восьмеричное число. Например, чтобы назначить права чтения, записи и выполнения для всех пользователей, используйте'0777'или'777'; для тех же прав плюс бит «приклеивания» используйте01777или'1777'.Microsoft Windows: Заключённая в кавычки строка длиной от 3 до 5 символов, определяющая восьмеричный режим, который преобразуется в права для безопасности Microsoft Windows. Например:
'755','0755', или00755. Разрешены значения до'0777'(без битов «приклеивания»), которые имеют тот же смысл в Microsoft Windows, что и в UNIX, где4равноGENERIC_READ,2равноGENERIC_WRITE, и1равноGENERIC_EXECUTE. Это свойство не может использоваться для установки:full_control. Это свойство не имеет эффекта, если не указано, но когда оно иrightsуказаны оба, эффекты являются кумулятивными.
-
owner - Тип Ruby: Целое число, Строка
Строка или идентификатор, который идентифицирует владельца группы по имени пользователя или SID, включая полностью квалифицированные имена пользователей, такие как
domain\userилиuser@domain. Если это значение не указано, существующие владельцы остаются без изменений, и новые назначения владельцев используют текущего пользователя (при необходимости).
-
path - Тип Ruby: Строка | Значение по умолчанию:
The resource block's nameПолный путь к файлу, включая имя файла и его расширение. Значение по умолчанию:
nameблока ресурса. См. раздел «Синтаксис» выше для получения дополнительной информации.
-
remote_domain - Тип Ruby: Строка
Только Windows Домен пользователя, указанный свойством
remote_user. По умолчанию ресурс будет авторизован в домене удаленной системы или как локальный пользователь, если удаленная система не присоединена к домену. Если удаленная система не входит в домен, необходимо авторизоваться как локальный пользователь на удаленной системе, установив домен в., например: remote_domain ‘.’. Домен также может быть указан как часть свойстваremote_user.Новое в Chef Client 13.4
-
remote_password - Тип Ruby: Строка
Только Windows Пароль пользователя, указанный свойством
remote_user. Это свойство обязательно, если указаноremote_user, и может быть указано только при наличииremote_user. Свойствоsensitiveдля этого ресурса будет автоматически установлено в значениеtrue, если указаноremote_password.Новое в Chef Client 13.4
-
remote_user - Тип Ruby: Строка
Только Windows Имя пользователя с доступом к удаленному файлу, указанному свойством source. Имя пользователя может быть необязательно указано с доменом, например:
domain\userилиuser@my.dns.domain.comв формате Universal Principal Name (UPN). Домен также может быть задан с помощью свойстваremote_domain. Обратите внимание, что это свойство игнорируется, если source не является UNC-путем. Если это свойство указано, то обязательно указать свойствоremote_password.Новое в Chef Client 13.4
-
rights - Тип Ruby: Целое число, строка
Только Microsoft Windows. Разрешения для пользователей и групп в среде Microsoft Windows. Например:
rights <permissions>, <principal>, <options>, где<permissions>указывает права, предоставленные субъекту,<principal>— имя группы или пользователя, а<options>— словарь с одним (или несколькими) расширенными параметрами прав.
-
source - Тип Ruby: Строка, массив
Обязательное. Путь к исходному файлу. Путь к исходному файлу может быть HTTP (
http://), FTP (ftp://), SFTP (sftp://), локальный (file:///) или UNC (\\host\share\file.tar.gz).Существует множество способов определить расположение исходного файла. Используя путь:
source 'http://couchdb.apache.org/img/sketch.png'Используя FTP:
source 'ftp://remote_host/path/to/img/sketch.png'Используя SFTP:
source 'sftp://username:password@remote_host:22/path/to/img/sketch.png'Используя локальный путь:
source 'file:///path/to/img/sketch.png'Используя Microsoft Windows UNC:
source '\\\\path\\to\\img\\sketch.png'Используя атрибут узла:
source node['nginx']['foo123']['url']Используя атрибуты для определения путей:
source "#{node['python']['url']}/#{version}/Python-#{version}.tar.bz2"Определяя несколько путей для нескольких расположений:
source 'http://seapower/spring.png', 'http://seapower/has_sprung.png'Определяя те же несколько путей как массив:
source ['http://seapower/spring.png', 'http://seapower/has_sprung.png']Когда указано несколько путей, Chef Infra Client будет пытаться загрузить файлы в указанном порядке, останавливаясь после первой успешной загрузки.
-
use_conditional_get - Тип Ruby: true, false | Значение по умолчанию:
trueВключить условные HTTP-запросы, используя условный
GET(с заголовком If-Modified-Since) или неявный идентификатор (ETag). Чтобы использовать заголовки If-Modified-Since,use_last_modifiedтакже должно быть установлено вtrue. Чтобы использовать заголовки ETag,use_etagтакже должно быть установлено вtrue.
-
show_progress - Тип Ruby: true, false | Значение по умолчанию:
falseОтображает процесс загрузки файла.
-
ssl_verify_mode - Тип Ruby: Символ Допустимые значения:
:verify_none, :verify_peerНеобязательное свойство для переопределения политики SSL. Если не указано, используется политика SSL из
config.rb.Новое в Chef Infra Client 16.2
-
use_etag - Тип Ruby: true, false | Значение по умолчанию:
trueВключить заголовки ETag. Установите в
falseдля отключения заголовков ETag. Чтобы использовать это значение,use_conditional_getтакже должно быть установлено в true.
-
use_last_modified - Тип Ruby: true, false | Значение по умолчанию:
trueВключить заголовки
If-Modified-Since. Установите вfalseдля отключения заголовковIf-Modified-Since. Чтобы использовать это значение,use_conditional_getтакже должно быть установлено вtrue.
-
verify - Тип Ruby: Строка, блок
Блок или строка, возвращающая
trueилиfalse. Строка, когдаtrueвыполняется как системная команда.Блок — произвольный код Ruby, определенный в блоке ресурса с использованием свойства
verify. Когда блокtrue, Chef Infra Client продолжит обновлять файл как положено.Например, это должно вернуть
true:remote_file '/tmp/baz' do verify { 1 == 1 } endЭто должно вернуть
true:remote_file '/etc/nginx.conf' do verify 'nginx -t -c %{path}' endЭто должно вернуть
true:remote_file '/tmp/bar' do verify { 1 == 1} endИ это должно вернуть
true:remote_file '/tmp/foo' do verify do |path| true end endВ то время как это должно вернуть
false:remote_file '/tmp/turtle' do verify '/usr/bin/false' endЕсли строка или блок возвращают
false, выполнение Chef Infra Client прекратится, и будет возвращено сообщение об ошибке.
Атомарные обновления файлов
Атомарные обновления используются с ресурсами на основе файлов, чтобы гарантировать возможность обновления файлов при обновлении двоичных файлов или при недостатке места на диске.
Атомарные обновления включены по умолчанию. Они могут быть управляемы глобально с помощью настройки file_atomic_update в файле client.rb. Они могут быть управляемы на уровне каждого ресурса с помощью свойства atomic_update, доступного с ресурсами cookbook_file, file, remote_file и template.
Примечание
На определённых платформах после перемещения файла в нужное место Chef Infra Client может изменить разрешения файла для поддержки функций, специфичных для этих платформ. На платформах с включённым SELinux Chef Infra Client исправит контексты безопасности после перемещения файла в нужное место, выполнив команду restorecon. На платформе Microsoft Windows Chef Infra Client создаст файлы так, чтобы наследование ACL работало должным образом.
Безопасность файлов в Windows
Для поддержки безопасности в Microsoft Windows ресурсы template, file, remote_file, cookbook_file, directory и remote_directory поддерживают использование наследования и списков управления доступом (ACL) внутри рецептов. Списки управления доступом (ACL)Свойство rights может использоваться в рецептах для управления списками управления доступом (ACL), которые позволяют предоставлять права нескольким пользователям и группам. Свойство rights может использоваться столько раз, сколько необходимо; Chef Infra Client будет применять их к файлу или каталогу по мере необходимости. Синтаксис свойства rights следующий:
rights permission, principal, option_type => value
где
permission-
Используется для указания прав, предоставляемых
principal. Возможные значения::read,:write,read_execute,:modify,:full_control, или целое число. -
Целые числа, используемые для прав, должны соответствовать следующему списку FileSystemRights Enum полей.
These permissions are cumulative. If `:write` is specified, then it
includes `:read`. If `:full_control` is specified, then it includes
both `:write` and `:read`.
(For those who know the Microsoft Windows API: `:read` corresponds
to `GENERIC_READ`; `:write` corresponds to `GENERIC_WRITE`;
`:read_execute` corresponds to `GENERIC_READ` and `GENERIC_EXECUTE`;
`:modify` corresponds to `GENERIC_WRITE`, `GENERIC_READ`,
`GENERIC_EXECUTE`, and `DELETE`; `:full_control` corresponds to
`GENERIC_ALL`, which allows a user to change the owner and other
metadata about a file.)
principal-
Используется для указания группы или пользователя. Субъект может быть указан по имени или SID. При использовании имени это идентично тому, что вводится в поле входа для Microsoft Windows, например
user_name,domain\user_name, илиuser_name@fully_qualified_domain_name. При использовании SID вы можете использовать либо стандартное строковое представление SID (S-R-I-S-S), либо одно из констант строк SDDL. Chef Infra Client не нужно знать, является ли субъект пользователем или группой. option_type-
Словарь, содержащий расширенные параметры прав. Например, права на каталог, которые применяются только к первому уровню дочерних элементов, могут выглядеть примерно так:
rights :write, 'domain\group_name', :one_level_deep => true. Возможные типы параметров:Тип параметра Описание :applies_to_childrenУказывает, как права применяются к дочерним элементам. Возможные значения: true— наследовать как дочерние каталоги, так и файлы;false— не наследовать никакие дочерние каталоги или файлы;:containers_only— наследовать только дочерние каталоги (но не файлы);:objects_only— рекурсивно наследовать файлы (но не дочерние каталоги).:applies_to_selfУказывает, применяется ли разрешение к родительскому каталогу. Возможные значения: true— применить к родительскому каталогу или файлу и его дочерним элементам;false— не применять только к дочерним каталогам и файлам.:one_level_deepУказывает глубину, до которой будут применяться права. Возможные значения: true— применить только к первому уровню дочерних элементов;false— применить ко всем дочерним элементам.
Например:
resource 'x.txt' do
rights :read, 'S-1-1-0'
rights :write, 'domain\group'
rights :full_control, 'group_name_or_user_name'
rights :full_control, 'user_name', applies_to_children: true
end
или:
rights :read, %w(Administrators Everyone)
rights :full_control, 'Users', applies_to_children: true
rights :write, 'Sally', applies_to_children: :containers_only, applies_to_self: false, one_level_deep: true
Некоторые другие важные моменты при использовании атрибута rights:
- Остаются только унаследованные права. Все существующие явные права на объект удаляются и заменяются.
- Если права не указаны, ничего не изменится. Chef Infra Client не очищает права на файл или каталог, если права не указаны.
- Изменение унаследованных прав может быть дорогостоящим. Microsoft Windows будет рекурсивно распространять права на всех потомков из-за наследования. Это нормальная особенность Microsoft Windows, поэтому следует рассмотреть частоту необходимости такого действия и принять меры по контролю за таким действием, если производительность является первоочередной задачей.
Используйте свойство deny_rights, чтобы запретить определенные права определенным пользователям. Порядок не зависит от использования свойства rights. Например, не имеет значения, если права предоставляются всем, перед или после deny_rights :read, ['Julian', 'Lewis'], как Джулиан, так и Луис не смогут читать документ. Например:
resource 'x.txt' do
rights :read, 'Everyone'
rights :write, 'domain\group'
rights :full_control, 'group_name_or_user_name'
rights :full_control, 'user_name', applies_to_children: true
deny_rights :read, %w(Julian Lewis)
end
или:
deny_rights :full_control, ['Sally']
По умолчанию файл или каталог наследуют права из родительского каталога. В большинстве случаев это предпочтительное поведение, но иногда может потребоваться принять меры для более точного управления правами. Свойство inherits можно использовать для указания Chef Infra Client на применение (или не применение) унаследованных прав из родительского каталога.
Например, в следующем примере задаются права для каталога:
directory 'C:\mordor' do
rights :read, 'MORDOR\Minions'
rights :full_control, 'MORDOR\Sauron'
end
а затем в следующем примере показано, как использовать наследование, чтобы запретить доступ к дочернему каталогу:
directory 'C:\mordor\mount_doom' do
rights :full_control, 'MORDOR\Sauron'
inherits false # Sauron is the only person who should have any sort of access
end
Если вместо этого использовалось бы разрешение deny_rights, что-то могло бы пройти незамеченным, если бы не были запрещены все пользователи и группы.
Другой пример также демонстрирует, как задать права для каталога:
directory 'C:\mordor' do
rights :read, 'MORDOR\Minions'
rights :full_control, 'MORDOR\Sauron'
rights :write, 'SHIRE\Frodo' # Who put that there I didn't put that there
end
но затем не использовать свойство inherits, чтобы запретить эти права в дочернем каталоге:
directory 'C:\mordor\mount_doom' do
deny_rights :read, 'MORDOR\Minions' # Oops, not specific enough
end
Поскольку свойство inherits не указано, Chef Infra Client по умолчанию установит его в значение true, что обеспечит сохранение неизменными параметров безопасности для существующих файлов.
Предотвращение повторных загрузок
Чтобы предотвратить повторную загрузку файлов Chef Infra Client, которые уже присутствуют на узле, используйте один из следующих атрибутов в рецепте: use_conditional_get (по умолчанию) или checksum.
- Атрибут
use_conditional_get— это поведение Chef Infra Client по умолчанию. Если удаленный файл находится на сервере, поддерживающем заголовки ETag и/или If-Modified-Since, Chef Infra Client будет использовать условный запросGETдля определения того, обновлялся ли файл. Если файл был обновлён, Chef Infra Client перескачает файл. - Атрибут
checksumпопросит Chef Infra Client сравнить контрольную сумму локального файла с контрольной суммой в удалённом месте. Если они совпадают, Chef Infra Client не перескачает файл. Использование локальной контрольной суммы для сравнения требует, чтобы локальная контрольная сумма была верной.
Желаемый подход зависит от желаемого рабочего процесса. Например, если узел требует нового файла каждый день, использование подхода с контрольной суммой потребует обновления и/или проверки локальной контрольной суммы каждый день, чтобы убедиться, что локальная контрольная сумма верна. Использование условного запроса GET в этом случае значительно упростит управление, необходимое для обеспечения точного обновления файлов.
Доступ к удалённому пути UNC на Windows
Ресурс remote_file на Windows поддерживает доступ к файлам из удалённой общей папки SMB/CIFS. Имя файла должно быть указано в свойстве source как путь UNC, например, \myserver\myshare\mydirectory\myfile.txt. Это позволяет получить доступ к файлу по этому пути, даже если процесс Chef Infra Client не имеет разрешений на доступ к файлу. Данные для аутентификации на удалённой системе можно указать с помощью свойств remote_user, remote_domain и remote_password, когда пользователь, под которым выполняется Chef Infra Client, не имеет доступа к удалённому файлу. Подробные сведения о параметрах см. в разделе «Свойства».
Примечание: Это в основном для доступа к удалённым файлам, когда пользователь, под которым выполняется Chef Infra Client, не имеет достаточных прав доступа, и необходимо указать альтернативные учетные данные. Если пользователь уже имеет доступ, указывать учетные данные не нужно. В случае, когда локальная и удалённая системы находятся в одной домене, часто не нужно указывать свойства remote_user и remote_password, поскольку пользователь может уже иметь доступ к удалённой общей папке.
Примеры:
Доступ к файлу от учётной записи другого домена:
remote_file 'E:/domain_test.txt' do
source '\\myserver\myshare\mydirectory\myfile.txt'
remote_domain 'domain'
remote_user 'username'
remote_password 'password'
end
ИЛИ
remote_file 'E:/domain_test.txt' do
source '\\myserver\myshare\mydirectory\myfile.txt'
remote_user 'domain\username'
remote_password 'password'
end
Доступ к файлу с использованием локальной учётной записи на удалённой машине:
remote_file 'E:/domain_test.txt' do
source '\\myserver\myshare\mydirectory\myfile.txt'
remote_domain '.'
remote_user 'username'
remote_password 'password'
end
ИЛИ
remote_file 'E:/domain_test.txt' do
source '\\myserver\myshare\mydirectory\myfile.txt'
remote_user '.\username'
remote_password 'password'
end
Примеры
В следующих примерах показаны различные подходы к использованию ресурса remote_file в рецептах:
Загрузка файла без проверки контрольной суммы:
remote_file '/tmp/remote.txt' do
source 'https://example.org/remote.txt'
end
Загрузка файла с контрольной суммой для проверки:
remote_file '/tmp/test_file' do
source 'http://www.example.com/tempfiles/test_file'
mode '0755'
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
end
Загрузка файла только если он ещё не присутствует:
remote_file '/tmp/remote.txt' do
source 'https://example.org/remote.txt'
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
action :create_if_missing
end
Использование HTTP Basic Authentication в заголовках:
remote_file '/tmp/remote.txt' do
source 'https://example.org/remote.txt'
headers('Authorization' => "Basic #{Base64.encode64("USERNAME_VALUE:PASSWORD_VALUE").delete("\n")}")
checksum '3a7dac00b1' # A SHA256 (or portion thereof) of the file.
action :create_if_missing
end
Загрузка файла в каталог кэша файлов Chef для выполнения:
remote_file '#{Chef::Config['file_cache_path']}/install.sh' do
source 'https://example.org/install.sh'
action :create_if_missing
end
execute '#{Chef::Config['file_cache_path']}/install.sh'
Указание расширенных параметров HTTP-соединения, включая параметры Net::HTTP (nethttp):
remote_file '/tmp/remote.txt' do
source 'https://example.org/remote.txt'
http_options({
http_retry_delay: 0,
http_retry_count: 0,
keepalives: false,
nethttp: {
continue_timeout: 5,
max_retries: 5,
read_timeout: 5,
write_timeout: 5,
ssl_timeout: 5,
},
})
end
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/resources/remote_file/