Subscribed unsubscribe Subscribe Subscribe

ふり返る暇なんて無いね

日々のメモ書きをつらつらと

fabricで現在実行中のhostを取りたい

fabric python

A. env.host を使うと良い。

hostによって配るcrontabが違っていて、レポジトリ的には ${HOSTNAME}.crontab みたいな感じでhost名を含むファイル名で置いてあるときに、どうしたらうまく配れるかなと考えた結果 env.host で実行中のhost名が取れるのでそいつを利用した。

from fabric.api import sudo, env
from fabric.decorators import task

@task
def some_task(project):
    src = "/opt/%s/config/crontab/%s.crontab" % (project, env.host)
    dst = "/etc/cron.d/%s" % project
    sudo("if [ -e $src ];then cp %s %s; fi" % (src, dst))