Initial repository setup for TrueNAS Scale configuration management and disaster recovery. This system provides automated collection, versioning, and documentation of TrueNAS configuration state. Key components: - Configuration collection scripts with API integration - Disaster recovery exports (configs, storage, system state) - Comprehensive documentation and API reference - Sub-agent architecture for specialized operations Infrastructure protected: - Storage pools and datasets configuration - Network configuration and routing - Sharing services (NFS, SMB, iSCSI) - System tasks (snapshots, replication, cloud sync) - User and group management Security measures: - API keys managed via environment variables - Sensitive data excluded via .gitignore - No credentials committed to repository 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
111 lines
2.5 KiB
Markdown
111 lines
2.5 KiB
Markdown
# TrueNAS Scale API Connectivity Test Results
|
|
|
|
**Date:** 2025-12-14
|
|
**Target:** 192.168.2.150
|
|
**Test Status:** SUCCESSFUL
|
|
|
|
## Test Results
|
|
|
|
### Network Connectivity
|
|
- ✅ **PASS**: Host is reachable via ICMP
|
|
- **RTT**: 2.7-2.9ms average
|
|
- **Packet Loss**: 0%
|
|
|
|
### API Accessibility
|
|
- ✅ **HTTPS Port 443**: OPEN and accessible
|
|
- ✅ **API Endpoint**: Responds correctly
|
|
- ✅ **Response**: HTTP 401 Unauthorized (expected - requires authentication)
|
|
|
|
## Findings
|
|
|
|
### Protocol
|
|
**Use HTTPS (port 443)**
|
|
```bash
|
|
https://192.168.2.150/api/v2.0/
|
|
```
|
|
|
|
### Authentication
|
|
**Required**: API key via Bearer token
|
|
```bash
|
|
curl -X GET "https://192.168.2.150/api/v2.0/system/version" \
|
|
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
|
|
--insecure
|
|
```
|
|
|
|
### SSL Certificate
|
|
**Self-signed certificate detected**
|
|
- Must use `--insecure` or `-k` flag with curl
|
|
- Or install CA certificate for production use
|
|
|
|
## Implementation Requirements
|
|
|
|
### 1. Generate API Key
|
|
1. Login to TrueNAS Web UI: https://192.168.2.150
|
|
2. Navigate to: Account → API Keys
|
|
3. Create new key with read-only permissions
|
|
4. Store securely
|
|
|
|
### 2. Test Authentication
|
|
```bash
|
|
export TRUENAS_API_KEY="your-generated-key"
|
|
|
|
curl -X GET "https://192.168.2.150/api/v2.0/system/version" \
|
|
-H "Authorization: Bearer ${TRUENAS_API_KEY}" \
|
|
-H "Content-Type: application/json" \
|
|
--insecure
|
|
```
|
|
|
|
Expected response:
|
|
```json
|
|
{
|
|
"fullversion": "TrueNAS-SCALE-XX.XX.X",
|
|
"version": "XX.XX.X"
|
|
}
|
|
```
|
|
|
|
### 3. Collection Script Parameters
|
|
```bash
|
|
TRUENAS_HOST="192.168.2.150"
|
|
TRUENAS_PROTOCOL="https"
|
|
TRUENAS_PORT="443"
|
|
TRUENAS_API_BASE="/api/v2.0"
|
|
CURL_OPTS="--insecure" # For self-signed cert
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ Network connectivity confirmed
|
|
2. ✅ API endpoint confirmed
|
|
3. ⏳ Generate API key in TrueNAS UI
|
|
4. ⏳ Test authenticated API calls
|
|
5. ⏳ Implement collection script
|
|
6. ⏳ Create comprehensive documentation
|
|
|
|
## Recommended API Calls for Collection
|
|
|
|
### System Information
|
|
- `GET /system/info` - Hardware and version
|
|
- `GET /system/version` - TrueNAS version
|
|
- `GET /system/general` - General config
|
|
|
|
### Storage
|
|
- `GET /pool` - All pools
|
|
- `GET /pool/dataset` - All datasets
|
|
- `GET /disk` - Disk inventory
|
|
- `GET /disk/temperature` - Disk temps
|
|
|
|
### Sharing
|
|
- `GET /sharing/nfs` - NFS shares
|
|
- `GET /sharing/smb` - SMB shares
|
|
|
|
### Services
|
|
- `GET /service` - Service status
|
|
|
|
## Compatibility
|
|
- **TrueNAS Scale**: Compatible
|
|
- **API Version**: v2.0
|
|
- **Connection**: Stable, low latency
|
|
|
|
---
|
|
**Test completed successfully - Ready for implementation**
|