feat: Implement IP assignment and verification for VM guests; add related PowerShell scripts
This commit is contained in:
@@ -9,6 +9,7 @@ use App\Models\ModuleVmware;
|
||||
use App\Models\vCenter;
|
||||
use App\Services\VmProvisionService;
|
||||
use App\Services\VsphereHostSshService;
|
||||
use App\Jobs\VirtualMachine\Provision\AssignIpToGuestJob;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
@@ -29,8 +30,9 @@ use Illuminate\Support\Facades\Log;
|
||||
* [4] SSH into vSphere host
|
||||
* [5] Execute changePassword{Linux|Windows}.ps1 with 5 params
|
||||
* [6] Parse "SUCCESS" / "FAIL" from script output
|
||||
* [7] On SUCCESS → save encrypted password to DB, dispatch email
|
||||
* [8] On FAIL → throw exception → job retries
|
||||
* [7] On SUCCESS → save encrypted password to DB
|
||||
* [8] Dispatch AssignIpToGuestJob with the new guest password
|
||||
* [9] On FAIL → throw exception → job retries
|
||||
*/
|
||||
class ChangePasswordViaVsphereJob implements ShouldQueue
|
||||
{
|
||||
@@ -83,11 +85,16 @@ class ChangePasswordViaVsphereJob implements ShouldQueue
|
||||
// [6] Parse output — throw on FAIL so job retries
|
||||
$this->assertSuccess($output);
|
||||
|
||||
// [7] Save encrypted + plain password; IP already set during VM creation
|
||||
// [7] Save encrypted + plain password (IP will be set later by AssignIpToGuestJob)
|
||||
$provision->updatePassword($this->moduleVmwareId, $newPassword);
|
||||
|
||||
// [8] Send credentials email (loads fresh VM data from DB)
|
||||
SendVmCredentialsEmailJob::dispatch($this->moduleVmwareId);
|
||||
// [8] Assign real IP into guest OS using the new password
|
||||
AssignIpToGuestJob::dispatch(
|
||||
$this->moduleVmwareId,
|
||||
$this->vmId,
|
||||
$this->osFamily,
|
||||
$newPassword, // guest_password — MUST use new password, not template
|
||||
);
|
||||
|
||||
Log::info('ChangePasswordViaVsphereJob: completed', [
|
||||
'module_vmware_id' => $this->moduleVmwareId,
|
||||
|
||||
Reference in New Issue
Block a user