Build OpenStack on Azure

Build OpenStack on Azure

Disini saya akan membangun infrastruktur cloud OpenStack diatas cloud lainnya yaitu azure, mungkin agak aneh juga tapi tujuan saya disini lebih ke belajar OpenStack dikarenakan hardware laptop saya tidak memungkinkan untuk membangun OpenStack.

Environment

  • Standard D4s_v3 (4 vcpus, 16 GiB memory)
  • Disk root 60GB
  • 1 network interface
  • OS : Ubuntu 20.04 LTS (Focal fossa)

Langkah-langkah

  1. Pertama instalasi Azure CLI kemudian login/autentikasi akun
    az login
    
  2. Membuat VM
    az vm create `
      --name openstack-controller `
      --resource-group "openstack" `
      --subscription "Azure subscription 1" `
      --image Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest `
      --location westeurope `
      --admin-username rozaqi `
      --ssh-key-values ~/.ssh/id_rsa.pub `
      --nsg-rule SSH `
      --os-disk-size-gb 60 `
      --size Standard_D4s_v3
    
    1_LI.jpg apabila belum ada public key bisa buat terlebih dahulu dengan perintah
    ssh-keygen
    
  3. akses VM melalui IP public yang sudah didapat
    ssh user@IP-Public
    
  4. Ganti localhost dengan hostname pada file /etc/hosts
    sudo tee /etc/hosts << EOT
    $(hostname -i) $(hostname)
    EOT
    
  5. Buat dummy interface yang nantinya akan digunakan ovs sebagai external bridge port sehingga tidak perlu menambahkan nic tambahan
    sudo ip tuntap add mode tap br_ex_port
    sudo ip link set dev br_ex_port up
    
  6. Update VM
    sudo apt update
    
  7. Install paket yang dibutuhkan untuk kolla-ansible
    sudo apt install -y python3-dev libffi-dev gcc libssl-dev python3-venv net-tools
    
  8. Disini saya menggunakan cinder nfs sebagai backend, install dan konfigurasi nfs
    sudo apt install -y nfs-kernel-server
    sudo mkdir /kolla_nfs
    echo "/kolla_nfs IP(rw,sync,no_root_squash)" | sudo tee -a /etc/exports
    echo "IP:/kolla_nfs" | sudo tee -a /etc/kolla/config/nfs_shares
    sudo systemctl restart nfs-kernel-server # Pastikan tidak terjadi error
    
  9. Buat direktori OpenStack
    mkdir kolla && cd kolla
    
  10. Buat environment dan aktifkan
    python3 -m venv rozaqi
    source rozaqi/bin/activate
    
  11. Install ansible dan kolla-ansible
    pip install -U pip
    pip install wheel
    pip install 'ansible<2.10' kolla-ansible==10.3.0
    
  12. Salin file konfigurasi kolla
    sudo mkdir -p /etc/kolla/config
    sudo cp -r rozaqi/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
    sudo chown -R $USER:$USER /etc/kolla
    cp rozaqi/share/kolla-ansible/ansible/inventory/* .
    kolla-genpwd
    
  13. Uji koneksi ansible hosts
    ansible -i all-in-one all -m ping
    
  14. Konfigurasi globals pada kolla
    kolla_base_distro: "ubuntu"
    kolla_install_type: "source"
    openstack_release: "ussuri" 
    kolla_internal_vip_address: "10.0.0.40"
    network_interface: "eth0"
    neutron_external_interface: "br_ex_port"
    enable_cinder: "yes"
    enable_cinder_backend_nfs: "yes"
    enable_neutron_provider_networks: "yes"
    
  15. Deploy OpenStack
    kolla-ansible -i ./all-in-one bootstrap-servers
    kolla-ansible -i ./all-in-one prechecks
    pip install jinja2==3.0.3 # downgrade jinja2 ke versi 3.0.3 agar tidak terjadi error saat deploy
    kolla-ansible -i ./all-in-one deploy
    
  16. Install OpenStack CLI
    pip3 install python-openstackclient python-barbicanclient python-heatclient python-octaviaclient
    
  17. Generate credential OpenStack yang nantinya akan digunakan untuk autentikasi
    kolla-ansible post-deploy
    . /etc/kolla/admin-openrc.sh
    
  18. Set external network, range, dan gateway sesuaikan dengan environment
    export EXT_NET_CIDR='10.0.3.0/24'
    export EXT_NET_RANGE='start=10.0.3.11,end=10.0.3.199'
    export EXT_NET_GATEWAY='10.0.3.1'
    ./rozaqi/share/kolla-ansible/init-runonce
    
  19. Disini saya melakukan pengetesan dengan membuat beberapa instance 4.PNG
  20. Izinkan NAT agar instance dapat mengakses internet dan konfigurasi iptables agar FIP instance OpenStack dapat diakses melalui Node Controller
    sudo ifconfig br-ex $EXT_NET_GATEWAY netmask 255.255.255.0 up
    sudo iptables -t nat -A POSTROUTING -s $EXT_NET_CIDR -o eth0 -j MASQUERADE
    
  21. Akses instance kemudian coba ping antar instance dan tes internet

5.PNG

Tampilan Horizon dashboard

38.PNG

OpenStack berjalan dengan baik, disini saya melakukan bermacam-macam pengujian dan tidak terdapat masalah.

Did you find this article valuable?

Support Abdul Rozaqi W by becoming a sponsor. Any amount is appreciated!