サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
インタビュー
d.palmtb.net
My daughter began playing Scratch on Debian 先日、こんな tweet をしました。 昨夜、おまめ一号が私のMacBook Pro を時々覗き込みながら何か描いているなと思ってたら「パパと同じパソコン作ってるの」と。 誕生くらいでデビューだ!と妄想したが早すぎて保留にしていたDebian デビュー、そろそろ頃合いかも。古いMacBookにSidインストールするか。 ということで、おまめ一号に使っていない古いMacBookを与えてみました。 testing 用のCDイメージ を CD-RWに書き込み、グラフィカルモードでおまめ一号と一緒にインストールをしました。といってもおまめ一号にやらせたのは、 Enterキーを押す 自分のユーザー名の設定 パスワードの設定 くらいですが。 インストールに関する余談 今回、おまめ一号にあげた MacBookは、Je
自宅サーバから始まったDebianとのお付き合い この記事は「 自宅サーバの思い出 Advent Calendar 2016 」、 8日目 のエントリです。 いろいろ記憶が曖昧なところがありますが、思い出を振り返ってみました。 自宅サーバ事始め 自宅サーバを始めたのは、社会人になった頃、仕事と関係なくJavaとかXMLとかを独学で勉強しながら、なんか作って公開したいな、と思ったのがきっかけでした。当時、Windows 2000をデスクトップで使っており、ライセンス的に無理だったので、ベアボーンで RedHat 9か VineLinuxあたりをインストールしたような記憶。GNU/Linuxを使い始めたのもこれが最初。いくつかディストリビューションを試して、インストーラーと、パッケージ管理の操作性が簡単だったことから、VineLinuxを使うようになった記憶。もう15年くらい前になると記憶が定
upstartでプロセスを自動再起動させる。 おぷすたでインスタンスを作成した際に、自動でDNSにAレコードを登録するデーモンが(チーム内で作って)あるのですが、これが落ちていたためインスタンス起動時にレコードが登録されない、ということがありました。プロセスが死んだとしても勝手に再起動させればよいので、inittabかdaemontoolsかmonitあたりでやろうかなぁと考えていたら、 http://twitter.com/#!/matsuu/status/182835985619501057: ああ、もうdaemontoolsいらないね。落ちた時の自動起動だけならupstartで実現できる。Debianは6以降、RHELも6以降は標準でインストールされてる。Amazon Linuxも標準装備。ただしGentooでは使えません。 12 hours ago との matsuuさん のtwe
ansible-ldap is very simple and useful OpenLDAP と仲間たち Advent Calendar 2015 24日目、クリスマスイブですね。一昨日(12/22)にEngineer All Handsという社内のイベントでLTをすることになり、「LDAPと私」というネタで ansible-ldap というモジュールの話を軽くしました。ついでにブログにでもちゃんと書いておこうかなと思い、昨日アドベントカレンダーの予定を見てみたら、空いていたので参加してみました。 概要 この記事の要点としては以下のとおりです。これを読んで理解できる方はその後を読む必要はありません。モジュールのソースコード内のドキュメントを読みましょう。 ansible-ldapの ldap_entry および ldap_attr モジュールだけで LDAPのエントリーの追加・削除、エン
Change the reverse proxy upstream of Nginx without Lua 前回の記事(Change the reverse proxy upstream of Nginx by time zone) を見て、 matsuu さん が下記のような設定をGistに掲載されていたので試してみました。 結果、問題なくできたので前回の設定は次のようにシンプルになりました。 map $time_iso8601 $upstream { default "app-b.example.org"; "~T(0|1[01])" "app-a.example.org"; } server { server_name app.example.org; rewrite ^ $scheme://$upstream$request_uri permanent; } upstream a
年賀状の宛名&挨拶状印刷用のPDF生成ツールを作りました。 新年あけたらしいですね、おめでとうございます。新年の挨拶、抱負 1 はまた別途ブログを書こうと思います。新年最初のブログは、今更ながら年賀状の宛名と挨拶状の印刷用のPDFを生成するツールを作った、というお話です。 何故作ることにしたのか。 昨年の年賀状までは、OOoのCalcで送り先のアドレス帳を管理し、Writerに差し込み印刷をしていました。今回もほとんど年賀状作成をする時間がなかったので、仕事納めの後から手をつけ始めたこともあり、OOo、というかLibreOfficeで同じように印刷するつもりでした。昨年同様、こまめの写真をGimpで加工し挨拶状の面をGimpで加工しようとしたところ、縦書きの文字列の再編集のやり方が分からない、という問題に遭遇しました。そしてもう一つ、もっと致命的な問題に遭遇しました。それは、LibreOf
Interactive shell for Golang Golang用の対話形式シェル Gosh を作りましたよ、というお話です。 Golangでコードを書き始めた今年の年初くらいから、iPythonのような対話形式のシェルがほしいなと思っていました。気になるライブラリをちょっと試してみたいときに、 go get して、Emacsでコード書いて、 go run を実行する、というのは億劫で、 import したらそのまま go get して実行できれば良いな、と思っていました。 そういったツールが無いかと調べて、go-eval や igo や Go playground 1 にはたどり着いたのですが、パッケージをインポートする機能がないので自分の欲しい機能とは違う、ということでエイヤっと作ってみました。 特徴 現在の特徴としては次のとおりです。 Go 1.2 以上対応 対話形式のシェル
Vyatta専用コマンドを深堀りしてみた。 前回のエントリ で書いた通り、configureコマンドやsetコマンドはシェルスクリプトでは使えませんでした。単にVyattaを運用するだけなら、そのまま ${vyatta_sbindir}/my_* コマンドを使えば良いのでしょう。でも何故使えなかったのでしょうか。なんでそのままにしておくのは気持ち悪くて、夜もぐっすり眠れません。精神衛生上よろしくありませんね。 ですので、このモヤモヤを解消するため、オペレーションモード、設定モードについてそれぞれ調べてみました。 オペレーションモードの専用コマンドを探る。 まず、aliasコマンドを実行してみると分かります。 $ alias alias add='_vyatta_op_run add' alias clear='_vyatta_op_run clear' alias clone='_vyat
How to create a Debian package of support to sysvinit, upstart, systemd 最近、サイボウズラボさんが開発した、yrmcdsというmemcached互換のKVSをDebianパッケージにして、main入りしました。 1 いつもパッケージスポンサーをお願いしている 岩松さん 、upstreamの 山本さん のご協力のおかげです。 特に問題なければ、Ubuntuの次のLTSにも取り込まれるのではないかと思います。 お二人には、この場を借りてお礼申し上げます。 Python以外で、また、デーモンのパッケージ化は今回初めて行いました。 2 sysvinitだけでなく、upstart, systemd対応も行ったので、デーモンのDebianパッケージを作成する場合のsysvinit, upstart, systemd対応の方法につい
GPT対応のpreseedの書き方 この記事は Debian/Ubuntu JP Advent Calendar 2012 の 12/14(金) の記事です。昨日は岩松さん(@iwamatsu)による “namecheck / 同じ名前のパッケージ/プロジェクト名がないか確認する” でした。今日は、GPTを使う、要は2TBを超えるハードディスクに、preseedを使ってDebian/Ubuntuをインストールする方法について紹介します。 GPTとは GUIDパーティションテーブル(GUID Partition Table)の略で、EFIの一部であることから、rEFItを使ってIntel Mac、特にMacBookなどにDebianをインストールしている面々には聞きなれた用語かと思います。EFIはx86アーキテクチャのBIOSに、GPTはMBRを置き換えるものとなっています。MBRの場合、2
OpenSSH LDAP public key Ubuntu Ubuntu (and Debian) don’t have official debian package of openssh-lpk package. So I applied openssh with openssh-lpk patch from Gentoo. I think it is enable to build with the same way in Debian. (But I have not tried) Package build Download patch and apply to source package. $ wget http://distfiles.gentoo.org/distfiles/openssh-lpk-5.9p1-0.3.14.patch.gz $ gzip -d open
Brompton M6L を入手しました¶ 今年の5月に Brompton M6L 2021年モデルを入手しました。約4ヶ月弱経過した今日現在の走行距離は約890km。オプションの購入やメンテナンスで気づきがあったので備忘のために記録します。 自転車買い替えの経緯¶ 今年の年明けに23年乗ったSchwinnのマウンテンバイクを廃棄しました 。大学生の頃に購入してから、ちゃんとしたメンテナンスを受けたことがなく、だいぶ状態が悪くなってしまったためオーバーホールすると、パーツ代などでも当時の購入代金よりも高くなってしまいそうだったのが理由です。その割には実質20年以上は乗ったのでよくもったのではないかなと思います。 保管場所から新たな自転車の選定を検討¶ 住んでいるマンションには自転車有料の自転車置き場もありますが、屋根はついているものの雨ざらしになるので、これは論外。 廃棄したマウンテンバイ
PowerDNS Authoritative Serverで再帰問い合わせを有効にする。 ローカルDNSでコンテンツサーバとして使用しているPowerDNS Authoritative Serverで諸事情により再帰問い合わせを行わせることにしました。PowerDNSの公式ドキュメントは充実しているのですが、PowerDNS recursor(pdns-recursor)を導入せずに再帰問い合わせさせる方法については記載が無かったのでメモしておきました。 1 環境。 Ubuntu 10.04 pdns-server 2.9.22 設定。 /etc/powerdns/pdns.conf の下記を設定します。 allow-recursion 再帰問い合わせを許可するホスト(クライアント)のIPアドレスを指定します。複数指定はカンマ区切りで、ネットワークアドレスをprefix lengthで指定
VyattaでNAT stateful failoverを使う場合の制限。 VyattaでVRRPを使っている場合、VRRPのfailoverが発生してもBackupに引き継いでそのまま通信できるようにNAT stateful failverを使うと思います。が、NATテーブルのエントリ数がある一定を超えると、failoverが発生してからNATテーブルのエントリが引き継がれる途中でBackupがカーネルごと落ちてしまう、という事象に遭遇しました。もうそのまんまなので特にひねりもないのですが、一応検証を行った条件を掲載しておきます。 環境。 メモリ 2GB Vyatta core 6.3 64bit CPUとかディスクとかは実質ほとんど影響ないので省略。 条件。 VyattaでNATします。負荷検証には、専用のアプライアンスを使い、Webサーバに対してApacheのindex.htmlをG
カテゴリー ansible (2)Bike (3)book (23)cat (63)Celery (1)Cloud (1)computer (195)CouchDB (35)Debian (425)Dev (26)emacs (1)error (74)gadget (117)Git (14)git-buildpackage (1)Golang (2)Kids (1)LDAP (3)life (798)lint (1)MacBook (137)meeting (107)network (84)nonsense (208)Ops (90)Packaging (3)PowerDNS (1)programming (7)Python (19)Ruby (2)security (54)TeX (13)Unix/Linux (238)virt. (109)Windows (1)work (261) タ
名前付きパイプを知らない? 名前付きパイプを知らないという人が意外といるみたいなので、小ネタとして紹介します。名前付きパイプとは、パイプ’|’の代わりに使える特殊ファイルです。mkfifoコマンドで作成します。 $ mkfifo hoge このhogeというファイルをreadしておき、別のプロセスでこのファイルに何らかの出力を書き込んでやると、hogeをreadしている側でその書き込まれた出力が読めます。 たとえば、Netfilterのカウンター(/proc/sys/net/netfilter/nf_conntrack_count)を見たい場合、 $ watch cat /proc/sys/net/netfilter/nf_conntrack_count とかでも良いですが、上記を名前付きパイプに常に書き込む用にしてやっても良いわけです。この値だけを書き込むだけならあまり意味がありませんが
GitLabを導入してみた話。 ちょいと昨日、GitLabをUbuntu12.04に導入してみました。基本的には、 Install for stable version (recommended) の通りです。GitLabの現時点のstableはRuby 1.9.2を必要としますが、Ubuntu 12.04では、1.9.1どまりなので、Rubyについては、上記の手順どおりソースコードからビルドし、Ruby関連パッケージは全てGem経由でインストールしました。 一部、手順の 4. Install gitlab and configuration. Check status configuration. において、Gemに紛れて、 sudo pip install pygments と、pygmentsをpipでインストールする手順があります。が、これはDebianパッケージがあり、バージョン
optparseからargparseに変更。 1 tonicdnscli のPython 3への対応をしようとした際、コマンドラインオプションに使用している optparseモジュールがPython 2.7 で廃止予定だということを知りました。そこで、optparseからargparseに変更することにしました。optparseでは、入力ファイルをJSON形式で表示させるためのオプションや、TonicDNSからレコードを取得して表示、レコードの登録、レコードの削除を行うのをオプションで行っていましたが、argparseに変更するタイミングで、これらをサブコマンドとして実装しなおしました。変更した結果が下記の表です。 機能 optparse argparse 変換・表示 -o/–stdout show 取得表示 -g/–retrieve get レコード登録 -c/–create creat
TonicDNS Clientを作成しました。 俺得シリーズ。 “TonicDNSでレコードの一括登録・削除するためのJSONを生成する。”でTonicDNS用にJSONを生成するツールを作成しましたが、これにTonicDNS API用のクライアント機能を実装しました。 Github および PyPI で公開しています。使い方は src/README.rst に記述していますが、現時点でできることは以下の通りです。 半角空白文字区切りフォーマットのテキストファイルからJSONへの変換 TonicDNS API経由でのPowerDNSの操作 指定ドメインのレコード情報の一括表示 指定ドメインへのレコード一括登録 指定ドメインからのレコード一括削除 登録 or 削除対象が100件を超える場合 コミット 7571109876 で実装したのですが、登録もしくは削除対象が100件を超える場合は、10
iPXEでサーバの機器情報を取得する。 新しい機器をラックマウントする際には、納品時にメーカー、型番、シリアル番号を控え、ラック位置、棚位置とひもづける必要があると思います。この手の管理作業は台数が増えるほど手間が増えるので手作業ではやりたくないことの一つです。どの型番のどのスペックの機器にどのOSをインストールするか、という観点ではシリアル番号での識別が必要です。実際にPXEブートでOSをインストールするには、シリアル番号に紐づいたMACアドレスを指定してやる必要があります。MACアドレスを指定するためにMACアドレスを控えるにはBIOSの設定画面などからMACアドレスを確認し控えるというアナログなことをやるかもしれませんが、これは怠惰な我々にとっては面倒過ぎて死ねますね。 PXEブートを使っている場合、iPXEを使うとこの面倒な作業をなくすことができます。PXEブートでインストールする
このページを最初にブックマークしてみませんか?
『ホーム — mkouhei's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く