Я застрял в ситуации, когда я создал файл templates/test.sh.erb со следующим содержимым:
#!/bin/bash
ls -ltr <%= "#{tomcat_home}/instance1/bin" %>
ls -ltr <%= "#{tomcat_home}/instance1/conf" %>
Для этого erb-файла я хотел передать "tomcat_home", который может быть либо "/opt/tomcat", либо "/opt/apacheTomcat". Эти данные я анализирую, используя условие if else, которое возвращает мне кота домой по одному из этих путей.
eg: tomcat_home="/opt/tomcat"
Я хотел создать файл test.sh в папке /tmp на сервере, где я хотел динамически заменять переменную tomcat_home каждый раз, когда будет создаваться файл test.sh. логика ресурса шаблона:
template "/tmp/test.sh" do
source 'test.sh.erb' # <-- this is your directory in files/default/local_directory
owner 'tomcat'
group 'tomcat'
mode '0755'
action :create
end
Желаемый результат, который я ожидаю при запуске ресурса шаблона:
#!/bin/bash
ls -ltr /opt/tomcat/instance1/bin
ls -ltr /opt/tomcat/instance1/conf
Спасибо Сешадри. Это сработало. У меня есть еще одна проблема, когда я запускаю сценарий оболочки, и когда я запускаю его вручную, я получаю код выхода как 4, но когда я запускаю его с помощью bash resorce, его исполняемый сценарий, но выдает ошибку как ">>>> Вызвано Mixlib:: ShellOut::ShellCommandFailed: ожидалось, что процесс завершится с [0], но получил '4'". Любая помощь будет оценена по достоинству.
Поскольку команда завершается с ненулевым кодом, она считается неудачной командой. Не возражаете ли вы создать новый вопрос с необходимыми деталями?