Я использую Amazon Opsworks с Chef 12.
Это обеспечивается встроенным ресурсом deploy (который был удален в chef 14).
Моя проблема с deploy в том, что мне нужен специальный release_slug
В настоящее время путь к релизу выглядит примерно так:
/ srv / www / development / release / 20180706123524
но мне нужен мой идентификатор сборки
/ SRV / WWW / разработка / релизы / 199
Итак, я пытаюсь расширить Deploy и заменить release_slug (20180706123524) своим пользовательским идентификатором.
В источнике chef я вижу, что это именно то, что они делают со своим развертыванием с метками времени: https://github.com/chef/chef/blob/12.5-stable/lib/chef/provider/deploy/timestamped.rb
Здесь я нашел похожий вопрос о стеке https://stackoverflow.com/questions/16114469/how-to-extend-a-lightweight-provider-in-chef#=
Это то, что я имею в / библиотеки в моей кулинарной книге:
deploy_slug.rb:
class Chef
class Resource::DeploySlug < Resource::DeployRevision
def initialize(name, run_context = nil)
super
@resource_name = :deploy_slug
end
end
end
Прежде чем пытаться изменить release_slug, я просто хочу, чтобы развертывание действительно работало с использованием моего пользовательского ресурса.
И в своем рецепте я пытаюсь вызвать его с deploy_slug.
Это ошибка, которую я получаю:
* deploy_slug[/srv/www/development] action deploy
================================================================================
Error executing action `deploy` on resource 'deploy_slug[/srv/www/development]'
================================================================================
Chef::Exceptions::ProviderNotFound
Что мне здесь не хватает?