この部分に何か問題があると思います。
check = %x( cat '/etc/apache2/ports.conf' )
/etc/apache2/ports.conf からコンテンツを取得し、ポート 8581 が既にリッスンされているかどうかを確認したいのですが、これが私のコードです。デプロイ後のキャップ タスクです。
desc "Ports Updation"
task :portsUpdation do
# Editing /etc/apache2/ports.conf
ports_file = "/etc/apache2/ports.conf"
run "#{try_sudo} chmod -R 0777 #{ports_file}"
check = %x( cat '/etc/apache2/ports.conf' )
puts check
unless /Listen 8581/.match check
run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}"
end
run "#{try_sudo} chmod -R 0644 #{ports_file}"
end
この cap タスクを実行すると、変数「check」は常にローカルにある ports.conf を出力します。私が欲しいのは、サーバーからのコンテンツです。
この cap タスクを実行すると、サーバーのパスワードを尋ねられました。cap deploy も試してみました。同じ結果です。pblm は何でしょう。