46 lines
2.3 KiB
PHP
46 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\AuditEvent;
|
|
use App\Models\Server;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class FleetSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$fleet = [
|
|
['name' => 'web-01', 'ip' => '10.10.90.136', 'os' => 'Debian 13', 'status' => 'online', 'cpu' => 34, 'mem' => 61, 'disk' => 71, 'uptime' => '42d'],
|
|
['name' => 'db-02', 'ip' => '10.10.90.140', 'os' => 'Debian 12', 'status' => 'warning', 'cpu' => 78, 'mem' => 83, 'disk' => 64, 'uptime' => '11d'],
|
|
['name' => 'cache-03', 'ip' => '10.10.90.141', 'os' => 'Alpine 3.20', 'status' => 'offline', 'cpu' => 0, 'mem' => 0, 'disk' => 0, 'uptime' => null],
|
|
['name' => 'edge-04', 'ip' => '10.10.90.150', 'os' => 'Ubuntu 24.04', 'status' => 'online', 'cpu' => 12, 'mem' => 39, 'disk' => 28, 'uptime' => '7d'],
|
|
];
|
|
|
|
foreach ($fleet as $s) {
|
|
Server::updateOrCreate(['name' => $s['name']], [
|
|
...$s,
|
|
'hostname' => $s['name'].'.clusev.local',
|
|
'specs' => ['cores' => 4, 'ram_gb' => 8, 'disk_gb' => 160, 'arch' => 'x86_64', 'kernel' => '6.12.0', 'virt' => 'KVM'],
|
|
'last_seen_at' => $s['status'] === 'offline' ? now()->subHour() : now(),
|
|
]);
|
|
}
|
|
|
|
$web = Server::where('name', 'web-01')->first();
|
|
|
|
$events = [
|
|
['actor' => 'admin', 'action' => 'Dienst neu gestartet', 'target' => 'php8.3-fpm.service', 'server_id' => $web?->id, 'created_at' => now()->subMinutes(2)],
|
|
['actor' => 'admin', 'action' => 'SSH-Schlüssel hinzugefügt', 'target' => 'web-01', 'server_id' => $web?->id, 'created_at' => now()->subMinutes(18)],
|
|
['actor' => 'system', 'action' => 'Server offline', 'target' => 'cache-03', 'server_id' => null, 'created_at' => now()->subHour()],
|
|
['actor' => 'admin', 'action' => 'Datei bearbeitet', 'target' => '/etc/nginx/nginx.conf', 'server_id' => $web?->id, 'created_at' => now()->subHours(3)],
|
|
];
|
|
|
|
foreach ($events as $e) {
|
|
AuditEvent::updateOrCreate(
|
|
['actor' => $e['actor'], 'action' => $e['action'], 'target' => $e['target']],
|
|
$e,
|
|
);
|
|
}
|
|
}
|
|
}
|