Installation & Setup¶
This guide walks you through installing NITA from scratch on a supported Linux system. The automated install.sh script handles all dependencies, Kubernetes setup, and NITA pod deployment.
Prerequisites¶
| Requirement | Details |
|---|---|
| Operating System | Ubuntu 22.04.03 LTS or AlmaLinux 9.3 Server |
| Architecture | x86_64 |
| Free Memory | ≥ 8 GB |
| Free Storage | ≥ 20 GB (for all dependencies + pods) |
| Access Level | Root or user with sudo privileges |
| Network | Internet access for downloading packages and container images |
Unsupported Platforms
While NITA may work on other Linux distributions, only Ubuntu 22.04 LTS and AlmaLinux 9.3 have been extensively tested. macOS and Windows are not supported as host systems.
Quick Install¶
The fastest way to install NITA is with the automated installation script:
# Download the install script
wget https://raw.githubusercontent.com/Juniper/nita/refs/heads/main/install.sh
# Make it executable
chmod 755 install.sh
# Run with sudo (preserving environment variables)
sudo -E ./install.sh
The script is interactive — it will prompt you at each stage:
install.sh: NITA install script.
Install system dependencies (y|n|q)? [y]
Install Kubernetes (y|n|q)? [y]
Initialise Kubernetes cluster (y|n|q)? [y]
Install NITA repositories (y|n|q)? [y]
Do you want to run Ansible as a standalone Docker container (y|n|q)? [y]
Do you want to install standalone yaml-to-excel tools (y|n|q)? [y]
Answer Y (or press Enter) for each step, N to skip, or Q to quit.
Installation Steps in Detail¶
Step 1: System Dependencies¶
The script installs essential system packages:
The containerd runtime is configured with SystemdCgroup enabled.
Step 2: Kubernetes Installation¶
The script installs Kubernetes 1.28 components:
- Disables swap (required by Kubernetes)
- Configures kernel modules (
overlay,br_netfilter) - Installs
kubelet,kubeadm,kubectl
Step 3: Kubernetes Cluster Initialization¶
After initialization:
- Calico CNI is deployed for pod networking
- Node taints are removed to allow scheduling on the control plane
- Firewall rules are configured (AlmaLinux)
KUBECONFIGis exported
Step 4: NITA Repository Installation¶
The script clones all NITA repositories to $NITAROOT (default: /opt):
/opt/nita — Meta repository, K8s configs, examples
/opt/nita-webapp — Webapp container source
/opt/nita-ansible — Ansible container source
/opt/nita-jenkins — Jenkins container source
/opt/nita-robot — Robot container source
It then:
- Applies all Kubernetes YAML manifests to create pods
- Generates self-signed Nginx SSL certificates
- Creates Kubernetes ConfigMaps for proxy configuration
- Generates a Jenkins keystore (JKS) and certificate
- Creates Kubernetes ConfigMaps for Jenkins certificates
- Copies
KUBECONFIGto the user's~/.kube/config - Installs
nita-cmdCLI scripts to/usr/local/bin
Step 5: Optional — Standalone Docker (Ansible)¶
If you want to run Ansible containers outside of Kubernetes:
Step 6: Optional — YAML-to-Excel Tools¶
Installs Python-based tools for converting between YAML and Excel formats:
Post-Installation¶
Source Your Environment¶
After installation completes, source your shell configuration:
Verify Installation¶
Wait 5–10 minutes for all pods to initialize, then verify:
# Check pod status
nita-cmd kube pods
# Expected output:
# NAME READY STATUS RESTARTS AGE
# db-xxxxx 1/1 Running 0 5m
# jenkins-xxxxx 1/1 Running 0 5m
# proxy-xxxxx 1/1 Running 0 5m
# webapp-xxxxx 1/1 Running 0 5m
Access NITA¶
| Service | URL | Credentials |
|---|---|---|
| NITA Webapp | https://<YOUR-NODE-IP>:443 | vagrant / vagrant123 |
| Jenkins | https://<YOUR-NODE-IP>:8443 | (auto-configured) |
Environment Variables¶
Customize the installation by setting these environment variables before running install.sh:
| Variable | Default | Description |
|---|---|---|
NITAROOT | /opt | Where NITA repositories are installed |
BINDIR | /usr/local/bin | Where executables (nita-cmd) are installed |
BASH_COMPLETION | /etc/bash_completion.d | Bash completion files location |
K8SROOT | $NITAROOT/nita/k8s | Kubernetes YAML files location |
PROXY | $K8SROOT/proxy | Nginx configuration location |
CERTS | $PROXY/certificates | Nginx certificate files location |
JENKINS | /var/jenkins_home | Jenkins keys and certificate files |
KEYPASS | nita123 | Passkey for self-signed Jenkins keys |
KUBEROOT | /etc/kubernetes | Kubernetes configuration location |
KUBECONFIG | $KUBEROOT/admin.conf | Kubernetes config file path |
DEBUG | (unset) | Set to true for verbose output |
IGNORE_WARNINGS | (unset) | Set to true to skip system warnings |
Example:
Installation Flow¶
graph TD
START["▶ Start install.sh"] --> CHECK["Check: root/sudo,<br/>OS, memory, disk"]
CHECK --> DEP["Install System<br/>Dependencies"]
DEP --> K8S["Install Kubernetes<br/>Components"]
K8S --> INIT["Initialize K8s<br/>Cluster (kubeadm)"]
INIT --> CALICO["Deploy Calico<br/>CNI Networking"]
CALICO --> REPOS["Clone NITA<br/>Repositories"]
REPOS --> YAML["Apply K8s<br/>YAML Manifests"]
YAML --> CERTS["Generate SSL<br/>Certificates"]
CERTS --> CM["Create K8s<br/>ConfigMaps"]
CM --> CLI["Install<br/>nita-cmd CLI"]
CLI --> DOCKER{{"Optional:<br/>Install Docker?"}}
DOCKER --> Y2E{{"Optional:<br/>YAML-to-Excel?"}}
Y2E --> DONE["✅ Installation<br/>Complete"]
style START fill:#1565C0,color:#fff
style DONE fill:#2E7D32,color:#fff Uninstalling NITA¶
To remove NITA and its Kubernetes cluster: