Document toolboxDocument toolbox

Bare-Metal Deployment

Important Note

The minimum system requirements specified for NIOS-X servers must be dedicated to the server you plan to deploy. They cannot be shared with or used for other non-Infoblox applications. Doing so will negatively affect the performance of your Infoblox Platform services. For information about the minimum system requirements and port usage, see the following:

Prerequisites for Bare-Metal Deployment

Before you start the deployment, complete the following:

  • Ensure that your Docker or containerd environment meets the minimum deployment requirements.
  • Open all required ports on the NIOS-X servers, as list in Port Usage for Bare-Metal NIOS-X Servers, in addition to the ports required for firewalls.
  • Ensure that there are no other processes using port 53 on the server system on which your NIOS-X server will be deployed. For example, some Ubuntu systems running local DNS cache (system-resolved) might occupy port 53, and your server might not function properly in this case.
  • Dind (Docker-in-Docker) configuration is not supported for NIOS-X server deployments.
  • Avoid CIDR overlapping with the default CIDR.
  • No K3s binary should be placed in this directory: /usr/local/bin/.
  • SELinux policy is properly set up.
  • Install containerd on the instance and make sure it is running.
  • Install package for “dig“ utility:
    • Red Hat: yum install bind-utils
    • Ubuntu: apt-get install dnsutils 
      • Note: If the script checking for the 'dig' utility is not installed,  the following error will occur:

        [ec2-user@ip-10-0-5-12 ~]$ sudo ./bloxone_installer_v1.9.1.sh -j xxxxxx
        Error: The following utilities are not installed: dig. Please install them before running the script.

For Red Hat 8.x and 9.x:

Note

 Do not install Docker on Red Hat and just install the containerd.io.

sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

sudo dnf update -y

sudo dnf install -y containerd.io

sudo mkdir -p /etc/containerd

sudo containerd config default > /etc/containerd/config.toml

sudo systemctl enable containerd

sudo systemctl restart containerd

Execute the following commands:

sudo yum install -y container-selinux selinux-policy-base
sudo yum install -y https://rpm.rancher.io/k3s/stable/common/centos/8/noarch/k3s-selinux-0.3-0.el8.noarch.rpm

Then, disable nm-cloud-setup.service using the following command:

sudo systemctl disable nm-cloud-setup.service

After you install the required package, complete the following:

  1. Disable the firewall service.
    • systemctl stop firewalld.service
    • systemctl disable firewalld.service
  2.  Mask the firewalld service.
    • systemctl mask firewalld.service
    • systemctl status firewalld.service    
  3. Install and enable the iptables service.
    • dnf install iptables-services
    • systemctl enable iptables
    • modprobe ipv6
    • modprobe ip6_tables
    • systemctl start iptables
    • systemctl status iptables
  4. Reboot the system.

Ensure the /var partition has at least 20 GB of free disk space. For Azure instances, use the command below to increase disk space. Note that commands may vary depending on the instance type.

lvextend -L+12G /dev/rootvg/varlv

xfs_growfs /dev/mapper/rootvg-varlv

For Ubuntu 20 and Ubuntu 22:

In which systemd-resolved is running, perform the following before deploying a NIOS-X server:

Stop systemd-resolved and remove the corresponding resolv.conf, as follows:

systemctl disable systemd-resolved.service

systemctl stop systemd-resolved

rm -f /etc/resolv.conf

Check and verify if the NetworkManager service exists by performing the following on the NIOS-X server:

systemctl status the NetworkManager

If the NetworkManager service exists, whether it is in the running or non-running state, stop the service by performing the following:

sudo systemctl stop NetworkManager.service

sudo systemctl disable NetworkManager.service

sudo systemctl stop NetworkManager-wait-online.service

sudo systemctl disable NetworkManager-wait-online.service

sudo systemctl stop NetworkManager-dispatcher.service

sudo systemctl disable NetworkManager-dispatcher.service

sudo systemctl stop network-manager.service

sudo systemctl disable network-manager.service

Set resolver, as follows:

tee /etc/resolv.conf << END

nameserver 8.8.8.8

END

  • Disable unattended upgrades on Ubuntu. The unattended upgrades feature is enabled by default, and it runs at system boot without user's permission. Unattended upgrades could cause all containers to be terminated and new containers to be created. When this happens, the NIOS-X server will stay in a bad state and cannot be recovered. To disable unattended upgrades on Ubuntu and its derivatives, run the following command:

$ sudo dpkg-reconfigure unattended-upgrades

  • Install net-tools on the NIOS-X server using the following commands:
    • For Ubuntu:
      $ sudo apt-get install -y net-tools
    • For Redhat:
      $ sudo yum install net-tools -y


For Ubuntu 22 only:

  • Edit the file –sudo vi /etc/default/grub:
    • Modify the values from GRUB_CMDLINE_LINUX=”” to GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=no"
    • If the above default values are not there, add the line GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=no"
  • Execute the following commands: 
    • sudo update-grub
    • sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
    • sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
    • sudo reboot

Running the BloxOne Install Script

Complete the following steps to download and run the install script:

  1. Log in to the Infoblox Portal.
  2. Go to Configure > Administration > Downloads.
  3. Go to the BloxOne Hosts pane and select Download BloxOne install script from the drop-down list.
  4. Execute the downloaded script on Bare-Metal with the following command:

./bloxone.sh -j <JOIN_TOKEN>
Optional Parameters:
                          -p | --proxy         Proxy in the format http://<proxy_host>:<proxy_port>
                          -r | --remove       Remove BloxOne from the server.