ククログ

株式会社クリアコード > ククログ > Debianの移植作業用のインフラを借りるには

Debianの移植作業用のインフラを借りるには

はじめに

Debianプロジェクトでは、移植作業用のインフラが各アーキテクチャごとに用意されています。 それらのインフラはDebian開発者向けに提供されているものですが、開発者だけに限定されているわけではありません。 今回は、移植作業用のインフラをDebian開発者でない人が借りる方法について紹介します。

porterboxとは

移植作業用のインフラのことをporterboxと呼んでいます。それらはdebian.org配下のドメインで提供されています。 どんなものが提供されているかはdebian.org Developer Machinesから一覧できます。 移植作業用に使われるのは、この一覧のうちpurpose欄がporterboxとなっているものです。 しかし、多種多様な目的のマシンが混在しているのでややわかりづらいです。

そこで便利なのがporterboxコマンドです。 これはPythonで実装されていて、実行すると対応アーキテクチャやドメイン、公開範囲について知ることができます。

% ./porterbox
Architecture       Hostname                 Access
--------------------------------------------------------------------
armel              abel.debian.org          public
arm64              asachi.debian.org        public
kfreebsd-amd64     asdfasdf.debian.net      public (non-DSA-machine)
amd64              barriere.debian.org      public
mipsel             etler.debian.org         public
hurd-i386          exodar.debian.net        public (non-DSA-machine)
kfreebsd-amd64     falla.debian.org         public
kfreebsd-i386      fischer.debian.org       public
armhf              harris.debian.org        [unknown]
kfreebsd-i386      io.debian.net            public (non-DSA-machine)
ia64               merulo.debian.org        public
mips               minkus.debian.org        public
powerpc            partch.debian.org        public
ppc64el            pastel.debian.net        public (non-DSA-machine)
powerpc            pizzetti.debian.org      [unknown]
ppc64el            plummer.debian.org       [unknown]
sh4                sh4.g15.jp               public (non-DSA-machine)
sparc              smetana.debian.org       public
hurd-i386          strauss.debian.net       public (non-DSA-machine)
sh4                sumotsu.debian.net       public (non-DSA-machine)
armhf              turfan.debian.net        public (non-DSA-machine)
avr32              xoothais.err.no          public (non-DSA-machine)
s390x              zelenka.debian.org       public

Found 23 machines

借りるための手続きについて

実際にporterboxを借りるときの手続きは次の通りです。

  • スポンサーしてくれるDebian開発者(DD)を探す

  • porterboxのアカウント申請メールをDDに送付する

  • DDにrt.debian.orgにチケットを起票してもらう

  • adminチームにアカウントを用意してもらう

  • ゲートウェイを経由してssh鍵を登録する

  • アカウント情報が伝搬するまでしばらく待つ

スポンサーしてくれるDebian開発者を探す

移植作業向けにDebian開発者でなくても借りられるとはいっても、誰にでもほいほいと貸してくれるわけではありません。 というわけで、スポンサーになってくれるDebian開発者が必要です。 まわりにDebian開発者が生息していない場合は、Debian JP Developers メーリングリストで探すか、お近くで開催されているDebian勉強会などに参加してつかまえるとよいでしょう。

porterboxのアカウント申請メールをDebian開発者に送付する

幸いにしてDebian開発者をつかまえることができたら、次はporterboxのアカウントの申請メールをスポンサーしてくれるDebian開発者に送ります。

Guest Access to porter machinesに記載されているように、以下の項目を埋める必要があります。

  • 氏名

  • アカウント名

  • PGPキーのフィンガープリント。キーサーバーに登録されているものが必要です。

  • メールアドレス

  • DMUPに同意するコメント

  • どのマシンを借りたいか

  • アクセスが必要な理由

DMUPというのは、Debian マシン使用ポリシーのことです。要は目的外に使ったりしませんよというのに同意する必要があります。

Debian開発者にrt.debian.orgにチケットを起票してもらう

アカウント申請メールを送ったら、次はDebian開発者にチケットを起票してもらいましょう。

アカウントの申請はrt.debian.orgで管理されています。 これにアクセスできるのはDebian開発者だけなので、スポンサーをお願いしたDebian開発者にチケットを作成してもらう必要があります。

adminチームにアカウントを用意してもらう

チケットをDebian開発者に起票してもらうと、専用のトラッカー番号が割り当てられます。 これには、専用のメールアドレスがひもづけられています。例えば、トラッカー番号6092に対応して「rt+6092@rt.debian.org」といったような具合です。

しばらく待つと、DSAと呼ばれる管理者からアカウント作成完了通知がメールで届きます。 なかなか届かない場合は、専用のメールアドレスに対して現状どうなっているか確認のメールを投げるとよいでしょう。1

申請通りにアカウントが作成されているかは次のコマンドで確認できます。2

% ldapsearch -LLL -b dc=debian,dc=org -x -h db.debian.org uid=(申請したユーザー名) allowedHost

すると、次のようなレスポンスが返ってきます。

dn: uid=(申請したユーザー名),ou=users,dc=debian,dc=org
allowedHost: minkus.debian.org 20160427
allowedHost: etler.debian.org 20160427

ちなみに、この段階でDebian開発者でなくても(申請したユーザー名)@debian.orgが作成されますが、使ってはいけないことになっています。

ゲートウェイを経由してssh鍵を登録する

アカウントが作成できても、サーバーには公開鍵を使ってアクセスする必要があるので、鍵を登録しないといけません。 これにはLDAPゲートウェイが用意されています。

例えば、minkusとetlerの申請をしている場合、公開鍵の先頭に以下を追加します。

allowed_hosts=minkus.debian.org,etler.debian.org ssh-rsa ....

そのあとで、cat (公開鍵ファイル) | gpg --armor --signなどとして署名したものをメールの本文に貼りつけて、changes@db.debian.org宛てで送付します。

アカウント情報が伝搬するまでしばらく待つ

即座に反映されるわけではないので、しばらく待ちましょう。 各サーバーに反映されると、sshでporterboxにログインできるようになります。

まとめ

今回は、移植作業用のインフラをDebian開発者でない人が借りる方法について紹介しました。 実機をもってないけど、特定のアーキテクチャへの対応をしたいなら検討してみてはいかがでしょうか。3

  1. 2週間くらい待ってみて、進捗どうですかとメールを投げてみたところ、すぐに対応してもらえたということがありました。

  2. ldapscriptsをあらかじめインストールしておきましょう。

  3. もちろんqemuを使うという選択肢もあります。