目的
JUJU/MAASからOpenStack環境を作る。
参考URL
OpenStack Docs: Install MAAS
Installation | MAAS documentation
Ubuntu16.04でOpenStack(成功) | wabuntu
Add Nodes | MAAS documentation
Ubuntu MAAS/Juju 2.0 で OpenStack Mitaka 構築 (その1) - Qiita
構成メモ
サーバは3台用意
MAASサーバ1台(Ubuntu16.04LTS)
KVMサーバ2台(CentOS7)
MAASにKVMホストを2台登録して使う
KVM1号機上のVM1台をJUJUコントローラにする
KVM2号機上のVM1台をOpenStackコンポーネント展開するLXDサーバにする
メモ
OSインストール時にMAASインストール可能
しかしインストーラの処理中にエラーになる。。。
(ubuntu-16.04.3-server-amd64.isoで確認)
大人しくOSインストールしてからMAASパッケージを入れる。
手順
※ KVMサーバ構築手順は省略。以下作業は明示的に指定がない限りMAASサーバで実施
※ MAASでデプロイした仮想マシンはaptを実行する為、プロキシ設定しない場合は、仮想マシンがインターネットに接続できる必要あり
※ KVM・MAASは時刻同期できている状態であること
1. OSインストール & 基本設定
2. パッケージアップデート
sudo apt update && sudo apt full-upgrade
3. MAASインストール
sudo apt install maas
4. MAAS管理者アカウント作成
sudo maas createadmin
※鍵のインポートはここではしない
※管理者アカウントはmadminで作成
5. libvirt-binインストール
sudo apt install libvirt-bin
6. KVMサーバへのvirsh接続設定
sudo chsh -s /bin/bash maas sudo su - maas ssh-keygen -f ~/.ssh/id_rsa -N '' ssh-copy-id -i ~/.ssh/id_rsa root@KVM1号機IP ssh-copy-id -i ~/.ssh/id_rsa root@KVM2号機IP virsh -c qemu+ssh://root@KVM1号機IP/system list --all virsh -c qemu+ssh://root@KVM2号機IP/system list --all
7. JUJUコントローラ用VM作成
Virt-managerで以下仮想マシン作成
TYEP: Linux-Ubuntu16.04LTS
NIC: 2個
vCPU: 2個
MEM: 8GB
Boot OptionでMAAS DHCPが動くNWに接続したNICを一番上にする
9. MAAS管理Web画面にログインし各種設定
192.168.0.100:5240/MAAS/.
【鍵登録】
MAASサーバでssh-keygetコマンド実行し公開鍵を登録
【DHCP有効化】
"Subnet"タブ→Fabric(NW)一覧表示→DHCP動かすFabricの"VLAN"クリック→右上"Take action"より"Provider DHCP"をクリックして設定
【KVMサーバのPOD登録】
PODタブより追加。
※公開鍵認証設定済みなのでパスワードは入れない。
※追加後、KVMサーバ上のVMが起動しNode登録コミッション処理が動く。Network Bootに失敗してたら対処必要。
【JUJU/OpenStackサーバ作成】
KVMの仮想マシンとして作成
【コミッション】
POD→KVMサーバ→Take ActionよりRefreshを押す
これで、仮想マシンがコミッションされる。
※それぞれ"juju"と"openstack"のタグをつける
8. JUJUクライアントインストール & セットアップ
MAASサーバにインストールする
sudo add-apt-repository -u ppa:juju/stable sudo apt install juju
MAASエンドポイント認証キーの取得
MAASにログインし右上"madmin"をクリック
クラウド登録
juju add-cloud mymaas
以下を指定
"maas"
"http://MAAS_IPアドレス:5240/MAAS/"
DNSサーバ等
MAASがDNSになる。ここで設定するのはMAASのForwarder先のDNSサーバ。
DNSSECに対応している必要があり。
資格情報設定
juju add-credential mymaas
以下を指定
"madmin"
エンドポイント認証キー
JUJUコントローラーデプロイ
juju bootstrap --constraints tags=juju mymaas maas-controller
※jujuコマンド
利用可能クラウド出力
juju clouds
資格情報出力
juju credentials
デプロイノード出力
juju status
コントローラの再デプロイ
juju kill-controller maas-controller juju bootstrap --constraints tags=juju maas maas-controller
モデル作成
モデルはアプリケーションの入れ物
jujuコントローラはdefaultモデルに作成されている
OpenStack用のモデルを別に作る(管理・保守性がよくなる)
juju add-model uos
※上記でuosモデルにスイッチされる