5.5.1 IDIH Manual Deployment on KVM

Perform the following procedure for IDIH Manual Deployment on KVM using IDIH VMDK image:

  1. Log in to the KVM host machine.
  2. Navigate to a directory where enough space is available.
  3. To download the IDIH deliverable images, contact Oracle Support Team and extract the package to access the Kafka, MySQL, and Service VMDK Images.
  4. Download the zip file containing all manual installation scripts for the specific version from the OHC. Extract the content for that specific version.

    Figure 5-1 Oracle Help Center


    Oracle Help Center

  5. Perform the following command to run the script:
    ./create_manual_kvm_idihvms.sh
    1. Example for MySql VM:
      
      Enter VM type (mysql/kafka/service): mysql
      Enter IDIH Image path (EX: /mnt/data): /mnt/data/Images
      Enter source VMDK image file name: idih-mysql-9.x.0.vmdk
      Enter VM name: idih-mysql
      Enter desired disk size in GB: 220
      Enter bridge names separated by space (e.g., xmi imi): xmi imi
    2. Example for Kafka VM:
      
      Enter VM type (mysql/kafka/service): kafka
      Enter IDIH Image path (EX: /mnt/data): /mnt/data/Images
      Enter source VMDK image file name: idih-kafka-9.x.0.vmdk
      Enter VM name: idih-kafka
      Enter desired disk size in GB: 170
      Enter bridge names separated by space (e.g., xmi imi xsi1): xmi imi xsi1
    3. Example for Service VM:
      
      Enter VM type (mysql/kafka/service): service
      Enter IDIH Image path (EX: /mnt/data): /mnt/data/Images
      Enter source VMDK image file name: idih-service-9.x.0.vmdk
      Enter VM name: idih-service
      Enter desired disk size in GB: 120
      Enter bridge names separated by space (e.g., xmi imi): xmi imi
  6. After all the three VMs are created successfully, the login screen appears where user can login using the required credentials.

MySQL Setup

Perform the following steps to set up MySQL on the MySQL VM:

  1. Access the MySQL VM: log in and navigate to the MySQL directory.
  2. Run the following commands to expand disk partition and filesystem
    
    growpart /dev/vda 1
    resize2fs /dev/vda1
  3. Identify Network Interfaces: Run ifconfig and note down the device names: enp1s0 (XMI) and enp2s0 (IMI).
  4. Configure Static IP Addresses:
    1. XMI:
      nmcli con add type ethernet ifname enp1s0 con-name enp1s0 ipv4.method manual ipv4.addresses 10.75.249.231/27 ipv4.gateway 10.75.249.225 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp1s0
    2. IMI:
      nmcli con add type ethernet ifname enp2s0 con-name enp2s0 ipv4.method manual ipv4.addresses 192.168.1.251/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp2s0
  5. Run ip or ifconfig to verify all configured networks and IPs.
  6. Adjust Metric for XMI IP Access:
    1. Get the XMI interface name using nmcli con show.
    2. Run the following commands to adjust the metric for the XMI IP:
      
      nmcli con mod '<XMI_INTERFACE_NAME>' ipv4.route-metric 1
      nmcli con up '<XMI_INTERFACE_NAME>'
      
  7. Run MySQL Setup Script:
    1. Navigate to the /opt/ directory.
    2. Locate or download the manual_mysql_setup.sh script.
    3. Run the setup script:
      ./manual_mysql_setup.sh
  8. When prompted, enter the IMI IP of the MySQL VM as the bind address.
  9. After the script completes, MySQL will be set up successfully on the VM.

Kafka Setup

Perform the following steps to set up Kafka on the Kafka VM:

  1. Access the Kafka VM: Log in and navigate to the Kafka directory.
  2. Run the following commands to expand disk partition and filesystem:
    
    growpart /dev/vda 1
    resize2fs /dev/vda1
    
  3. Run ifconfig and note down the device names: enp1s0 (XMI), enp2s0 (IMI), and enp3s0 (XSI).
  4. Configure Static IP Addresses:
    1. XMI:
      nmcli con add type ethernet ifname enp1s0 con-name enp1s0 ipv4.method manual ipv4.addresses 10.75.249.253/27 ipv4.gateway 10.75.249.225 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp1s0
      
    2. IMI:
      nmcli con add type ethernet ifname enp2s0 con-name enp2s0 ipv4.method manual ipv4.addresses 192.168.1.191/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp2s0
      
    3. XSI:
      nmcli con add type ethernet ifname enp3s0 con-name enp3s0 ipv4.method manual ipv4.addresses 10.196.84.71/27 ipv4.gateway 10.196.84.33 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp3s0
      
  5. Run ip or ifconfig to verify the networks and IPs.
  6. Adjust metric for XMI IP access:
    1. Get the XMI interface name using nmcli con show.
    2. Run the following commands:
      nmcli con mod '<XMI_INTERFACE_NAME>' ipv4.route-metric 1
      nmcli con up '<XMI_INTERFACE_NAME>'
      
  7. Run Kafka Setup Script:
    1. Navigate to the /opt/ directory.
    2. Locate or download the manual_kafka_setup.sh script.
    3. Perform the following command to run the script:
      ./manual_kafka_setup.sh
  8. Provide configuration inputs during execution:
    1. Enter the IMI IP of the Kafka VM when prompted for the Kafka IMI IP.
    2. Enter the XSI IP of the Kafka VM when prompted for the Kafka XSI IP.
    3. Kafka and Kraft services will start on the provided IPs.
  9. After successful completion, Kafka will be set up and health-checked.
  10. Optional Configuration for Kafka XMI IP
    1. If user need to use Kafka's XMI IP instead of the default XSI IP, modify the broker.properties file (or individual brokerX.properties files for IDIH 9.3):
      advertised.listeners=INTERNAL_PLAINTEXT://<IP>:9092,INTERNAL_SSL://<IP>:9093,EXTERNAL://[kafka_xmi]:9094
      
    2. Replace kafka_xmi with the Kafka XMI IP and comment the default XSI line:
      #advertised.listeners=INTERNAL_PLAINTEXT://<IP>:9092,INTERNAL_SSL://<IP>:9093,EXTERNAL://<kafka_xsi>:9094
      
  11. Restart Kafka and Kraft services:
    
    systemctl restart kraft-controller
    systemctl restart kafka
    

Service Setup

Perform the following steps to set up the services on the Service VM:

  1. Access the Service VM: Log in and navigate to the Service directory.
  2. Run the following commands to expand disk partition and filesystem:
    
    growpart /dev/vda 1
    resize2fs /dev/vda1
    
  3. Run ifconfig and note down the device names: enp1s0 (XMI) and enp2s0 (IMI).
  4. Configure Static IP Addresses:
    1. XMI:
      nmcli con add type ethernet ifname enp1s0 con-name enp1s0 ipv4.method manual ipv4.addresses 10.75.249.253/27 ipv4.gateway 10.75.249.225 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp1s0
      
    2. IMI:
      nmcli con add type ethernet ifname enp2s0 con-name enp2s0 ipv4.method manual ipv4.addresses 192.168.1.191/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 autoconnect yes
      nmcli con up enp2s0
      
  5. Run ip or ifconfig to verify the networks and IPs.
  6. Adjust metric for XMI IP access:
    1. Get the XMI interface name using nmcli con show.
    2. Run the following commands:
      nmcli con mod '<XMI_INTERFACE_NAME>' ipv4.route-metric 1
      nmcli con up '<XMI_INTERFACE_NAME>'
      
  7. Edit the Docker-Compose File
    1. Navigate to the Services/ directory.
    2. Edit the cnidih_VM.yaml file.
      1. Replace <REPLACE WITH SOAM VIP> with the active SOAM IP.
      2. Enable NFCONFIG_CLIENT_ENABLED=true in the Protrace section.
      3. Uncomment the below command only for IPv6 setup:
        networks:
          cnidih-network:
           external: true
        #    enable_ipv6: true
        # Uncomment above line if you are using IPv6 setup
        # please take care of indentation ( Both of the below properties should be at same level )
        # enable_ipv6: true
        # external: true
        
    3. Save and exit.
  8. Run the Service Setup Script:
    1. Go to the /opt directory.
    2. Locate or download the manual_service_setup.sh script.
    3. Run the script:
      ./manual_service_setup.sh
  9. Enter the following when prompted:
    1. Service IMI IP
    2. Service XMI IP
    3. Kafka IMI IP
    4. MySQL IMI IP

      Note:

      For ipv6 setups, the above ips have to be entered in square brackets ( [] ).
    5. After these inputs are provided, the script will start the required services and proceed with the health check.
  10. UI Access:
    • Perform the following command to verify that all services are up and running:
      podman ps -a
    • Access the UI at:
      https://<SERVICE XMI IP>
  11. Following are the steps to configure Chrony (NTP) for all the 3 VMs:
    1. Optional Step (If Required):
      1. If outbound traffic is restricted at the OpenStack security group level, ensure UDP port 123 (NTP) is allowed for egress communication.
        
        Direction: Egress
        Protocol: UDP
        Port: 123
        Destination: <NTP server IP>/32(recommended)
      2. From the VM, run the following command to configure the NTP:
        vi /etc/chrony.conf
      3. Comment below lines at the beginning of the file, if present:
        
        #server cosprings1-swi-5-rtr-1.us.oracle.com iburst
        #server cosprings1-swi-6-rtr-1.us.oracle.com iburst
        #server brmdc04-102-ck-rtr-1-lo0.us.oracle.com iburst
        #server brmdc04-102-ck-rtr-2-lo0.us.oracle.com  iburst
      4. Run the following command to add the NTP server IP:
        server <NTP_SERVER_IP> iburst
      5. Run the following command to restart Chrony:
        systemctl restart chronyd
      6. Run the following command for Force Immediate Time Synchronization:
        chronyc makestep
      7. Run the following command to verify NTP Synchronization:
        chronyc sources -v
      8. Run the following command to set system Timezone:
        EX: timedatectl set-timezone Asia/Kolkata
      9. Run the following command to verify Timezone and NTP Status:
        timedatectl

    This completes the setup for MySQL, Kafka, and Services. The deployment is now completed.