У кого-нибудь есть опыт/успех, используя драгоценный камень на aws opsworks? Есть хороший рецепт? Могу ли я поместить этот рецепт на отдельный слой и связать один экземпляр с этим дополнительным слоем? Или есть лучший способ сделать это? Благодаря!!!Всякий раз, когда драгоценный камень на aws opsworks
EDIT:
Мы закончили делать это немного по-другому ...
Код:
Не могу опубликовать реальный код, но это так:
в развернуть/before_migrate.rb:
[:schedule].each do |config_name|
Chef::Log.info("Processing config for #{config_name}")
begin
template "#{release_path}/config/#{config_name}.rb" do |_config_file|
variables(
config_name => node[:deploy][:APP_NAME][:config_files][config_name]
)
local true
source "#{release_path}/config/#{config_name}.rb.erb"
end
rescue => e
Chef::Log.error e
raise "Error processing config for #{config_name}: #{e}"
end
end
в развернуть/after_restart.rb:
execute 'start whenever' do
cwd release_path
user node[:deploy][:APP_NAME][:user] || 'deploy'
command 'bundle exec whenever -i APP_NAME'
end
в конфигурации/schedule.rb.erb:
<% schedule = @schedule || {} %>
set :job_template, "bash -l -c 'export PATH=/usr/local/bin:${PATH} && :job'"
job_type :runner, 'cd :path && bundle exec rails runner -e :environment ":task" :output'
job_type :five_runner, 'cd :path && timeout 300 bundle exec rails runner -e :environment ":task" :output'
set :output, 'log/five_minute_job.log'
every 5.minutes, at: <%= schedule[:five_minute_job_minute] || 0 %> do
five_runner 'Model.method'
end
Мы кончались обработки это следующим образом: Добавить значение в стеке json, чтобы указать, какой хост должен запускать каждый раз cron, и по умолчанию rails_app1 Попробуйте привязку развертывания в проекте rails, который запускается всякий раз только на этом хосте. Это ставит cron на первый хост или в зависимости от того, что мы укажем, и довольно легко настроить и управлять. У нас также есть файл erb, который оценивается по расписанию. Rb, чтобы мы могли устанавливать различные параметры, такие как время, когда что-то запускается каждый день или в минуту, когда он запускается каждый час. Этот файл erb также оценивается в методах развертывания. – nroose
Если возможно, не могли бы вы поделиться кодом, пожалуйста? – jwako
Да, пожалуйста, попробуйте, более подробный совет будет потрясающим. –