意識レベルを低く保ったまま自動化する話 世の中にはChefやらAnsibleやらPuppetやらと様々な自動化ツールがあって、 意識の高いはてな民は日々「Chef-soloはオワコン、いまやChef-zeroの時代」 「Ansibleなら対象サーバへの事前準備が不要、時代はAnsible」といった不毛な会話を繰り広げていると聞く。 「モダンなエンジニアは全員Chefを使いこなしているものだ」みたいな空気すらある。 なるほど、自動化ツールの学習は興味深いし楽しい。 大規模なサーバ群が次々と自動的にセットアップされてゆく様子は感動すら覚える。 が、私がやりたいことはリモートサーバのログを消したいだけなんだ、コマンド2つで済む内容なんだ・・・というときにはちと大仰すぎる。 「鶏を割くに焉んぞ牛刀を用いん」とはよく言ったものである。 シェルスクリプトで済むような内容、特に冪等性が必要ない場面、日常
cuisineとは cuisineは、fabricに冪等性を授けるライブラリです。 冪等性とは、1回実行しても複数回実行しても同じ結果になる特性のことです。インフラ界隈で言うと、ChefやPuppet、Ansibleなどのツールが冪等性を持っています。つまり、これらのツールは1回実行しても複数回実行してもサーバが同じ状態になる特性を持っています。 しかしながら、fabricは冪等性がないため実行時の設定状態に配慮しなければ、複数回実行するとエラーになります。例えば、ユーザを追加するスクリプトを書いた場合、1回目の実行は上手く追加されますが、2回目はすでにユーザが存在するためエラーになってしまいます。 サーバの初期設定にfabricを使っていましたが、初期設定しか意識せずにスクリプトを書いていたので、ちょっとした変更や修正でも再実行できなくて困っていました。いまさら、ChefやPuppet、
The document summarizes name changes to SAP Cloud Platform offerings as part of SAP's One Platform strategy. Key points: - SAP Cloud Platform has been retired and replaced by SAP Business Technology Platform (SAP BTP), which includes solutions for database/data, analytics, application development/integration, and intelligent technologies. - SAP Cloud Platform services are now organized into the SA
Cuisine is a task automation tool written in Python that provides a platform neutral abstraction over your operating system. It is designed as a simple flat API to interact with one or more servers, making it easy to do remote scripting piloted by Python. FAQ Why should I use Cuisine? Here are a few reasons why you would use Cuisine: You prefer to use Python rather than shell scripts for automatio
I need to get fabric to set its hosts list by opening and reading a file to get the hosts. Setting it this way allows me to have a huge list of hosts without needing to edit my fabfile for this data each time. I tried this: def set_hosts(): env.hosts = [line.split(',') for line in open("host_file")] def uname(): run("uname -a") and def set_hosts(): env.hosts = open('hosts_file', 'r').readlines def
tomotaka_ito さんの Python - fabricで高速なファイル転送 - Qiita でもいいのだけど、extra_optsで設定した方が見通しがいいと思うのです。 Fabricのrsync_projectのextra_optsでは、メソッドの引数で指定できないrsyncコマンドの引数を指定することができます。 --rsync-pathは転送先で利用するrsyncコマンドを指定することが可能で、たとえば、複数バージョンのrsyncを利用するなどの場合に指定することができます(そんなことってあるのかな???)。また、ここで、当該ユーザでのsudoの権限をつけた状態でsudo rsyncを指定すれば、転送先ではsudo経由のroot権限で送ることが可能になるわけです。 これはなかなか、Fabric でやる場合に限らず、便利です。 from fabric.contrib.proj
Backlog ではユーザのみなさまに安定して Backlog をご利用いただけるよう 定期的にサーバやストレージの増強などのメンテナンスを行っています。 そして気付けば現在では数十台のホストで構成されるサービスとなっています。 さて、それだけのホストを運用していると、例えばアプリケーションを配備したり、 ミドルウェアを再起動するのも手動で行うには限界があります。 こういった作業に対して Backlog では Fabric を利用しています。 Fabric の魅力の一つはそのシンプルさです。例えばリモートホストに接続してコマンドを実行するには、以下のようなタスクを定義し、 @task def simple(): """ show uname -a """ run('uname -a') fab コマンドで以下のように呼び出すだけです。 $ fab simple [default] Exec
Invoke は簡単に言えばMakeやRake的なものです。 まだベータ的な感じですが、今後 Fabric にも 取り入れられていくみたい です。 同じような用途に pynt とかもあります。今日はさわりだけ。 Usage 以下のようなMakefileがあったとして、Invoke用に置き換えてみます。 all: python setup.py build .PHONY: test test: nosetests example: make clean; easy_install -ZU . cd examples && python store.py && python search.py && python remove_and_search.py pypireg: python setup.py register python setup.py sdist upload clean:
こんにちは。CTOの馬場です。 みんな大好きFabricのTipsです。 Welcome to Fabric! -- Fabric documentation よくデプロイツールとして紹介されますが、 自動化のためのPython+SSH+コマンド実行フレームワークとして柔軟に使えて超便利です。 基本的には 手元でのコマンド実行 SSHごしのリモートサーバでのコマンド実行 SSHごしのリモートサーバでsudoしてコマンド実行 ができるツールなのですが、使い方の例を紹介します。 間違いなどあればお近くのハートビーツ社員か @netmarkjp に教えていただけると嬉しいです。 Python 2.7.10 + Fabric 1.10.2 + Paramiko 1.15.2で動作確認しました。 複数のサーバに対して同じユーザ・パスワードでログインする ユーザ名やパスワードを一括指定できます。 鍵認
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く