CoreOSのLive ISO作るbash scriptを書きました

読了まで:約5分


概要: だれにも〜はんのうされない〜


こんにちま!

先週の病院を受診して薬を変えた結果、それなりに鬱から脱しつつある、 にゃるらコト岡村 直樹(25)です。皆様お久しぶりです。 もうちょっと更新頻度上げたいです。

で、そんな近状はまあどうでも良いとして、 僕は先ほど、布団にくるまって眠気に誘われながら、

聴いておりました。

で、内容等についてはリンク先から PodCast 聴いてね! って感じなのですが、今回のエピソードの話題に上ったキーワードで、

とか有るのですが、こういうキーワードのコンテキストにおいて、 これからメジャーになるんじゃね? という Linux Distribution に、

いうのが有ります。

この CoreOS 、というのは、どういう Linux か、と言うと、 次世代のサーバ OS、特に Immutable Infrastructure とか、 そういう感じの文脈において、それに特化した、 管理が用意なサーバ OS を作ろう! という感じの Linux です。

んで、この CoreOS、現時点(2013-11-07)において、

  • Vagrant VirtualBox

  • VMware

  • Amazon EC2

  • QEMU/KVM

  • OpenStack

  • Rackspace

  • PXE boot

イメージは用意されているんですが、まだ Alpha な関係か、

_人人人人人人人人人人人人人人_ >  Bootable ISO が無い!!! <  ̄ Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y  ̄

いう状態なため、僕は、

え、ISO の持ち込める格安 VPS にぶっ込めないじゃん!クソ、こうなったら、よろしい、ならば作成戦争だ!

いう感じになり、

[CoreOS の Live ISO を作る Bash スクリプト 11!!!111!!111! https://github.com/nyarla/coreos-live-iso/blob/master/makeiso.sh ]

先日作りました。確か数日前ぐらい。 ちなみにリンク先は Github です。

で、このスクリプト(makeiso.sh)は使いかたはものすごく簡単で、

  • bash
  • curl
  • tar
  • mkisofs (これは大体の distribution でcdrtools含まれてる)

用意した上で、

$ ./makeiso.sh

するだけで、CoreOS の Live ISO が作成できます。Yay !

で、このmakeiso.shなんですが、やってるコトとしては、

  1. CoreOS の PXE Boot 用の Kernel と Initrd を DL
  2. Bootloader として syslinux も DL
  3. それぞれのファイルを適切に配置
  4. mkisofs ISO を作成
  5. 上手に焼けましたー ♪

いう感じです。いや、まあ Bash script なんで、 実物見た方が早いかもですが。

で、このmakeiso.sh作った ISO は、bootable かつコンパクトなので、 例えば、ISO イメージを持ち込める VPS にぶっ込んで CoreOS を VPS にインスコしたり、あるいは Live ISO として CoreOS の体験版みたいに使ったり、 もしくは、実際に USB メモリとか SD カードとかに焼いて、 サーバ実機に CoreOS をインスコするのに使ったり、いうコトができます。イエ-イ!

で、もし VPS なり実機に CoreOS をインストールする、という場合には、 coreos-installコマンドを使って、

$ sudo coreos-install -d /dev/sda

いう感じで CoreOS の blob images をストレージに配置した後、

$ sudo su -

rootになって、

# echo 1 > /sys/block/sda/device/rescan

して、/dev/sdXインストールされた CoreOS のパーティションを読み込ませ、

$ sudo mount /dev/sda9 /mnt
$ mkdir -p /mnt/overlays/home/core/.ssh
$ cp ~core/.ssh/authorized_keys /mnt/overlays/home/core/.ssh/
$ chmod 0700 /mnt/overlays/home/core/.ssh/
$ sudo umount /mnt

いう感じで、authorized_keysインストールされた CoreOS の~/.ssh配置する必要があります。

何故これが必要かっていうと、CoreOS は ssh の鍵認証方式でしがログインできないからです。つまり秘密鍵なくすとログインすら不可。世は無情である。まあ、ログインできなくなった場合、VM 上で Live ISO を再 Boot させて、新しい方の鍵を登録すればなんとかなりますけどね。面倒ですけど。

で、あとmakeiso.sh注意点としては、

  • ssh の認証鍵はデフォルトで iso を作ったマシンの~/.ssh/id_rsa.pub使用
  • CoreOS のバージョン等、ISO を作る際のパラメーターは決めうち これはmakeiso.sh直接編集して調整してください

いう辺りでしょうか。

また今回書いたスクリプトである、

は、 README.md にも書いてある通り、 パブリックドメインとして著作権は放棄したので、 あとはもう似るなり焼くなり自由にお使いください。 っていうかこういう有益なスクリプトにライセンスつけるって合わないよね、と僕は思う。誰にでもかけそうだしね。誰に改造してもらってもうちっとマシにしてほしいという気持ちもあるけど。


いうワケで、先日作った CoreOS's Live ISO を作るための Bash Script の話はそんな感じなんですが、実はその前に、Qiita と Gist の方に、

いうような記事を 英語で 書いておりました。

ただまあ、さすがに freenode の#coreos に流して Communication by English する勇気とやる気と根気がなかったので、数日前から放置しておりましたが、そうだ、これ Bash Script としてまとめた方が使い勝手良くね? とか思い、Public domain な Bash Script に落とし込んだ、というのが今回の話です。

まあ僕は最近、鬱の症状がまったくもって抜けんという感じで、 プログラミングとか全然できてなかったんですが、今週の月曜日からようやく体調が持ち直してきて、

意欲的に何かに取り組むってこんな感じだったんだ!

いうのを実感しております。 いや、何だろう、このあふるるやる気。 何だろう、このハイテンション感。 まさかと思うけど、躁状態ではないよね?これ。 とか若干思わないでもないですが。

ま、そんな感じで、もう数ヶ月ぶりにやる気とか元気とかを取り戻してきたので、もうちょっと、ブログとかプログラミングとか、 そういった創作的な活動を増やしていきたいなーと思ってます。

言うワケで以上、約一ヶ月ぶりの更新でした。 makeiso.shよかった使ってみてください。

それでは。

ノシ

#FIXME

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。