我正嘗試在廚師中使用cron資源配置cron作業。廚師在cron資源上添加變量
cron "execute_mytask" do
action :create
hour "0"
minute "0"
command '/bin/date >> /var/log/mytask.log;
/usr/bin/php /var/www/mysite/index.php cli/cron mytask "192.168.XXX.YYY"
>> /var/log/mytask.log 2>&1'
end
其中192.168.XXX.YYY是開發和生產環境 之間的不同它可以是一個域名或IP地址。
當我試圖通過添加變量/屬性來改變命令行時,問題出現了。例如,當我修改我的cron進入
command '/bin/date >> /var/log/mytask.log;
/usr/bin/php /var/www/mysite/index.php cli/cron
mytask "#{node["MyApp"]["IPAddress"]}" >> /var/log/mytask.log 2>&1'
end
然後我在我的cron作業得到的是
0 0 * * * /bin/date >> /var/log/mytask.log;
/usr/bin/php /var/www/mysite/index.php cli/cron
mytask "#{node["MyApp"]["IPAddress"]}" >> /var/log/mytask.log 2>&1
,所以我能找到的最好的是用下面的
cron "execute_mytask" do
action :create
minute "*/5"
case node.chef_environment
when 'develop'
command '/bin/date >> /var/log/mytask.log;
/usr/bin/php /var/www/mysite/index.php cli/cron
mytask "192.168.XXX.1" >> /var/log/mytask.log 2>&1'
end
when 'production'
command '/bin/date >> /var/log/mytask.log;
/usr/bin/php /var/www/mysite/index.php cli/cron
mytask "192.168.XXX.2" >> /var/log/mytask.log 2>&1'
end
end
來硬編碼
有沒有辦法在cron資源的命令部分添加變量/屬性?
把\「幫助把雙引號放在雙引號內 –