問題
$ cap hoge ROLES=app HOSTS=app-01,app-02,app-03
としたときに、各ホストに、ホスト名をファイル名にしたファイルをtouchするようなタスク hoge を記述せよ。
ただし、/etc/hostnameを参照してはならない。
こたえ
task :hoge do run "touch $CAPISTRANO:HOST$" end
$CAPISTRANO:HOST$ はcapistranoが内部的に使ってるプレースホルダなので、ドキュメントにも無いし、今後サポートされるかは不明。
結論
可能なら/etc/hostnameを配布しましょう
とはいいつつもクラウドだとホスト名けっこう困るよね
参考
Getting the currently running host name in Capistrano | Code for Concinnity
@bongole さん情報ありがとうございます!