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