タグ

fabricに関するglobal-peaceのブックマーク (3)

  • Fabric で rsync する - Memo

    Python のデプロイツールである Fabric を普段から使っている。 で、Fabric で rsync をする場合は以下のように書く。 #!/usr/bin/env python # -*- coding: utf-8 -*- import os from fabric.api import env, run, roles, cd from fabric.contrib import project, console env.user = 'username' env.roledefs = { 'web': ['192.168.1.10', '192.168.1.11', '192.168.1.12'] } @roles('web') def rsync(): project_path = '/path/to/projects' dirname = os.path.dirname l

    Fabric で rsync する - Memo
  • fabfileの構造化 - logiqboard

    fabfile.pyって、task数個までならまあ1ファイルでいいんですが、それ以上増えてくるとスクリプト自体がカオスになって収集がつかなくなります。 更に似たような、けど微妙に違うtaskをいっぱい定義したりすると名前まで酷くなってきます。こんなかんじに。 @roles('lb') def lbserver_deploy(): """ロードバランサーにデプロイする""" ... @roles('app') def appserver_deploy(): """アプリケーションサーバーにデプロイする""" ... @roles('batch') def batchserver_deploy(): """バッチサーバーにデプロイする""" ... こんなファイルメンテする気が起こらないので、なんとか綺麗にしたいと思って調べたところ、fabric1.1から付いたクラスベースのtaskというのを

    fabfileの構造化 - logiqboard
  • Fabric デプロイツールのPythonicな書き方 - Ian Lewis

    Fabric は指定したコマンドを各ホストで実行する実行モデルです。この場合は特にホストの指定がなかったので、全部ローカルで、一回実行することになります。 これは結構つまんないので、当の例を見ましょう。これは最近、仕事で作ったコマンドです。 nginx サーバーでメンテ画面を出すようなコマンドです。 各ロードバランサーで実行します。 from fabric.api import run, cd, abort, require, sudo, env from fabric.decorators import runs_once, roles from fabric.contrib.console import confirm ... @roles('loadbalancers') def start_maintenance(): """ メンテナンス画面に切り替える """ _produc

  • 1