タグ

ブックマーク / apatheia.info (11)

  • Trickleを使って帯域制限をする - aptheia.info

    ネットワーク経由で大量のデータをやりとりしたいが、メインのサービスには影響を与えたくないという場合がよくある。rsyncscp など、大きなファイルの転送を考慮されたコマンドではネットワーク帯域を制限するオプションが用意されていることも多いが、自作のツールなどに帯域制限を実装するとなるとかなり面倒くさいことになる。 Linux で帯域制限をしたい場合、tc や cgroup を使う方法がよく知られている。ただ、「あるコマンドにネットワークが占領されないように穏やかに実行したい」というニーズに対しては大げさで、またオプションが難解だったり管理権限が必要だったりといったことから二の足を踏む感じのものだった。もっと普段使いに適したツールがないものかと探していたところ、こういったシーンではTricleがかなり有効だと言うことがわかった。 インストール Debian, Ubuntu なら公式からパ

  • rundeckをセットアップして、jenkins上のjava成果物をデプロイする - aptheia.info

    rundeck でjenkins上の成果物をデプロイしよう、という話。 rundeck について 公式サイト ITオペレーションのコンサルやってるDTO Solution(Depops関連の資料とかでよく会社名は見かけますね)が作っているデプロイ用のツール。元々はControlTierっていう管理ツールがあって、そこから分家した。ControlTierはサーバー/クライアントモデルだけど、サーバー側しか用意しなくていいRundeckのほうがお手軽度高い。 複数のサーバーを対象に状態を変更するのが目的で、capistranoとかfabricとかと同じジャンル。GUIで操作するのが特徴なので、webistrano とかに近い。 GUI(笑)みたいに思うかもしれないけど、画面上から履歴が確認できたり、ブラウザがあればどこからでもデプロイ出来るのって、運用の敷居下げるのに貢献してくれると思う。 r

  • yum のパッケージキャッシュについて - aptheia.info

    /etc/yum.confでkeepcache=1にしておくと、インストールしたパッケージがキャッシュされるようになる。これが無効化された状態だと、パッケージアップグレード時に問題が起きても元に戻せなくなるので有効化しておいた方がいい。 あるパッケージについて、どのバージョンが利用可能な状態かは以下で確認できる。 $ sudo yum --showduplicates list パッケージ名 RHEL なら過去のバージョンまですべて手に入るけど、CentOS だとOSリリース時のバージョンと最新版しか手に入らない模様。リポジトリ上なりキャッシュなりで過去のバージョンが手に入るのであれば、yum install や yum update は以下の手順でロールバックが行える。 # yum の利用履歴を確認 $ sudo yum history # 履歴から詳細を確認 # 未引数なら直近、引数あ

  • Immutable Infrastracture について - aptheia.info

    ここ最近話題に上がることが多い Immutable Infrastracture と、その他仮想環境周りについての雑感。 Immutable Server や Immutable Infrastracture っていう単語がいろんなところで目に入るようになった。とくに Chad Fowler がブログで取り上げたり、Food Fight に出たり して、世間でも関心が高まった感じがある。 プログラムを書く人にはご存じの通り、この Immutable っていうのは状態が変更出来ないことを指している。Immutable な Infrastracture っていうのは、ざっくり言うと「運用中のサーバーに変更を加えない」っていうアプローチでサーバーを管理しているスタイルのこと。 (ファイルシステムを読み取り専用にする、とかそういう話じゃなくて、あくまでそういう方針でやろうっていう話) サーバーの設

  • 仮想環境構築に docker を使う - aptheia.info

    ちょっと前から Docker を使っているので、その話。 Dockr について Docker は dotcloud がオープンソースで公開している、コンテナ技術による仮想化ソフトウェア。 以下のテクノロジーベースにしている: LXC 前にも書いた。Xen とか VirtualBOX みたいにホスト内に仮想マシンを立ち上げるんじゃなくて、ホスト内の隔離された環境で仮想マシンを動かす技術。物理マシンをシミュレーションしているんじゃないってことは、VPS とか EC2 とかの仮想マシン上でも問題なく動くし、マシンを起動するプロセスが不要となるので、一瞬で使い始められるというメリットにつながっている。 AUFS UnionFS(ディレクトリを重ね合わせることができる)の実装の一つ。元の仮想マシンイメージを書き換えないで、更新が発生した部分は別の場所に書き込んでいくようになっている。これにより、仮想

  • fpm で Mesos の RPM を作るまで - aptheia.info

    Mesos をインストールするとき各マシンでビルドはしんどいので、fpm で Mesos の RPM を作ってインストールしている。ビルドからパッケージ作成までの作業ログを残しておく。 fpmRuby の gem や Node.js の npm などのプログラミング言語のライブラリ、あるいは直接ディレクトリから RPM やら Deb やらのパッケージを作成するソフトウェア。 Mesos はクラスタ構成のリソースをよしなに管理するソフトウェア。 今回の話では具体的な使い方までは触れない 手順 作業環境は CentOS 6.4 x86_64。 Ruby をインストール。 sudo yum install ruby.x86_64 rubygems ruby-devel.x86_64 rpm-build.x86_64 fpm をインストール。 sudo gem install fpm --n

  • サブコマンドを sub で処理する - aptheia.info

    sub は 37signals が公開しているスクリプト群。サブコマンド付きのコマンドを作りたいとき、補完やヘルプメッセージなどの便利な機能を提供してくれる。 使い方 以下の簡単なコマンドを作って、動作を確認してみることにする。 ex. browse safari http://google.com/ コマンド browse にサブコマンドでブラウザ(safari, chrome, opera, ...)を与え、 最後の引数で渡された URL が開く。URL が渡されなければ、ブラウザの起動のみ行う。 なお、確認はすべて Mac OS X 10.8 上 の zsh で行っている。 初期化 $ git clone git://github.com/37signals/sub.git browse $ cd browse $ ./prepare.sh browse # 以下のメッセージが表示さ

  • FluentdのデータをGraphiteに出力するときのTips - aptheia.info

    fluent-plugin-graphite 利用時のメモ。 Ops界隈での可視化というと、ここ何年かはGraphiteでグラフを作ってそれを他のツールで表示する、みたいなのが多い。Fluentdのデータを可視化したい場合はGrowthForecastが使われることが多いけど、Graphite使ってみるといろんなツールと組み合わせられておもしろい。 Fluentd から Graphite へデータを送るのは Fluent-plugin-graphite を使えば簡単に実現できそうなんだけど、プラグイン側のインターフェース(:key や :count といったキーが必要)に合わせて入力のデータを整形する必要がある。 こういった調整は、out_map を使うことで実現できる。 <source> type tail format apache path /var/log/httpd/access

  • 構成管理ツール Ansible について - aptheia.info

    Ansible というサーバーの設定を管理するツールの説明。いわゆる構成管理 (CM: Configuration Management) にカテゴライズされるもので、Puppet や Chef の親戚みたいなものと考えてもらえればだいたいあってる。 概要 リード開発者は Michael DeHaan で、現職の AnsibleWorks の前は Redhat で Cobbler や Func に携わっていたり、Puppet labs でプロダクトマネージャーしたりしているという経歴の持ち主。 Ansible は Python で書かれている。同じジャンルで Python 製というと Salt が有名。Chef の場合、レシピを書くためには Ruby の知識が必要となってくるけど、Ansible はどんな言語でもモジュールが書けるようになっているので、運用にあたって Python の知識は

  • roundsmanを使ってcapistranoからchef-soloを実行する - aptheia.info

    管理対象のサーバー台数が少ない場合など、chefのサーバーを運用するコストとベネフィットを天秤にかけてみて、ああこれどう考えても労力ペイできないな、でも設定ファイルを手動で管理するのはやだな、といったときに[roundsman](https://g ithub.com/iain/roundsman)を使うといいという話。 roundsmanは、chefのレシピを転送してchef-soloを実行するcapistrano向けライブラリ。アプリケーションのリリースタイミングに併せてインフラ設定の変更が必要になることは往々にしてあるので、capistranoを使ってデプロイとインフラ設定変更を一括適 用できるのは便利だ。 ここでは、Railsアプリを対象にroundsman適用までの作業を簡単にまとめる。 手順 まずは適当なRailsプロジェクトを作るところから。 PROJECT="my_fant

  • さくらのVPSにLXCで仮想環境構築してXtraDB Cluster動かす - apatheia.info

    ほんの数年前までVPSといえばLinode、Slicehostなどの海外のサーバーしか選択肢がなかった。ls を実行しても一呼吸おくほどのレイテンシーがあるような環境で、128MBくらいのメモリを何とかやりくりしてRailsを動かしていたが、現在では月1000円程度で用途によっては手に余るようなスペックが手に入るようになっている。そんなVPSの余ったリソースを使って、仮想環境をたてようというのが今回の目的だ。 LXCは、他の仮想化方式と比べてオーバーヘッドが少なくきびきび動くし、必要であればCPUやメモリの制限をつけることもできる。RPMやDebのパッケージ作成をしたり、Chefのcookbook作成などで独立した環境を手軽に構築したい人には特に有用に思う。また、簡単にネットワークが作れるので、複数台構成のソフトウェアを1台のマシンのなかで動かすことが出来る。今回は動作確認として Perc

  • 1