Organizations

2 results for Fabric
  • 先日の記事に引き続き、リモートでシェルスクリプトを実行するのに、今回はFabricを使う話。 FabricについてはFabricをちょっと試してみた話からたまに複数台のサーバーにオペレーションをしたい時に使うようになった。サクッと使うのにとても便利だ。 今回はリモートサーバーにあるシェルスクリプトをFabricで実行する際に、引数を予めfabfileに書いておきたい場合の記述方法を書いておく。 単純にググってみてもなんだかenvの話ばかりであんまりそれっぽいのが出てこず、ちょいと悩んでしまったので。 例えば、下記のようなシェルスクリプトがあったとする。 [code] #!/bin/bash echo $1 $2 [/code] ここの$1と$2をfabfileのタスクで、下記のように書いても良い場合はそれで良いと思う。 [code] def testshell(): run("/bin/bash test.sh HOGE POYO") [/code] ただ、HOGEとPOYOを別のタスクでも使いまわしたいなぁ〜ってことも無きにしもあらずだと思う。 そんな場合は、定数として切り出したいよねとは誰しもが考えると思う。 前述の通り、最初はenvのことばかりでちょっと違うやんって思ってたけど、公式サイトを見直して5回目くらいにちゃんと書かれていた。 結局はenvとおなじなのだけど、下記のように記述することができる。 [code] VAR1=HOGE def testshell(): run("/bin/bash test.sh %s" % VAR1 ) [/code] また、複数書くときは、括弧で閉じてカンマ区切りで連続してかけばOKだった。 [code] VAR1=HOGE VAR2=POYO def testshell(): run("/bin/bash test.sh %s %s" % (VAR1, VAR2)) [/code] これであらかじめ設定しておいた定数を使い回しできるようになった。 また一つFabricが便利だと思った。
    Fabric Python Created Wed, 24 Aug 2016 14:49:10 +0000
  • こんにちは、いなむーです。 最近、サーバーオペレーションをなんとか楽にできないかなぁと考えながら、日々を過ごしています。 プログラム書ける人であれば、独自に作ってみるのもありだと思いますし、実際作られている方は多々いると思います。 私としては、とにかくさくっとワンライナーとかを流せたらなぁと思い、OSSで既にあればそちらを使用するのが楽ですので、色々探してみた末にFabricに行き着きました。 もともと前職でAnsibleで簡単な構成管理をしていたのでAnsibleにしようか迷ったのですが、いくつかのブログを読んでみるとFabricだともう少し簡単に使えそうに感じたのと、あまり触ったことのないツールだったのでためしてみることしました。 試した環境はこちら。 [code] $ fab –version Fabric 1.10.2 Paramiko 1.16.0 MacOS10.11 [/code] Fabricのインストール方法はいくつかあるようです。情報が古いかもですが、参考までに私が実際に試した方法を載せておきます。 [blogcard url=http://wiki.inamuu.com/index.php?Fabric%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB] 実際に試してみる 下記のようなfabfile.pyを書いてみました。 [code] from fabric.api import * def ipcheck(): sudo(“cat /var/log/httpd/access.log | awk ‘{print $1}’ | sort | uniq -c | sort -n | tail -10”) def uricheck(): sudo(‘cat /var/log/httpd/access.log | awk ’$9 !~ “200|30*” {print $11}’ | sort | uniq -c | sort’) def all(): ipcheck() uricheck() [/code] ログのパスは恐らく変数で引数からもってこれそうですが、とりあえずはこんな感じです。 ipcheckだけ実行してみます。
    Fabric サーバーオペレーション Created Mon, 02 May 2016 14:00:53 +0000