サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
blog.keshi.org
最近の買い物: ASUS Chromebook Flip C100PA ちょっと前の話になりますが、 ASUS Chromebook Flip C100PA というノートパソコンを買いました。人生初 Chromebook です。 10 型ディスプレイに 890g という、 毎日通勤に持ち歩いても苦にならない大きさと重さで気に入っています。 電車の中で使うのは 12 型で外付けマウス必須な EliteBook ではちょっと無理でしたが、 この Chromebook なら普通に使えるようになりました。 顛末 この機種について知るようになったのは、 10 月上旬に日本でも発売開始したあたりの頃に、 渋谷のビックカメラの展示機をいじってみたのがきっかけでした。 同価格帯・同サイズのノートパソコンや Chromebook に比べて筐体の質感が段違いによく、 またタッチパネル IPS 液晶ディスプレイ
Ansible の Jinja2 を活用する これは Ansible Advent Calendar 2015 の 12 月 7 日 (月) の記事です。 Ansible では組み込みのテンプレート言語として Jinja2 が利用できます。 この記事では Ansible の Jinja2 を駆使して リストやディクショナリを含む複雑なデータ構造を操作する方法について 追求してみたいと思います。 Ansible の Jinja2 ドキュメント Ansible のドキュメントでは、 Jinja2 の利用については次のページで軽く触れられている程度で、 あまり参考になる情報は得られません。 Jinja2 Filters Conditionals Variables 本格的に使いこなしたければ Jinja2 のドキュメントを読む必要がありますが Ansible からの利用に関しては次のページの情報
Ansible モジュール貢献への道のり もう 3 週間も前の話になりますが Ansible Meetup in Tokyo 2015.09 というイベントがあり、ライトニングトークの枠を頂いて喋ってきました。 そこでは自作の Ansible モジュールの紹介と、 Ansible モジュールの配布と宣伝、そしてアップストリームへの貢献 (自作モジュールを Ansible 標準モジュールにしてもらう) といったことについて話しました。今回の記事はその後日談のような内容です。 スライドは Speaker Deck にアップロードしてあります。 現在 Ansible のリリースに同梱される標準モジュール群は GitHub の ansible-modules-core および ansible-modules-extras の 2 リポジトリに分けて収録されており、 新規モジュールの追加を希望する人
ホストエイリアス機能の活用 こちらの Unix & Linux StackExchange の質問 で初めて知ったのですが、 glibc のリゾルバにはホストエイリアスの機能があり、 環境変数 HOSTALIASES で指定したファイルによって、 任意の FQDN に対するエイリアスを設定することができます。 ホストエイリアス機能はマニュアル hostname(7) や gethostbyname(3) で説明されています。 たとえば次のような内容のテキストファイル $HOME/.hostaliases を作り、 g www.google.com このパスを環境変数 HOSTALIASES に設定しておけば、 様々なプログラムで g だけで www.google.com を参照することができます。 $ export HOSTALIASES=$HOME/.hostaliases $ gete
Debian vs Ubuntu: ネットワークインタフェースの名前 Debian と Ubuntu の違いについて深追いする超不定期連載第 2 回は ネットワークインタフェースの名前の付けかたについてです (なお第 1 回は 1 年半くらい前の記事 でした)。 今回は Debian/Ubuntu ばかりでなく Red Hat 系のディストリビューションも深追いしました。 2014/12/31 更新: Moriwaka さんのご指摘 をいただき Red Hat 系ディストリビューションの記述を修正しました。 biosdevname は RHEL 6.1 から導入されています。 永続的な名前・予測可能な名前 Linux カーネルのネットワークインタフェースは、 ドライバが検出した順に eth0 eth1 … といった名前がつけられるようになっています。 ただしこれだけでは各デバイスがプローブ
ansible-askpass 先日の記事 で、 Ansible には vault パスワード入力の手間を省く機能がないと書きました。 理想的には SSH や GnuPG のエージェントのように、 ユーザが端末から入力したパスワードをメモリ内に保持して再利用できる仕組みが Ansible でも使えればよいと思います。 本来は Ansible 本体が備えるべき機能だと思いますが、 今回は Ansible のパスワードファイルの仕様と Linux カーネルの機能を活用して、 外付けでこれを実現する方法を考えてみました。 概要 Ansible では --vault-password-file オプションを使うことで vault の復号に使用するパスワードファイルを指定することができます。 実は Ansible のパスワードファイルはパスワードを書き込んだ単純なテキストファイルだけでなく 実行可能
Ansible 認証情報管理 Ansible の運用で問題になるのは リモートホストへのアクセスに使用する認証情報をどう管理するかだと思います。 SSH や sudo のパスワードを毎回入力するのは避けたいが、 平文パスワードを Git リポジトリに保存するようなことはしたくないし、 SSH エージェントの起動と秘密鍵登録のセットアップを事前にやるのも面倒くさい。 Ansible には vault という組み込みのファイル暗号化機能と、 動作を拡張できるプラグインの仕組みがありますので、これらを活用して SSH 秘密鍵を含む認証情報すべてをひとつの vault ファイルに格納し、 その復号パスワードの入力だけで済むような手法を考えてみました。 コードは自分の GitHub で creds として公開していますので参照してください。 前提 creds が想定するリモートホストアクセスの認証設
Ansible blockinfile モジュール このごろは Python で書かれた構成管理ツールの Ansible を使ってみています。 試行錯誤の末にようやく運用構成がかたまり、 また自作のモジュールを書くなどしてみたので、紹介します。 Why Ansible? そもそも Ruby 好きを自認するのであれば構成管理ツールには Chef や Puppet を使うのが普通の流れでしょうが、 これらはエージェント実行のために必要なリソースが大きいのが難点で、 これまで試す気が起きなかったのでした。 例えば 普通に Chef クライアントをインストール すると /opt/chef に Ruby の環境一式が放り込まれて 150MB 近くのストレージを消費します。 また基本的にエージェントプロセスが動きっぱなしになるため、 OpenVZ や LXC を使って大量の軽量コンテナを稼働させたとき
WD30EFRX を買った話 の続き。今回は netatalk のパフォーマンスチューニングです。 簡単に済ませるつもりだったのですが、バックエンドのファイルシステムの比較にまで手を出したらえらく時間がかかってしまいました。まだまだ試したいことがあるのですがきりがないので、このあたりでまとめておこうと思います。 なお netatalk はバージョン 3.0.1 が最新版ですが Debian パッケージ を使っている都合で 2.2.2 による検証となっています。 問題 これまで HP MicroServer で運用してきた netatalk 2.2.2 の AFP ボリュームでは、 iPhoto や Aperture のフォトライブラリを置いて使うととにかく遅くて話にならないということが問題になっており、今回のストレージ更新ではこれの改善が目標のひとつです。 調べてみると netatalk
最新版の OpenVZ カーネルには ploop という機能が同梱されており、これを利用することでコンテナの I/O 性能と管理の利便性を大きく向上させることができます。この記事では Debian の OpenVZ システムで実際に ploop のコンテナを使ってみた感想などを書いてみます。 検証は KVM 上で動作する Debian 7.3 システムと最新の OpenVZ カーネル・管理ツールで行いました。セットアップ手順については 過去の記事 を参照してください。 root@kvz02:~# uname -a Linux kvz02 2.6.32-openvz-042stab084.17-amd64 #1 SMP Fri Dec 27 17:00:12 MSK 2013 x86_64 GNU/Linux root@kvz02:~# vzctl --version vzctl versi
Logitech (日本では ロジクール ) は PC 用のキーボードやマウスといったヒューマンインタフェースデバイス (以下 HID) を製造・販売するメーカーとして有名ですが、 2009 年ごろより Unifying という超小型 USB ワイヤレスレシーバに対応した HID 製品を多数販売しています。 Unifying が使える環境は公称では Windows か OSX のみなのですが、実際には Linux などでもサポート外ながら使うことができます。この記事では Linux でそれを可能にする Solaar というソフトウェアについて紹介したいと思います。 Logitech Unifying と Solaar の紹介 いまワイヤレス HID といえば Bluetooth 接続が主流な気もしますが、PC の世界では Bluetooth 接続だと OS 起動前の BIOS 設定などで難
DELL U2713H は LG 27EA83-D と同じパネルを使っていると言われていますが、カタログを見ると細かな数値は結構違うようです。ファームウェアの差が出ているのでしょうか。 この中で U2713H はかなり高い値段で売られていますが、 kakaku.com の価格履歴 を見ると今回のような限定セールを頻繁にやっているみたいなので、それを利用すれば 5 万円台での購入も可能です。 設置 開梱後、付属のスタンドは無視して Ergotron 45-248-026 アームに取り付けます。もともと MacBook Pro をのっけていたトレイは取り外しました。 PB278Q に比べて重量があるのかアームのばねの強さに個体差があるのか不明ですが、どうもアーム上で重さがつり合う高さが低くなるので、アームを支柱の最も高い位置に調整しました。 U2713H と PB278Q では本体サイズ・色・
先日 OpenVZ プロジェクト よりアナウンスされていた 公式の Debian wheezy 向けパッケージ について、 先日の記事 でぜひ使ってみたいと書いてしまったので、実際に使ってみました。 これからしばらく、Debian squeeze 時代の OpenVZ では使えなかった新しい vzctl 4.5 とか ploop に VSwap といった新機能の使い方や感想をまとめていきたいと思います。 ということで最初はインストールとコンテナの作成についてです。 基本的にはこちらのページの手順に沿って進めます。 http://openvz.org/Installation_on_Debian http://download.openvz.org/debian/ Debian wheezy のインストール まず最初に Debian wheezy をインストールします。アーキテクチャは am
OpenVZ 開発者のブログに Is OpenVZ obsoleted? と題して現在の状況を説明した記事が掲載されていました。 OpenVZ は時代遅れだという理由でよくあげられる 3 点について反論する内容となっています。 OpenVZ のカーネルは 2.6.32 という古いバージョンをベースにしている (2013 年ではバージョン 3.x が主流)。 LXC のほうが OpenVZ より将来性がある。 OpenVZ の開発は止まっており Debian でも wheezy リリースで取り除かれた。 以下超訳引用: 1. OpenVZ カーネルは古い。 OpenVZ カーネルは標準カーネルのバージョン 2.6.32 ではなく Red Hat Enterprise Linux 6 (RHEL6) のカーネルをベースにしている。このカーネルはバージョン番号こそ 2.6.32 であるが、 Re
最近 27 インチの WQHD (2560×1440) ディスプレイが安く出回るようになりました。我が家でも今年になって ASUS PB278Q と DELL U2713H をディスプレイアーム Ergotron 45-248-026 と共に使っています。 これらのディスプレイを Linux の PC から HDMI 接続して使おうとした際にいろいろあったので、ここで情報をまとめておこうと思います。 h2. 概要 WUXGA (1920×1200) を超える解像度のディスプレイを使う場合、 PC などの出力側のハードウェア・ソフトウェアが古いと対応していないことがあり、注意が必要といわれています。 特にややこしいのは HDMI で接続する場合です。 WUXGA を超える解像度には HDMI 1.3 以降で対応できるようになりましたが、 HDMI 1.3 以降に対応したハードウェアであれば必
Debian と Ubuntu を両方使って気づいた些細な違いをその経緯も含めて深追いすることで、ディストリビューションの多様性について考えてみます (ほとんどは自分がはまったことの覚え書きですが)。 最初は電源を切ることについて。この記事では x86 の PC ベースのハードウェアを前提とします。 2013/07/03 追記: 仮想化環境について加筆しました。 halt コマンド Ubuntu では halt コマンドでシステムを終了させると System halted とコンソールに出した時点で停止し、ホストの電源は切れません。電源を切るには poweroff コマンドまたは halt -p を使用します。 なにをあたりまえのことを、と言われるかもしれませんが、私の過去の経験から halt して電源が落ちない Linux ホストはすなわち APM とか ACPI とかハードウェアに問題
1 実際には最大 16GB まで認識可能 2 同時使用可能な PCI-Express スロット数は 2 (x16 および x1) 大きな変更として CPU に Ivy Bridge ベースの Celeron/Pentium を採用し 2 つのグレードが設定されています。 チップセットは Intel C204 で HP ML110 G7 などと一緒です。メモリが ECC 縛りになっていないかがちょっと心配です。ドライブベイにはチップセットの SATA ポートがそのまま出ているようで 2 ドライブのみが SATA3 6Gbps 対応とあります。 USB 3.0 はチップセットに機能がないので外付けコントローラでしょう。 リモート管理機能は Integrated Lights-Out 4 が標準搭載。その都合か CPU 内蔵 GPU は使わず MGA G200e を積んでいます。 また PCI-
このごろ Windows デスクトップを作業環境としていろいろいじっています。ただし身体に染み付いた Unix/GNU 環境の習慣は捨てようにも捨てられないので MSYS をメインに使っております (右のキモいイメージは msys.ico に入ってた 9 つのアイコンを並べたものです)。 もちろん MSYS はこういう生活環境向けに作られたものではなく、普通は Cygwin を使えということになるのでしょうが、 MSYS は Cygwin に比べてコンパクトで管理の面倒さがないので愛用してます。 それに最近は Git が流行しており Windows で Git を使う人の大半は Git for Windows パッケージで MSYS 環境をインストールすると思いますので、作業環境としての MSYS も増えてきているのではないでしょうか。 Windows における ssh-agent の運用
昨年 11 月 に 24 インチの iMac を処分してからというもの、しばらくの間は自宅ではノート PC だけを使った質素な暮らしをしておりました。 しかしながら、せまい画面でエディタとブラウザを交互に見るコーディングをしたり、年賀状を 13 インチの MacBook Pro だけで作ったりしているうちに、やっぱり広いデスクトップがないと不便だという思いが募るようになり、冬休みに新しい液晶ディスプレイを買うことにしたのでした。 h2. 顛末 設置する部屋と机がかなりせまいので、せいぜい iMac と同じ 24 インチの UWXGA ディスプレイかなと思っていたのですが、いろいろ見るうちに UWXGA を超える解像度がほしくなってしまい、結局 27 インチ WQHD (2560×1440) の ASUS PB278Q を買ってしまいました。 実はこれと、新製品 LG 27EA83-D とで
自宅の HP microserver の交換用 HDD として WD Red こと Western Digital WD30EFRX を買いました。24 時間運用のサーバや NAS 向けとされる、すこし値段の高い HDD です。一般用途向けの WD Green こと WD30EZRX-1TPB と比べてもそんなに価格差がなくなってきたので、今回は奮発してみました。 既存の HDD と同じように XFS にして使うつもりですが、いわゆる Advanced Format Technology (AFT) と呼ばれる物理 4K セクタの HDD についてこれまでよく調べられなかったので、今回はちょっと時間をとっていろいろ検証してみることにしました。 XFS sectsz これまで /sbin/mkfs.xfs コマンドについては、ブロックデバイスの素性に合わせて最適な設定を勝手にしてくれるものと
今日は Jenkins についての小ネタを書きます。 先日、とある時間のかかるジョブのビルド開幕直後に、そのビルドの表示名と説明をセットするにはどうしたらよいかという相談がありましたので、自分なりによさそうな方法を考えてみました。 Jenkins のビルドの表示名 (displayName) と説明 (description) は各ビルドごとに設定可能な文字列情報です。次のように Web UI で変更することができるようになっています。 これらを自動設定するための Jenkins プラグインはいくつかありますが (たとえば Build Name Setter Plugin や Description Setter Plugin )、あまり複雑な設定はできないし、ログから正規表現で切り出すとか面倒だし、なによりビルドが終了しないと設定されなかったりするし、ということで今回の目的には合わないよ
先日 Lenovo ThinkPad Edge E130 という安いノート PC を買いました。 Debian の GNOME デスクトップをインストールして使っています。格安ながらなかなかいい感じに仕上がったのでちょっと紹介したいと思います。 購入まで いまさらこんな普通のノート PC を買った理由は、このごろ自宅で Mac OSX ばかり使うのに飽きてきたので、 Linux 専用機とするための手頃なノート PC がほしかったということがあります。 機種選定においては MacBook Air や Ultrabook が理想だけど高すぎるし Netbook じゃ性能悲惨だしといったこだわりがあり、結構難航しました。まあいちばんの問題は間違いなく英語キーボードが必須という条件でしたが。 国内では条件に合うものがなかなか見つからず、海外の安い PC の個人輸入を試みるなどなどかなり思いつめてし
Git でエンコーディングチェック Git で、コミット前にファイルのエンコーディングをチェックする pre-commit フックスクリプトを書きました。 いちおう Unix の Git でも Windows の Git でも使えるのと、まだ未完成なのが特徴です。 クロスプラットフォームな開発環境の現場では、リポジトリ内のファイルのエンコーディングは UTF-8 で統一しているのに Shift JIS のファイルをコミットしてしまう Windows ユーザがいたりするので、そういうのを検出してコミットを阻止するのがこのスクリプトの目的です。 ファイルのエンコーディングの判定はたとえば nkf --guess あたりを使えば簡単そうですが、追加のソフトをインストールする手間はかけたくありません。Git があれば必ず利用可能なことが期待できるソフトウェアの中で、ファイルのエンコーディング判定に
etckeeper で多数のホストの /etc を集約・共有する etckeeper を使うと /etc の内容と変更履歴を git などのバージョン管理システム (VCS) で手軽に管理できますが、素の etckeeper には /etc の変更をローカルのリポジトリにコミットする機能しかなく、git のような分散 VCS の特徴を生かすことができません。 しかしながら etckeeper と git の組み合わせで、リモートリポジトリとブランチをうまく設定し一工夫を加えることで、多数のホストの /etc の変更をひとつのリポジトリに集約し共有することが簡単にできるようになります。 準備 まずは etckeepr を git で動かしてください。 Debian squeeze では apt-get install etckeeper とするだけで git と etckeeper がインス
TCP Segmentation Offload の罠 MicroServer のネットワークの性能テスト中、以前より発生していたある自宅サーバの怪現象に再び悩まされていたのですが、昨日ようやくその謎が解けました。 怪現象サーバには ASUS P5NT WS という nForce 680i チップセットのマザーボードを使っており、オンボードで MCP55 の GbE が載っています。Linux カーネルは Debian lenny の 2.6.26-2-openvz-amd64、ドライバは forcedeth 0.61 というちょっと古いものです。 このサーバ server1 から、他のサーバ server2 に HTTP でファイル転送するときに、server1 でキャプチャした送信パケットと、server2 でキャプチャした受信パケットが一致しないのです。 server1 10.101
Git Companion Scripts まだしつこくマルチプラットフォーム開発環境における Git のエンコーディングチェック についてやってます。とはいっても、ほとんどもう Perl の話になっているのですが。 いろいろファイルが増えてきたので、新しく Github に Git Companion Scripts というリポジトリを作ってまとめました。これの使い方について書きたいと思います。 2012/05/11 更新: git check-attr による Git 属性の活用 において pre-commit-encoding スクリプトを改良しましたので、この記事の使用法を改訂しました。 概要 Git Companion Scripts は Git の標準環境で追加のソフトウェアのインストールなしに使える便利なスクリプト集です。Linux や Unix の Git だけでなく Gi
さくらの VPS で OpenVZ を使う 現在自分が契約しているさくらの VPS (旧 1.5G プラン) では amd64 の Debian 6.0 (squeeze) を OpenVZ カーネルで利用しています。 VPS をこういう構成で使っている話はあまり聞かないので、これについてちょっと書きたいと思います。 2012/04/07: まとめなどを追記しました。また一部の文章を読みやすいように書き直しました。 OpenVZ のすすめ OpenVZ (または Virtuozzo) を使った商用 VPS サービスは利用者には非常に評判が悪いようですが、OpenVZ そのものは自分のサーバで自分のために動かすのであればとても便利に使うことができるので、おすすめです。 OpenVZ の VPS はコンテナのリソースリミットを少しでも超過するとすぐプロセスが落とされる、といった悪評を特によく見
ヘッドレスな仮想サーバ上で VNC デスクトップ環境を動かす これまで我が家の MicroServer はメモリ 1GB で頑張ってきましたが、OpenVZ のコンテナをたくさん動かしていたらさすがに苦しくなってきたので、amazon.co.jp から CFD 販売の DIMM 4GB × 2 を買って 8GB にしてしまいました。 メモリに一気に余裕ができたので、次は MicroServer で KVM なども試してみようかと思います。CPU が非力なのであまり期待はしていませんが。 さて今回の記事では、我が家の OpenVZ コンテナで稼動している VNC デスクトップ環境について紹介します。 OpenVZ には仮想グラフィックデバイスがないため、いわゆるヘッドレスなサーバとして運用するのが一般的ですが、実際には X サーバさえどこかに用意できれば、GNOME などのデスクトップ環境を
Ansible の Jinja2 を活用する これは Ansible Advent Calendar 2015 の 12 月 7 日 (月) の記事です。 Ansible では組み込みのテンプレート言語として Jinja2 が利用できます。 この記事では Ansible の Jinja2 を駆使して リストやディクショナリを含む複雑なデータ構造を操作する方法について 追求してみたいと思います。 最近の買い物: ASUS Chromebook Flip C100PA ちょっと前の話になりますが、 ASUS Chromebook Flip C100PA というノートパソコンを買いました。人生初 Chromebook です。 10 型ディスプレイに 890g という、 毎日通勤に持ち歩いても苦にならない大きさと重さで気に入っています。 電車の中で使うのは 12 型で外付けマウス必須な Elite
次のページ
このページを最初にブックマークしてみませんか?
『blog.keshi.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く