意識を低く保ったまま、定型作業を自動化する話です。 ※どうも言葉足らずで誤解させてしまっているようなので補足を書きました。ご覧ください http://qiita.com/greenspa/items/fff535d2ae5da36e36fe

2014/04/20 20:49 ※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 Provisioning や Deployment にプログラミングスキルが必要になりつつあるようですが、皆様いかがお過ごしでしょうか。 Provisioning には、 Chef や Ansible が、 Deployment には capistrano や Fabric といったように使い分けられている方が多いようですが、私はずぼらなので Fabric を愛用しています。 Ansibleおしい! 環境によって違う変数とか、気持ちよく持たせたいじゃないですか。 Ansibleはいい感じにできます。 Provisioning とか Deployment のために、あらかじめ別の方法で agent 入れたりしたくないじゃないですか。 Ansibleはいい感じにできま
Small example how fabric deploy configuration using template files. To start up with simple configuration deployment, create 2 files fabfile.py and template/test_templatate. Here is the content of fabfile.py with only one task upload_conf: from fabric.api import * from fabric.contrib import * env.hosts = ['localhost'] env.user = 'vagrant' env.password = 'vagrant' def upload_conf(): env.some_test_v
GUNICORN=/usr/bin/gunicorn ROOT=/your/app/path PID=/var/run/gunicorn/your.pid APP=run:app if [ -f $PID ]; then rm $PID; fi cd $ROOT source venv/bin/activate exec $GUNICORN -c $ROOT/gunicorn.conf.py –pid=$PID $APP #coding: utf-8 from fabric.api import run,env,local,settings from fabric.operations import sudo from fabric.context_managers import cd import os import subprocess from fabric.api import e
Python製のCapistrano的なツールであるFabricを少しだけ使ってみた。けっこう機能が多いので自分が使いそうなところをまとめておく。バージョンは1.7.0。 Fabricの基本的な機能下記で任意のコマンドが実行可能$ fab -H localhost -- uptime またはfabfile.pyにタスクを書くfrom fabric.api import run def uptime(): run('uptime') $ fab -H host1,host2 uptime $ fab --list でfabfile.pyに定義されているタスク一覧を表示する。 ホストの定義はenv.hosts または env.roledefsで。env.hosts = [ 'host1', 'host2' ] # or env.roledefs = { 'web': ['host1', 'ho
by @dekokun on 2013/04/07 19:30 Tagged as: Python, Fabric, デプロイツール. 2013/04/09 追記 意外と反響があるようなので、Tips追加しました。 2013/05/10 追記 並列実行について調べたのでついでに追記 「次のプロダクトはシンプルなデプロイツールだと噂のCinnamonでも使ってみるかー」と言っていたら、「Cinnamonは使ってるユーザ数が少なそうだし同様のことが行えるFabricのほうがいいんじゃないですかね。」というツッコミをいただき、今回はPerlのプロジェクトでもないためFabricを使用することにしました。 初めて触るFabric、やはり初学者にはいろいろとよくわからない部分があったため、はまって解決したことや便利なTipsなどをつらつらと列挙していきます。 なお、以下情報はPython2.7及びF
fabricのみに依存しています。cuisine, fabtoolsは実装の参考にしていますが、 依存はしていません。 使い方¶ fabfile.pyを以下のように書きます。 from fabric.api import env, task from envassert import file, process, package, user, group, port, cron, detect env.use_ssh_config = True @task def check(): env.platform_family = detect.detect() assert file.is_exists("/etc/hosts") assert file.is_file("/etc/hosts") assert file.is_dir("/tmp/") assert file.dir_exis
Fabric は、Python 製のデプロイ・システム管理ツールです。 最近、構築や運用を自動化するための様々なツールが出てきています。 構成管理ツールの Puppet や Chef が有名ですが、使うまでに覚えることが多いのが欠点です。 しかし、Fabric は非常にシンプルなツールで、今からすぐに使うことができます。 Fabric はデプロイ・システム管理ツールで、類似のツールとして Ruby 製の Capistrano があります。 Fabric の最大の特長は、シェルスクリプトを書き慣れた人がいきなり利用できるところです。 シェルスクリプトとしてまとめていたコマンドをそのまま run() メソッドや sudo() メソッドで囲むだけで、使うことができます。 シェルスクリプトを使っていていると、いくつもの問題に遭遇します。 名前空間の管理 変数の扱い 複雑なデータ構造がない(せいぜい
Chefに挫折したあなたへ。Fabricのすすめ という記事を読んだので、呼ばれてもいないのに勝手に返事を書いてみます。 追記(3/13 10:00): タイトルを typo していたようなので訂正しました。 ちなみに僕のポジションとしては chef 推進派です。 仕事の空き時間や自分の時間で、開発環境の自動化を模索する趣味 chef 使いです。 これまで他の自動化ツールはこれまでほとんど使っておらず、 ミスや手順書のボリューム削減のためにシェルスクリプト化を進めるぐらいでした。 ちなみに、chef を使いはじめる際に、比較検討のために puppet や fabric などのいくつかのツールについて ドキュメントやブログを読みあさった経験はあります。 あと、chef と組み合わせて使うために capistrano を最近使っています。 学習に時間がかかる 同意します。chef のもっぱらの
サーバ設定作業は面倒で間違いを犯しやすいため、Chef/Puppetなどのツールで自動化したいと考えている方は多いと思います。 私もそのような理由からChef(-solo)を習得しようと試行錯誤していました。 その結果、ある程度は動くようになったものの次のような問題があると思いました。 学習に時間がかかる 私は正直、今でもどのファイルに何を書くのかよく分かってないです。 幾分か簡単だと言われるchef-soloでも公式サイトのドキュメントだけではよく理解出来ませんでした。 また、バージョンによる差異なのか目的が異なるのか分かりませんが、ブログ記事を参考にしようとすると十人十色でどれが私に合った手順なのかわかりませんでした。 例え最終的に理解できたとしても、私やあなたが何日もかけて理解できないことはチームのメンバーも理解するのは難しいと思います。 対象サーバにインストールする必要がある Ch
Fabric は ssh 経由でリモートをゴニョゴニョするツールなので、デプロイツールとして見られがちですが、 cuisine など冪等な操作をサポートするライブラリを組み合わせれば手軽な構成管理ツールになります。 chef-solo に比べてターゲットとなるマシンへのインストールが不要なので vagrant と EC2 の Amazon AMI で同じように home ディレクトリを構築するようなスクリプトを書くことも可能です。 また fabtools を使えば、簡単に vagrant を対象にすることができます。 インストール: $ pip install fabric fabtool cuisine fabfile.py を作ります (サンプル): 使い方: $ fab vagrant package_upgrade setup_devtools # 開発マシンにいつもインストールし
Python, fabric, buildout | 10:03わたしはインフラとかOSのインストールがとても苦手で、仕事で新しい案件にアサインされる度に仮想環境を作って諸々インストールするのが面倒で嫌いです。例えばnginxのインストール・セットアップをしようと思ったとき、やり方をぐぐって手順書としてメモします。しかし、手順書を見ながらコマンドをコピペすること自体やめてしまいたいと思う事が多いです。環境構築手順をレシピとして作っておくnginxのインストールならば nginx_install.sh 、セットアップは nginx_setup.sh みたいに、環境構築手順をシェルに書いておいて使い回し可能にできたら楽なんじゃないかと思います。こういうものをレシピを呼ぶらしいです。Pythonで開発するのだから、レシピもPythonで書ければ楽でしょう。具体的なイメージとしては、レシピを書いた
最近fabricを使っていろいろ作業しています。 で、踏み台サーバごしにアクセスする必要があるマシンがあるのですが、fabricの中でトンネルを作って作業したいなと思いました、ちょっと調べてみると https://gist.github.com/856179 にcodeがありましたので、それを利用させてもらいました。ありがとうございます。 具体的には以下のような感じにしました。 #!/usr/bin/env python # -*- coding: utf-8 -*- from fabric.api import run, env # 事前にtunnel.pyを https://gist.github.com/856179 から入手 from tunnel import make_tunnel def staging(): env.hosts = ['example1'] def get_
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く