Vagrant の bridge にホストマシンのデフォルトルートの NIC を自動指定する

VirtualBox on OS X にて Vagrant で複数 VM を起動するとき、public_network を使っていると毎度ブリッジインタフェースの選択が面倒です。 各 VM の起動時に都度選択画面が出るので、全台起動するまでターミナルに張り付いていないといけません。 下記のように固定してしまっても良いのですが、ホストマシンが有線接続な時はそちらにブリッジしたいという欲もあります。 config.vm.network "public_network", bridge: 'en0: Wi-Fi (AirPort)' そんなときは下記のように Vagrantfile 中に一文入れてしまえば良いです。

[syslog-ng] 「特定の送信元 IP・それ以外」のフィルタ設定

久々に syslog-ng を使う機会があったのでメモ。 やりたいこと いくつかの特定の IP は、1 つのログファイルにまとめたい それ以外は、IP 毎にファイルを分割したい たとえば、ネットワーク機器のログは 1 つにまとめ、その他サーバ機器のログは個別に分割したい、というような時。 設定 こんな感じにする source s_remote { tcp(ip(0.0.0.0) port(514)); udp(ip(

[OS X] DHCP で取得した DNS サーバを使いつつ dnsmasq を使う

検証や開発のために OS X ローカルで dnsmasq を使うとき、 リゾルバの向き先を変えるためにいちいちネットワーク環境設定を開くのが面倒 (コマンドでもできるけど) 指定ドメイン名以外は通常通り名前解決したい と思っている人のために。 TL;DR /etc/resolver 配下に指定ドメイン名でファイルを作れば良い。 方法 指定ドメインのリゾルバを変更 設定 $ sudo mkdir /etc/resolver $ sudo chown <USER>:wheel /etc/resolver $ echo 'nameserver 127.

tmux を気軽に使いはじめるために

いままでいろんな人に tmux を進めてきましたが、ターミナルマルチプレクサの使用経験が無い人にとっては、概念を掴むまで、というか、アタッチ・デタッチの操作を覚えるのに抵抗を感じてしまう人が多いように感じます。 というわけで、.bashrc なり .zshrc なりに下記を書いてあげると良いかなと。 function tm() { if [ -n "${1}" ]; then tmux -2 attach-session -t ${1} || \ tmux -2 new-session -s ${1} else tmux

[zabbix] 毎日決まった時刻にアイテムを取得する

毎日決まった時刻にアイテムの値を取りたいときは、下記のような感じで設定を入れると良さそう。 下記は毎朝 AM 06:00 にファイルのタイムスタンプを取得する例。 しばらく動かしてみているけれど、今のところうまく動いている。 アイテムの設定の Flexible intervals (日本語UI: 例外の更新間隔) にて Interval を 0 にすると、指定した期間はデータの更新が行われない。 ※ zabbix 2.2.3 初稿 (Wed, 16 Apr 2014 20:30:14 JST)

portmaster でのインストール時に依存パッケージは pkgng で入れる

FreeBSD 10.0 を使い始め、pkgng の恩恵を預かっているとはいえ、カスタムしたい ports もあります。 その際、(僕は) portmaster を使うことになるのですが、そのパッケージに依存するパッケージは、可能なら pkgng でインストールを行いたいのです。 例えば libav をカスタマイズしたいときは、下記の手順です。 もっといい方法ありそうですが…。 インストールしたい ports の config を行う # cd /usr/ports/multimedia/libav # make

[FreeBSD 10.0-RELEASE] bsdinstall でも自由なパーティションレイアウトで Root on ZFS

あらすじ FreeBSD 10.0 からインストーラで ZFS が選択できるようになりました。 僕の自宅のストレージサーバは、8.2 の頃から Root on ZFS になっていたり、freebsd-update で数回メジャーバージョンを渡ってきていたりするため、そろそろ一度クリーンインストールしてスッキリしたいと思っていました。 早速 Partitioning の項目で ZFS を選択してインストールしたはいいものの、パーティションと ZFS の切り方は下記のようになっていました。 # gpart show -l => 34 209715133 vtbd0

MacBook に nginx でフォワードプロキシを立てておくと何かと便利

閉域ネットワークに設置されたサーバのメンテ中、サーバから外にアクセスしたいなと思いました。 閉じたネットワークに、MBP を有線でつないでいて、MBP からはポータブル Wi-Fi 経由で外に出れる状況です。 ------+------------+--------- 閉域ネットワーク | | +----+----+ | | サーバ | ... | +---------+ | 有線 | +----+----+ | MBP | - - - >> ポータブル Wi-Fi - - - >>

[node.js] ndenv と npm と daemontools

久々のエントリです。 このブログを WordPress から Ghost に乗り換えました。 markdown スラスラ書けて良い…! Ghost は node.js で書かれたアプリです。 今回 node.js 製アプリに触れるのは初めてだったので、セットアップするにあたって、自分なりの tips をまとめてみました。 ndenv でバージョン管理 Ruby, Perl でもそうなのですが、僕は env 系はシステムワイドに配置しています。 インストール等が必要な時は root になって作業します。 # git

シェルスクリプトと同階層のファイルを扱う時

シェルスクリプトの中で、そのスクリプトと同階層のファイルを扱いたい場合、下記のような事をよくやると思う。 #!/bin/sh DIR_BASE=`dirname ${0}` cat ${DIR_BASE}/file1 cat ${DIR_BASE}/file2 ただこのやり方だと、./script.sh のように実行した場合、DIR_BASE には . が入ってしまう。 ひとたびスクリプトの中でディレクトリ移動してしまうと、同階層にもどってこれないので、DIR_BASE は下記のように得た方が良い。 #!/bin/sh DIR_

NSD 4.0.0b1 のゾーンの動的追加・削除を試す

NSD 3 系で悩みだったのが、ゾーンの追加・削除の際に、デーモンをリスタートしないといけない事でした。 僕の会社のコンテンツサーバは、結構な頻度でゾーンの追加・削除があるので、NSD に乗り換え候補にあげつつも、ちょっとなーなんて思っていた所、、、 NSD 4.0.0b1 がリリースされました。 [nsd-users] NSD 4.0.0b1 beta The zone handling allows to addition and removal of zones

トラブル☆しゅーたーず 03 に参加してきた #トラしゅ

8/4 に、トラブル☆しゅーたーず #03 にお邪魔してきました。 いつもと同じく 5-6 名のチームに別れ、障害対応・報告書作成を行いました。 障害の内容は、 オークションサイトに表示される画像と内容がずれている。 レンスポンスが遅い。 というものでした。 #01、#02 ともに参加させていただいていたので、ある程度段取りとか時間の感覚が分かっている面もあるのですが、原因の究明に悩んでいると、あっという間に時間がすぎるものですね…。 トラブル☆しゅーたーず#03読本 - Google Docs 僕はチーム 1 でした。 チーム 1

[Ruby] スレッド数固定で処理を行う

お仕事で、数百台のサーバに対して、多少時間のかかる処理をする必要があった。 1 つずつ実行していては、さすがに日が暮れてしまう。 そうなるとスレッドで並列実行したいが、対象のサーバの分、数百個スレッドを生成すると逆に重くなってしまう。 というわけで、スレッド数に上限を設けて実行した、という話。 雛形はこんな感じ。 #!/usr/bin/ruby -Ku # -*- coding: utf-8 -*- # # 20120619 # thread template # require 'thread' def job(arg) sleep rand(

#qpstudy 2012.05 に参加してきた

05/19 に、qpstudy 2012.05 に参加してきました。 内容は、「エンジニアのためのハードウェア徹底入門」というものでした。 一週間たってしまいましたが、ブログを書くまでが勉強会なので、書きます。 やさぐれギンガさんのアーキテクチャ入門 (@kuwa_tw さん) やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮) コンピュータの 5 大要素である、入力・出力・演算・記憶・制御について、 寸劇を交えながら説明されていました。 ーーー 正直なところ、僕は 5

トラブル☆しゅーたーずに参加してきた #トラしゅ

4/8 に、hbstudy・ncstudy・odstudy の合同勉強会、トラブル☆しゅーたーず に参加してきました。 内容は、 新入社員の山〇君の行ったメンテ後、お客さんから「サイトがおかしい」と連絡があり、トップページは表示されるが、他のページがエラー状態。さあ、直せ! というものでした。 トラブル☆しゅーたーず読本 - Google Docs 全員でこの読本を読み合わせた後、6 ~ 7 名のチームに分かれ、障害対応・報告書作成を行いました。 僕はチーム

逆ポートフォワードで NAT 配下のサーバを外から弄る

研究室の NAT 配下に一時的に置いたサーバを外から弄りたい。 でも、一時的なものだし、担当の先輩にポート開放頼むのもめんどくさいな。 と思ったので、ssh の逆方向のポートフォワードを使った。 弄りたいサーバ (以下 server) にて以下のコマンドを実行しておくと、example.com の 127.0.0.1:8022 が server の 127.0.0.1:22 に転送され、example.com で