Kembali ke Beranda
Networking

Instalasi MAAS untuk Provisioning OpenStack

Tutorial instalasi MAAS sebagai provisioning layer untuk OpenStack, mulai dari uninstall MAAS lama, instalasi MAAS menggunakan Snap Test DB, konfigurasi MAAS dengan PostgreSQL lokal, pembuatan admin, setup SSH key, akses dashboard, hingga troubleshooting issue DNS NXDOMAIN dan AppArmor pada MAAS Snap.

MAAS dipakai sebagai provisioning layer untuk mendaftarkan, mengelola, dan men-deploy bare metal yang nantinya dipakai oleh Juju/OpenStack.

1. Uninstall MAAS Lama

Gunakan bagian ini jika sebelumnya sudah pernah install MAAS dan ingin mulai bersih.

BASH
sudo snap remove maas maas-cli maas-test-db
sudo apt-get purge maas maas-cli maas-cluster-controller maas-common maas-dhcp maas-dns maas-region-controller python-django-maas python-maas-client python-maas-provisioningserver ; apt-get autoremove
sudo apt-get purge maas ; sudo apt-get autoremove

2. Instalasi MAAS dengan Snap Test DB

Versi ini cocok untuk lab atau environment kecil.

BASH
sudo snap install --channel=2.8/stable maas-test-db
sudo snap install --channel=2.8/stable maas
sudo maas init region+rack --maas-url http://<MAAS_IP>:5240/MAAS --database-uri maas-test-db:///
sudo maas createadmin --username admin --password <PASSWORD> --email <EMAIL> --ssh-import lp:<LAUNCHPAD_USER>

Command alternatif:

BASH
sudo snap install maas
sudo maas init --help
sudo maas init region+rack --database-uri maas-test-db:///
sudo maas createadmin

Contoh input create admin:

TEXT
Username: <USERNAME>
Password:
Again:
Email: <EMAIL>

3. Instalasi MAAS dengan PostgreSQL External Lokal

Install PostgreSQL:

BASH
sudo apt install -y postgresql
sudo -u postgres psql -c "CREATE USER \"admin\" WITH ENCRYPTED PASSWORD '<PASSWORD>'"
sudo -u postgres createdb -O "admin" "maassc228"

Edit konfigurasi PostgreSQL:

BASH
sudo nano /etc/postgresql/12/main/pg_hba.conf

Tambahkan rule:

TEXT
host    maas            admin           0/0                     md5

Restart PostgreSQL dan init MAAS:

BASH
sudo /etc/init.d/postgresql restart
sudo maas init region+rack --database-uri "postgres://admin:<PASSWORD>@localhost/maassc228_2"

4. SSH Key untuk MAAS

Masuk ke mesin MAAS, lalu generate SSH key:

BASH
ssh-keygen

Public key akan berada di:

TEXT
/home/<USER>/.ssh/id_rsa.pub

Ambil file tersebut untuk diisikan ke public key MAAS.

5. Akses Dashboard MAAS

TEXT
http://<MAAS_IP>:5240/MAAS

6. Issue: Alert NXDOMAIN pada MAAS / DNS

Jika muncul alert:

TEXT
Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001

Edit /etc/nsswitch.conf:

BASH
sudo nano /etc/nsswitch.conf

Ubah bagian hosts menjadi:

TEXT
hosts:          resolve files dns

Edit /etc/systemd/resolved.conf:

BASH
sudo nano /etc/systemd/resolved.conf

Isi contoh:

INI
[Resolve]
DNS=8.8.8.8 8.8.4.4
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
Cache=yes
DNSStubListener=yes

Restart service:

BASH
sudo systemctl restart systemd-resolved
systemctl status systemd-resolved

7. Issue AppArmor MAAS Snap Tidak Bisa Akses Device

Masuk ke folder AppArmor profile:

BASH
cd /var/lib/snapd/apparmor/profiles
sudo nano snap.maas.supervisor

Tambahkan akses device:

TEXT
/dev/sda r,
/dev/sr0 r,
/etc/gss/mech.d/ r,

Reload AppArmor:

BASH
sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.maas.supervisor
maasopenstackjujuprovisioningbare metalsnappostgresqlssh keymaas dashboarddnsnxdomainsystemd-resolvedapparmorubuntucloud infrastructure