カテゴリー : Management

Debian Stretch – GRUB 2 のバグ

KVM のシリアルポート経由で、ブートメッセージをチェックするようにしているのだが、Debian Stretch をゲストにすると、なぜか GRUB 2 がシリアルコンソールにメニューを表示しない問題があった。

実用上さして気にするほどでもなかったので放置してたのだが、他のディストリビューション (CentOS 7, Ubuntu 16) ではちゃんと表示されるので、いっちょ修正するか、と手を出してみた。

結論。sid の GRUB 2 と入れ替えたら問題なく表示された。なぜ Stretch では直さないのかよくわからない。バックポートが難しいのだろうか。

DragonFly BSD の IPv6 設定問題

なぜか、/etc/rc.conf に以下の設定をしても反映されない。


#ipv6_enable="YES"
ipv6_network_interfaces="vtnet0"
ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64"
ipv6_defaultrouter="2001:470:d:461::1"

仕方ないので、/etc/rc.local にコマンドを直書きしてごまかした。


#! /bin/sh
ifconfig vtnet0 inet6 2001:470:d:461::7:1 prefixlen 64 alias
route add -inet6 default 2001:470:d:461::1

解決法をご存じの方がいらしたら、ぜひコメントをお願いしたい。


追記。
メーリングリストで質問したら、ipv6_ifconfig_vtnet0 の設定がよくないと指摘された。


-ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64"
+ipv6_ifconfig_vtnet0="2001:470:d:461::7:1"

と、アドレスだけ指定するのが、DragonFly での作法とか。指摘してくれた、Aaron に感謝。

シリアルコンソール出力あれこれ

KVM で VM を起動するときにシリアルコンソールに起動情報が流れてくれたら起動の様子がわかって大変便利なので、その設定を追加。

1. Debian GNU/Linux

/etc/defaults/grub を以下のように修正。


# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

これで、ログインプロンプトまで出る。もちろん、修正した後は、update-grub を忘れないように。ただ、うちの環境だと、grub メニューの選択肢が表示されない。まあ、デフォルト以外で起動することはないので、放っておいてます。

2. CentOS 7

/etc/defaults/grub を以下のように修正。


GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console serial"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb console=tty0 console=ttyS0,115200n8"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_DISABLE_RECOVERY="true"

その後、sudo grub2-mkconfig -o /boot/grub2/grub.cfg を実行。

3. FreeBSD 11.1

まず、/boot.config を作成して、以下の内容を設定。


% cat /boot.config
-Dh -S115200

次に、/etc/ttysttyu0 以下のように修正。


ttyu0 "/usr/libexec/getty std.115200" vt100 on secure

これで再起動をかけると、起動メッセージがだーっとシリアルポートから出力される。その上、ログインプロンプトまで出てくれる。便利。

4. OpenBSD 6.2

/etc/boot.conf を作成して以下の内容を追加。


stty com0 115200
set tty com0

次に、/etc/ttystty00 の行を変更。


tty00 "/usr/libexec/getty std.115200" vt220 on secure

5. DragonFly BSD 5.0.2

/boot/loader.conf に以下の行を追加。


console=comconsole

次に、/etc/ttysttyd0 の行を変更。


ttyd0 "/usr/libexec/getty std.115200" cons25 on secure

ちょっとした KVM サポートツール

そろそろよかろうと思って、サーバーを jessie に上げたら、Xen が起動しない。ホスティングサーバーの変更もあったので、思い切って仮想化基盤を KVM に変更……というか、回帰しました。

ところが、xen-tools のようなお手軽ツールがありません。いや、あることはあるのですが、古いバージョンにしか対応してなくて、しかも最近全くメンテされてない状態。

一応、昔気に入ってて、日本語翻訳までした Proxmox VE も見てみたのですが、えらく進化してしまって、機能てんこ盛りで、こんなんイラネ。VNC もセキュリティに気を遣うのはわかるんですが、ごく一部のクライアントしか対応してないプロトコルしか外に出さない=使いにくい Java クライアントとか、HTML 5 版のやっぱり使いにくいクライアントしか想定にないみたいで、愛想が尽きた。

まあ、イメージは素の状態から CD イメージとか、debootstrap とか使って作るので、VM の作成や削除の機能はいらないや。となると、VM の起動/停止が簡単にできればそれでいいんだけど……ないですね。そんなツール。

ということで、vmmaestro という名前だけは大層なシェルスクリプトをでっち上げました。GitHub にて絶賛公開中。一応、vhost-net とか、x-data-plane とかにも対応してます。

ATLASSIAN Starter License

ATLASSIANStarter License の販売を開始しました。この Starter License による売り上げは、Room to Read に全額寄付されます。前回のキャンペーンは期間限定でしたが、この Starter License の販売に期限はありません。いつでも購入可能です。

Starter License が適用される製品は、以下の通りです。

  • JIRA (10 ユーザ) … バグトラッキングシステム
  • Confluence (10 ユーザ) … エンタープライズ Wiki システム
  • GreenHopper (10 ユーザ) … プロジェクト管理システム
  • Bamboo (10 ユーザ) … 継続的インテグレーションサーバ
  • FishEye (10 コミッタ、5 リポジトリ) … リポジトリ管理システム
  • Crowd (50 ユーザ) … シングルサインオンシステム

価格は、それぞれ $10 (JIRA と Confluence は日本円 (1,000円) でも購入できます) で、一年間の保守契約付き(新しいバージョンが出れば、1年間無料でアップデートできます。もちろんサポートもあります)。保守契約は、年 $10 (または 1,000円) で延長することが可能です。一度に最大 3年間延長することができますし、もちろんその後も、年 $10 (または 1,000円)で延長していけます。

各製品の特徴は以下の通り。

JIRA

バグ、問題管理システムです。エンタープライズ用途に開発されているだけあって、至れり尽くせりの機能満載です。ワークフローも独自に定義することが出来、これひとつで問題管理を集中的に取り扱うことができます。Trac や Bugzilla の煩雑さに悩まされているなら、ぜひとも導入すべきです。豊富な機能が実にシンプルなインターフェースで統合されており、操作に悩むことはありません。Excel で管理すれば充分? 何を言ってるんです! Excel は所詮 Excel ですよ! 比較になりません。Starter License は、法人であっても全社的に導入する必要はなく、企業内の小規模プロジェクトで使えますから、まずはお試しを!

Confluence

エンタープライズ Wiki の名に恥じません。Wiki ごとに異なるへんてこなタグを覚える必要もありません。WYSWYG でページをサクサク追加、編集することができ、情報共有が簡単に行えます。うちは、Share Point 使ってるから? あんなマシンパワーを浪費する重いシステムのどこがいいんですか? Office コネクタだってちゃんと用意されてますよ? 論より証拠、まず触って下さい!

GreenHopper

Project 2007 を使ってる? いやいや、いかに Project Server を導入したとしても、アーキテクチャがもう時代遅れでしょう。マネージャーがプロジェクト管理をトップダウンで支配していた時代はもう過去のことです。時代は、アジャイル開発ですよ。誰もが自由にアクセスし、リアルタイムに確認、更新ができる管理システムが必要なんです。GreenHopper の扱いやすさは、課題をカード化し、任意に整理することができたり、JIRA のワークフローと簡単に統合できたり、プランニングボードで課題やスケジュールを一望できたり(その上、ドラッグ & ドロップで変更が可能だったり)、進捗をワンクリックでグラフ化できたりするところにあるんです。旧式のツールでちまちま後追い管理をやってつじつま合わせをしている場合じゃありませんよ!

Bamboo

テストやそのフィードバックが大変でとお嘆きのあなた。一度、Bamboo を試してみるべきです。Amazon EC2 のインスタンスを統合可能で、ビルド、テスト、結果通知はもとよりデプロイまでの一連の作業を自動化してくれます。EclipseIntelliJ IDEA からの操作を可能とするプラグインが用意されていますので、コーディングからテスト、検証、デプロイまでシームレスに行うことができるだけでなく、単調なテストをぽちぽちと手作業で行い、エヴィデンスを収集し…などという面倒くさい工程にプログラマが張り付いている必要はもうありません。プログラマはプログラミングに集中し、検証はボタンひとつで Bamboo にお任せ! もうそんな時代なんですよ!

FishEye

ソースのリポジトリ管理は常に悩みどころです。もちろん、Windows、Mac OS X、Linux などそれぞれに優れたツールはありますが、じゃあ誰がいつどんな更新を行い、プロジェクトがどんな状態で、バグがどれだけ解消されたか一覧し、その上ソースレビューまでできるかとなると…難しいところです。でも FishEye がそんな悩みをクリアに解決してくれます。JIRA と統合された簡潔なインターフェースはそんな面倒ごとを一手に引き受けてくれます。対応するリポジトリ管理ツールも、CVS、Subversion、Git、Perforce とお好み次第ですし、ソースブラウズだって、多種多様な言語に対応しています。チームにひとつ、ぜひどうぞ!

Crowd

便利なシステムをあれこれ導入するのはいいけれども、ユーザ管理が煩雑になるから…と躊躇しているのであれば、Crowd ひとつで万事解決です。ATLASSIAN のこのシングルサインオンツールは、JIRA、Confluence、GreenHopper、Bamboo、FishEye といった ATLASSIAN の各種システムはもとより、Google AppsOpenID も統合した文字通りのシングルサインオンを実現してくれます。Active Directory サーバや OpenLDAP サーバを統合することもできますので、既存のユーザ管理を活かしたままシングルサインオンを実現できます。もちろん、Crowd でユーザを一元的に管理することもできますし、自社開発のアプリケーションも、用意された API を使って対応させることができます。覚えておくべきパスワードはこれひとつ! を実現する心強いシステムです!

いかがでしょうか。開発者ならぜひ使ってみたいこれらのシステムが、学生の小遣い程度で購入できるんですよ。一度に全部導入する必要もありません。じっくり腰を据えてご検討下さい! 私? もちろん購入しましたよ。:)

1 / 212
 

Twitter links powered by Tweet This v1.8.3, a WordPress plugin for Twitter.