ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

MAAS 1.9.1から1.9.2へのアップデート(が大変だったお話)

MAAS のバージョン1.9.2が2016年4月28日にリリースされたようです。 今回は結構な数のバグフィックスがされたアップデートみたいです。

これまでリリースに気がつかずMAAS 1.9.1を利用していましたが、早速アップグレードをしてみようと思いました。 MAASのアップグレードは一般的なソフトウェアの更新と同様の方法以外何をすることなく、無事アップグレードできました。「aptコマンド万歳」って感じです。

$ sudo apt update && sudo apt upgrade

アップデート後、早速OSをベアメタルサーバーにデプロイしてみました。問題なくプロビジョニングできました。フィックスの数で少々躊躇しましたが、割とすんなりアップグレードできましたね。

そうだXenialをデプロイしてみよう!

一応私の環境はMAASのイメージのミラーをローカルにとってそのサーバーを参照するように構成していました。手順は公式の方法に従ったものです。だいぶ前にミラーをとっていたものを使っていたため、Ubuntu 16.04(Xenial)のデプロイを試してみようとMAASイメージをsstream-mirrorコマンドでミラーをとったらダウンロードが長いのなんの(え、ダウンロードで100kb/sを下回るだって。嘘だろ...)。おまけに何かお腹の調子が今日は良くなく、ちょくちょくトイレに行って戻ってきては「まだダウンロードが終わらないのか」とイライラしていました。カルシウム不足なのでしょう。とりあえず牛乳でも飲みましょうか。

やってきたトラブルとトラブルの解決

sstream-mirrorコマンドを実行したことで、おまけにMAASのイメージファイルの一覧を定義しているsjsonファイル(→こういうの)が更新されてしまい、古いイメージはあるもののsjsonファイルにそのイメージの情報は書かれていないので前のイメージは使えず、結局新しいPrecise、Trusty、Xenial、CentOS6と7のイメージをダウンロードすることにしました(日本からCanonicalの本社があるイギリスにしかないMAASイメージの配布サーバーへのアクセスなので)かなり時間はかかりましたが、ローカルミラーサーバーの構築が完了。イメージのファイルサイズも一緒なので大丈夫かなと思い再度OSのデプロイにチャレンジしたのですが、TrustyとCentOS 7以外起動しなかったりエラーで失敗し、全滅でした。まあ、dailyイメージを使っていたので仕方ないよね?...みたいな話をして、releaseのイメージのミラーをとって事なきを得ました。ただreleaseイメージではCentOSイメージが公開されていないため、次の方法を行ってGenerated Imagesとして登録する必要がありました。つまり、今日やった作業をまとめると、こうやってMAASイメージのミラーの作成とCentOSイメージを利用できるように環境を整えました。

ただここにもカラクリがあって、sstream-mirrorコマンドでまだダウンロードされていなかったファイルはwgetコマンドでメインサーバーから直接ダウンロードしました。そっちの方が速かったので。。

MAASイメージのダウンロード

イメージはApache2サーバーで公開するため、/var/www/html/mirror/images/ephemeral-v2/releasesをダウンロードパスとして指定しています。

$ sudo sstream-mirror --keyring=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg http://images.maas.io/ephemeral-v2/releases/ /var/www/html/mirror/images/ephemeral-v2/releases 'arch=amd64' 'subarch~(generic|hwe-t|hwe-x)' 'release~(precise|trusty|xenial)' --max=1
$ wget http://images.maas.io/ephemeral-v2/daily/centos70/amd64/20160401_01/root-tgz -O centos70-root-tgz
$ wget http://images.maas.io/ephemeral-v2/daily/centos66/amd64/20141129_01/root-tgz -O centos66-root-tgz

ちなみに上記二つのCentOSイメージは事前に正しく起動でき、SSHログインまでできたものを指定しています。CentOS 6のイメージが新しいものはうまく起動できず面倒になったので最後に動作確認したイメージを指定しています。そのため1年以上前のイメージを指定してます。

作業完了後、ブラウザーからは「http://maas-image-server-ip/mirror/images/ephemeral-v2/releases」でアクセスできるので、MAASでそのURLをBoot Image URLとして指定します。

f:id:ytooyama:20160511001606p:plain

MAASイメージの登録

次にダウンロードしたMAASイメージを登録します。ダウンロードしたCentOSイメージをMAASで使えるようにするため、Generated Imagesとして登録します。登録するにはCLIを使います。

CLIでMAASにログイン

方法はMAAS CLIのドキュメントを参照。

$ maas login <profile-name> <http://hostname-or-ip> <key>

(例)maasと言う名前のプロファイルでログインする場合

$ maas login maas http://172.17.24.2/MAAS/api/1.0 exsQGQfS68hEHEbxJw:jFywvTvu3cjZnQFHYB:KKWykDmmPrNE3MuqnaRgnd49EzbeNWfe

CentOSイメージのインポート

maas login後、maas maas boot-resourcesコマンドでインポートしてしばし待ちます。

(例)

$ maas maas boot-resources create name=centos/centos66 architecture=amd64/generic content@=centos66-root-tgz
$ maas maas boot-resources create name=centos/centos7 architecture=amd64/generic content@=centos70-root-tgz

Ubuntuイメージのインポート

UbuntuイメージのインポートはMAASダッシュボードにアクセスして、Precise、Trusty、Xenialを選択します。今回sstream-mirrorコマンドで64bitのイメージのみダウンロードしているのでamd64を選択します。これでOK。

f:id:ytooyama:20160511000557p:plain

これにて平和が訪れましたとさ。

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。