Newer
Older
cortex-hub / ai-hub / app / core / templates / provisioning / provision.ps1.j2
# Cortex Agent Windows One-Liner Provisioner
Write-Host "🚀 Starting Cortex Agent Provisioning for node: {{ node_id }}" -ForegroundColor Cyan

$installDir = "C:\CortexAgent"
if (!(Test-Path $installDir)) {
    New-Item -ItemType Directory -Path $installDir | Out-Null
}
Set-Location $installDir

# 1. Write agent_config.yaml
Write-Host "[*] Writing configuration..." -ForegroundColor Gray
$configContent = @"
{{ config_yaml.replace('—', '-') }}
"@
$configPath = Join-Path $installDir "agent_config.yaml"
$utf8NoBom = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText($configPath, $configContent, $utf8NoBom)

# 2. Download bootstrap_windows.ps1
$installerUrl = "{{ base_url }}/api/v1/agent/installer/ps1"
$installerPath = Join-Path $installDir "bootstrap_windows.ps1"
Write-Host "[*] Downloading installer from $installerUrl ..." -ForegroundColor Gray

try {
    Invoke-WebRequest -Uri $installerUrl -OutFile $installerPath
} catch {
    Write-Host "❌ Failed to download installer: $_" -ForegroundColor Red
    exit 1
}

# 3. Run bootstrap_windows.ps1
Write-Host "[*] Bootstrapping agent..." -ForegroundColor Cyan
powershell.exe -ExecutionPolicy Bypass -File $installerPath -HubUrl "{{ base_url }}" -GrpcUrl "{{ grpc_url }}" -AuthToken "{{ invite_token }}" -NodeId "{{ node_id }}"