はじめに
現在社内でMAAS+kubernetes環境を構築しようというプロジェクトがあり、
その中で行ったもの、つまづいたところを記述していく.
ゴール
Ubuntuでサーバーを構築し、独立したネットワーク内でUbuntuOSのデプロイをPXEブート経由でできるようになる.
導入前注意事項
MAASサーバーが存在するネットワークにはDHCPが存在しないことを事前に確認する.
DHCPが既存のネットワークでMAASサーバーを構築すると、後の設定でMAASサーバーがDHCPサーバーになるため、既存DHCPと競合する.
DHCPが競合すると、ネットワーク内の端末がIPアドレスを再取得する際にMAASサーバーから取得した場合、ネットワークの外側と通信できなくなる.
また、MAASクライアントになるはずの端末も、MAASサーバーと安定的に通信できなくなる.
(様々な記事を確認したが現状未解決)
構築用端末
MAASサーバー用端末(IP:192.168.200.1)
MAASクライアント用端末(IP:192.168.200.151)
macbookpro
Ubuntuインストール
ubuntuダウンロード
以下のURLからUbuntu ServerのISOイメージをダウンロードする.
http://releases.ubuntu.com/18.04/
Ubuntuイメージの起動ディスク作成
手持ちのUSBメモリにUbuntuのISOイメージを焼き付けて、インストール用メディアを作成する.
USBメモリの確認
MACにUSBメモリを差した後、ターミナルを立ち上げディスクの場所を確認する.
diskutil list
コマンド実行時はUSBメモリは/dev/disk2となっていたので、これを一度MS-DOS形式でフォーマットする.
diskutil eraseDisk MS-DOS UNTITLED /dev/disk2
フォーマットされたUSBメモリをアンマウントしddコマンドで起動ディスクを作成する.
diskutil unmountDisk /dev/disk2
sudo dd if=./Downloads/ubuntu-18.04-live-server-amd64.iso of=/dev/disk2 bs=4028
多少時間がかかるため、コーヒータイム.
イメージ作成が完了したら、デバイスを取り外す.
もし刺さったままなら、
diskutil eject /dev/disk2
を実行してUSBメモリを抜く.
Ubuntuイメージのインストール
MAASサーバ用の端末に先ほど作成したUSBを差し、BOOT画面でUSB起動を指定しインストールを開始.
BOOTデバイスの指定はマシンによって異なるため省略.
インストールのオプションは任意の設定で.
MAASインストール
サーバーにMAASパッケージをインストールする.
$ sudo apt -y update
$ sudo apt -y upgrade
$ sudo apt -y install maas
インストールが完了したら管理者用ユーザの作成.
必要なユーザー名、パスワード、アドレスなどを設定.
SSHキーの登録は後で行うため、空欄のままエンターでスルー.
$ sudo maas createadmin
作成が完了したら「MAASサーバーのアドレス:5240/MAAS/」でログイン.
MAASの設定
ログイン画面が出てくるため、
作成したユーザーでログイン.
ログイン後、イントロページが出てくる.
特に設定をいじる必要はない.
後者の画像では、ダウンロードするUbuntuのOSイメージを選択する.
欲しいバージョンにチェックを入れたら、基本的に自動でダウンロードが始まるため、しばらく待つ.
ダウンロードが完了し、「Status」が「Synced」になったらContinueをクリック
秘密鍵を入力する画面に移るため、Ubuntuサーバー側で鍵を生成する.
特に指定はせずに、空欄のままエンター連打.
$ sudo ssh-keygen -t rsa
サーバーの.sshフォルダに鍵が生成されるため、
そちらの公開鍵の中身をコピーする.
cat .ssh/id_rsa.pub
コピー後はMAASの管理サーバーに戻り、SourceをUploadに変え、隣の入力画面に先ほどコピーした鍵の中身をペーストし、Importをクリック.
問題がなければ「Go to dashboard」をクリック.
準備として、MAASトップページ上部の「Subnets」ページ内、展開したいネットワークVLANのuntaggedを選択.
画面上部の「Take action」から「Provide DHCP」を選択.
MAASサーバーのDHCPレンジが出てくるため、任意の数を指定し、「Provide DHCP」を選択すると、同じページ内のDHCP項目がEnableになり、「Reserved ranges」に追加したネットワーク範囲が表示される.
これで一通りの下準備が完了になる.
MAASクライアントのデプロイ
MAASクライアントとなる端末のBOOT順序でPXE bootの項目を起動順序の一位へする.
その後クライアントの電源を入れると自動でMAASサーバーと通信を開始し、電源が落ちる.
電源が落ちた後は、MAASの管理画面上の「Machines」に端末が追加される.
(端末の名前は仮で動物の名前が入る)
追加されたマシンを選択し、まずは名前の変更をする.
「Configration」内の「Power configuration」で電源オプションを選択.
今回は「Manual」を選択する.
「Machines」ページで、端末のチェックボックスにチェックを入れ、「Take action」から「Commission」を選択した後、クライアント端末の電源を入れる.
再びサーバーとの通信を開始するので終了まで待つ.
無事にCommissionが終了したら、サーバーの管理画面では「Status」が「Ready」になる.
「Take action」から「Deploy」を選択し任意のOSを選択し、デプロイを開始させ、クライアントの電源を入れる.
サーバーからOSがデプロイされるため、しばし待ち、管理画面上でStatus欄がOS名に変われば成功
.
クライアント端末のネットワーク設定について
MAASのクライアント端末は基本はDHCPだが、Staticに指定することも可能.
その場合はOSのデプロイ前に端末の情報ページ内「Interfaces」内の「Actions」-「Edit Physical」を選択し、「Auto assign」を「Static」に変更し、任意のアドレスを指定する.
つまづいたところ
MAASサーバーをインストールした後、設定画面上はDHCPはEnabledになっているが、クライアントに対してアドレスの配布が行われない.
解決方法
管理画面上部「Controllers」内の「Name」にあるマシンを選択(初期だと一つしかないはず)
移ったページ内のServices項目において「dhcpd」にグリーンマークが付いていない場合があるため、一度MAASを再起動するとグリーンマークが付くようになった.
これでもダメな場合は、
sudo dpkg-reconfigure maas-rack-controller
sudo apt-get install maas-rack-controller
sudo maas-rack register --url http://MAASサーバーアドレス:5240/
で治ることもあった.
参考ページ
Mac OSX上でISOイメージからBootable USBを作成する - 1日ひとつだけ強くなる
MAASの環境構築とUbuntuのデプロイ - Qiita
公開鍵暗号を用いてのSSH接続(きほん) - Qiita