意識を低く保ったまま、定型作業を自動化する話です。 ※どうも言葉足らずで誤解させてしまっているようなので補足を書きました。ご覧ください http://qiita.com/greenspa/items/fff535d2ae5da36e36feRead less
![意識の低い自動化](https://cdn-ak-scissors.b.st-hatena.com/image/square/cd632640922fcc7055a4c5894ef08330ab623bb9/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Facventcal2014fabriclt-141206103534-conversion-gate01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
意識レベルを低く保ったまま自動化する話 世の中にはChefやらAnsibleやらPuppetやらと様々な自動化ツールがあって、 意識の高いはてな民は日々「Chef-soloはオワコン、いまやChef-zeroの時代」 「Ansibleなら対象サーバへの事前準備が不要、時代はAnsible」といった不毛な会話を繰り広げていると聞く。 「モダンなエンジニアは全員Chefを使いこなしているものだ」みたいな空気すらある。 なるほど、自動化ツールの学習は興味深いし楽しい。 大規模なサーバ群が次々と自動的にセットアップされてゆく様子は感動すら覚える。 が、私がやりたいことはリモートサーバのログを消したいだけなんだ、コマンド2つで済む内容なんだ・・・というときにはちと大仰すぎる。 「鶏を割くに焉んぞ牛刀を用いん」とはよく言ったものである。 シェルスクリプトで済むような内容、特に冪等性が必要ない場面、日常
Backlog ではユーザのみなさまに安定して Backlog をご利用いただけるよう 定期的にサーバやストレージの増強などのメンテナンスを行っています。 そして気付けば現在では数十台のホストで構成されるサービスとなっています。 さて、それだけのホストを運用していると、例えばアプリケーションを配備したり、 ミドルウェアを再起動するのも手動で行うには限界があります。 こういった作業に対して Backlog では Fabric を利用しています。 Fabric の魅力の一つはそのシンプルさです。例えばリモートホストに接続してコマンドを実行するには、以下のようなタスクを定義し、 @task def simple(): """ show uname -a """ run('uname -a') fab コマンドで以下のように呼び出すだけです。 $ fab simple [default] Exec
python製の実行ツールなのです。 javaとbashしか書けない私ですが、とうとうFabricの実践投入を進め始めたので、記事を書いてみようと思います。目標は「デプロイスクリプトに一切bashを使わない」です。 Fabricとは? FabricをCentOSにインストール 依存ライブラリのインストール python2.7のインストール python2.7のバイナリのパスを通す easy_install-2.7のインストール fabricのインストール fabricのバージョンを確認 fabricを実行してみる test.py test.pyを実行 Fabricの基本的な使い方を学ぶ 対象ホスト・ID・PASSの指定方法 fabコマンドの引数で指定する *.pyでenvで指定する sshする sudoでsshする SFTPする(ファイルを送る) SFTPする(ファイルを取得する) コマン
随分前から、勉強がてら個人でちょこちょこwebサイト作ってる。デプロイはjarファイルのコピーだけとは言え、毎回手動でdeployとサービス再起動をするのはさすがに面倒になってきたので、デプロイを自動化するツールを導入する事にした。 環境等 Play! framework 2.2 web(app)、DB、バッチでサーバーが分かれている デプロイ先はいずれもLinux ローカル開発環境はOS X Mavericks (10.9) Fabric 1.8.1を使用 最初Capistranoにしようとしたがやめた 仕事先のプロジェクトで使っているCapistranoを最初使おうとした。でも、Capistranoは少し試したものの以下の理由で止めた。(Ruby on Railsの場合はCapistranoが一番良い選択肢だとは思うけど。) 最新バージョンのCapistrano 3は、ドキュメントが非
Python版のCapistranoと言われて久しいFabricだけど、ドキュメント通りにやっても全く動かなかった経験があるのでずっとスルーしてきた。http://pypi.python.org/pypi/Fabric/0.9rc1http://docs.fabfile.org/0.9/PyPIに上がっている0.9というバージョンは、まずまず動くので検討する価値がある。インストールはいつも通り、 $ pip install Fabric 基本的なことFabricをインストールするとfabというスクリプトがインストールされるので、 $ fab -H localhost -f fabfile.py command> のようにして実行する。fabfile.pyは設定ファイルの名前だが、fabfile.pyという名前で設定ファイルを保存しておけば省略できる。-Hオプションはホスト名の指定。オプショ
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
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
サーバ設定作業は面倒で間違いを犯しやすいため、Chef/Puppetなどのツールで自動化したいと考えている方は多いと思います。 私もそのような理由からChef(-solo)を習得しようと試行錯誤していました。 その結果、ある程度は動くようになったものの次のような問題があると思いました。 学習に時間がかかる 私は正直、今でもどのファイルに何を書くのかよく分かってないです。 幾分か簡単だと言われるchef-soloでも公式サイトのドキュメントだけではよく理解出来ませんでした。 また、バージョンによる差異なのか目的が異なるのか分かりませんが、ブログ記事を参考にしようとすると十人十色でどれが私に合った手順なのかわかりませんでした。 例え最終的に理解できたとしても、私やあなたが何日もかけて理解できないことはチームのメンバーも理解するのは難しいと思います。 対象サーバにインストールする必要がある Ch
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く