前回はWebUIで設定できることを中心にまとめてみたので、今回はCLIで行った設定を整理していく。中にはWebUIからも設定できるものの、頻繁に行う作業なのでCLIでやるのが楽というものと、WebUIからは設定できないためにCLIで対応したものがある。いずれにせよ、何らかの事情でCLIで設定するのが妥当と考えたものたちになる。とにもかくにもmaasサーバのterminalでログインしないと何も出来ない。以下のようにapikeyを出力して、それを読み込む形でログインする。一度ログインしてしまえば再起動するまでログインしたままだ。
maas-region apikey --username=admin > maas.key
maas login admin http://maas1:5240/MAAS/api/2.0 - < maas.key
まずは『.maas』に設定されているデフォルトドメインを変更したい。新たなドメインを追加して、そちらをデフォルトに変更する方法もあるが、このやり方だとDHCPで自動生成されるDNSレコードが、id=0のmaasドメインに作られてしまう。そこで、id=0のドメインを変更する方法を探したが、WebUIではどうしても見つからない。CLIで調べてみると意外とすぐ見つかった。こんなことなら最初からCLIで作業する方がいいね。利用した具体的なコマンドは以下のようなものだった。
maas admin domains read
maas admin domain set-default 4
maas admin domain update 0 name=domain.com
基本的にMAASで構築している限り、DNSレコードは自動生成されていくが、それ以外のサーバやネットワーク機器たちの名前を登録する場合は、手動で行う必要がある。AレコードとCNAMEを作るのは以下のコマンド。
maas admin dnsresources create fqdn=ns.domain.com ip_addresses=192.168.1.1
maas admin dnsresource-records create fqdn=www.domain.com rrtype=cname rrdata=ns
続いて、ホストの構築作業関連。頻繁にやってると、WebUI触るのが億劫になってきて、以下のようなコマンドを複数行コピペして、一気にDeployしたりしだす。ホストに対する作業はMAASが機械的に発行するsystem_idという文字列を指定して命令する必要がある。ホストの一覧から任意のホストのsystem_idを調べて、releaseする作業を行ってみる。MAAS上でreleaseを行うと、commission直後の状態に戻ることになり、改めてdeploy作業を行うことが出来るようになる。jsonなのでjqを使うと便利です。
maas admin machines read | jq '.[]|{hostname,system_id}'
maas admin machines read hostname=server1
maas admin machines read hostname=server1 | jq .[].system_id
maas admin machine read aabbcc
maas admin machine release aabbcc
commission直後に私がよくやる作業は、NICのbridge化と静的IPアドレスの付与。一度やってしまえば、release後にまたやる必要はないけど、IP変更したいときは実行したりする。こちらもNICの管理番号に対して命令を発行するので、それを確認しながらの作業となる。IPアドレスの設定が終わったらdeployを実行する。
maas admin machines read hostname=server1 | jq .[].system_id
maas admin interfaces read aabbcc | jq '.[]|{id, type, name}'
maas admin interfaces create-bridge aabbcc name=br0 parent=5
maas admin interfaces read aabbcc | jq '.[]|select(.type == "bridge")|{id, type, name}'
maas admin interface link-subnet aabbcc 6 mode=static subnet=192.168.1.0/24 ip_address=192.168.1.10
maas admin machine deploy aabbcc
少し探せば、大体やりたいことはCLIで行うことが出来そうだ。今はすべて手動で発行してるけど、いずれは構成管理に組み込んで自動化していくことも問題なさそう。次回はバックアップとリストア作業かなあ。冗長化もやりたいんだけど、他にもやりたいこと多くて後回ししたい。。。配備OSのカスタマイズもまだまだ直したいところがいっぱいあるしね。