Чтобы поместить два сертификата в коробку и затем добавить их в кошелек, я использовал следующий код:
RDS_CA_CERTS = %w[ cert1.cer cert2.cer]
RDS_CA_CERTS.each do |rds_ca_cert|
cookbook_file "/oracle_home/ssl_wallet/#{rds_ca_cert}" do
source "certs/#{rds_ca_cert}"
owner 'oracle'
group 'dba'
mode '0644'
action :create
notifies :run, 'execute[import_rds_cert]', :immediately
end
execute 'import_rds_cert' do
command "orapki wallet add -wallet /oracle_home/ssl_wallet -trusted_cert -cert /oracle_home/ssl_wallet/#{rds_ca_cert} -auto_login_only"
user 'oracle'
group 'dba'
umask '0025'
action :nothing
end
end
Я ожидал, что приведенный выше код принесет один файл cert1.cer и вызовет выполнение для того же. Тогда это принесет в cert2.cer и с выполнением триггера. Таким образом, только при добавлении файла будет выполнено выполнение (ворота для выполнения)
Но в TK наблюдаемое поведение немного странно для меня. Он приносит файл cert1.cer, а затем, когда запускает его выполнение, происходит сбой, говоря, что cert2.cer не существует. Это может произойти, только если l oop перешел к следующему файлу до того, как было выполнено выполнение.
Не могли бы вы объяснить поведение? Какой был бы лучше альтернативный подход?