はじめに
MAASは、UbuntuのCanonicalが提供している、OSのデプロイ等のツールです。
OSは、Ubuntu、CentOS、Windows Serverやその他Linuxが可能です。
ネットワーク内の新規マシンを自動的に発見し、登録や設定をしてくれます。
Chef、Puppet、SaltやAnsible等のツールと共存も可能です。
特に、Jujuと連携する事で、Kubernetes、OpenStackやSpark等の環境を簡単に構築する事が出来ます。
今回は、MAASに関して記載します。
環境
MAASサーバー
スペック
CPU: Core i7 3GHz
メモリ: 2GB
HDD: 100GB
OS: Ubuntu Server 16.04.3
ネットワーク
IPアドレス: 192.168.1.254
ネットマスク: 255.255.255.0
Gateway: 192.168.1.1
DNS: 8.8.8.8
MAASクライアント
スペック
CPU: Core i7 3GHz
メモリ: 2GB
HDD: 100GB
OS: Ubuntu Server 16.04.3
BMC: 無い場合は、一部手動になります。
ネットワーク
下記は、MAASサーバーのDHCPによって設定されます
IPアドレス: 192.168.1.2
ネットマスク: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.254
DHCP: 192.168.1.254
サービス
ネットワーク内には、既存DHCPが存在しない事
なぜなら、MAAS自身がDHCPを提供し、新規マシンへのOSのデプロイの管理等を行うためです。
ドキュメント
下記の公式ドキュメントを参照しています。
https://www.ubuntu.com/server/maas
https://www.ubuntu.com/download/server/provisioning
https://maas.io/
https://docs.ubuntu.com/maas/2.2/en/
インストール
Ubuntu Serverのインストール
Ubuntu Server 16.04 LTSをクリーンインストールして下さい。
また、DNSサーバーとDHCPサーバーは、MAASが提供するので、インストールしないで下さい。
ただし、DNSの設定は、必要です。上記の環境は、Google提供のDNS(8.8.8.8)を設定しています。
MAASのインストール
パッケージのアップデートとMAASのインンストールを行います。
$ sudo apt -y update
$ sudo apt -y upgrade
$ sudo apt install maas
省略
続行しますか? [Y/n] y
管理者の作成
下記を適当に入力して下さい。
ただし、Import SSH keysは、後からでもOKです。
SSH Keysは、OSをデプロイしたマシンへ自動的に追加されます。
$ sudo maas createadmin
Username:
Password:
Again:
Email:
Import SSH keys [] (lp:user-id or gh:user-id):
Web管理画面の表示
下記のURIを参考にWeb管理画面を表示して、上記で設定した Username と Password でログインして下さい。
http://192.168.1.254:5240/MAAS/
設定
Welcome to MAASのRegion name、Connectivityの色々な設定は変更不要ですが、状況に応じて変更して下さい。
デフォルトでは、16.04 LTS / amd64 のイメージがダウンロードされます。
必要に応じて、その他のイメージにチェックを入れて Save selection をクリックして下さい。
問題なければ、Continueをクリックしてください。
SSHキーを登録します。
SourceにUploadを選択してPublic keyをペーストしてImportをクリックして下さい。
問題なければ、Go to dashboardをクリックして下さい。
DHCPを有効にします。
SubnetsタブからVLANのuntaggedをクリックします。
Take actionからProvide DHCPをクリックします。
Dynamic range start IPとend IPを設定し、Provide DHCPをクリックします。
今回は、192.168.1.200から192.168.1.253に設定しました。
イメージ
指定したイメージがダウンロード完了しているかを確認します。
クライアントのPXE設定
クライアントのPXEを有効にして、起動の優先順位をネットワークを上位、ハードディスクを下位にして下さい。
クライアントのPXE起動
ネットワークカードからPXEで起動が始まります。
MAASから必要なデータ等がダウンロードされます。
完了後、Web画面のNodeにマシンが表示されます。
もし、クライアントがIPMI等に対応して入れば、Powerに電源アイコンが表示されるはずです。
IPMI等に対応していれば、この画面から電源のON/OFFできるようになります。
クライアントの設定
マシン名を適当に変更して下さい。今回は ubuntu.maas にしました。
また、PowerをManualにしました。もし、IPMI等に対応していれば、適当に選択して下さい。
コミッション
Take actionのCommissionをクリックします。オプションのチェックも特に必要ありません。
Commission machineをクリックしてクライアントの電源を入れて下さい。
クライアントの Status が Ready になれば完了です。
これで、いつでもOSのデプロイ / アンデプロイができるようになりました。
デプロイ
クライアントにチェックを入れて、Take action から Deploy をクリックします。
次に、Choose your imageで適当なイメージを選びデプロイを開始します。
IPMI等に対応していない場合は、電源を手動で入れて下さい。
デプロイが始まると Status が Deploying Ubuntu 16.04 LTS になります。
デプロイが完了すると Status が Ubuntu 16.04 LTS になります。
SSHで接続、インターネットへの疎通確認
クライアントのIPアドレスを確認して下さい。
実は、デプロイの前にIPアドレスをStatic / Auto assing等から設定をする事が出来ます。
今回は、Auto assingで192.168.1.4が設定されました。
SSHでアクセスします。最初に設定したSSHキーでアクセスします。
下記は、SSHキーに id_rsa を指定してます。
ユーザー名は ubuntu になります。
IPアドレスは上記で確認した通り、 192.168.1.4 です。
$ ssh -i .ssh/id_rsa ubuntu@192.168.1.4
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-97-generic x86_64)
省略
ubuntu@ubuntu:~$
ubuntu@ubuntu:~$ ping maas
PING maas.maas (192.168.1.254) 56(84) bytes of data.
64 bytes from maas.maas (192.168.1.254): icmp_seq=1 ttl=64 time=0.409 ms
ubuntu@ubuntu:~$ ping www.ubuntu.com
PING www.ubuntu.com (91.189.89.118) 56(84) bytes of data.
64 bytes from www-ubuntu-com.nuno.canonical.com (91.189.89.118): icmp_seq=1 ttl=47 time=234 ms
アンデプロイ
マシンにチェックを入れて、Take action から Release をクリックします。
その後、Status が Ready になります。別のOSのデプロイを試して下さい。
おわりに
今回は、MAASの基本的な使い方を紹介しました。
あと、MAASは、RESTを提供していています。
Jujuは、このRESTを利用してMAASのReady状態のマシンを利用して環境を構築します。
今後は、Jujuと連携してKubernetes、OpenStackやSparkの環境構築をしたいと思います。
あと、MAASの他の機能の確認。IPMI、KVMの活用などをしたいと思います。