From f0cbd66cd95034c3e369854e9c30083db1ba44b6 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Tue, 7 Jan 2025 15:16:33 +0100 Subject: [PATCH 1/7] Big Update Jan 2025 --- ApiGit/ApiGitResources/ApiScriptsConfig.ps1 | 27 ++++++++++++------- ApiGit/Mirrors/CheckGitlabMirroring.ps1 | 2 +- ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 | 2 +- ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 | 4 +-- ApiGit/Mirrors/GitlabRenewTokensMirrors.ps1 | 6 ++--- ApiGit/Misc/GitlabEditReposNamespace.ps1 | 2 +- .../Pipelines/CheckGitlabAzzanoPipelines.ps1 | 2 +- .../Pipelines/CheckGitlabNembroPipelines.ps1 | 2 +- ApiGit/Pipelines/CheckGitlabPipelines.ps1 | 2 +- .../ReposCreationAzzanoNembro.ps1 | 8 +++--- 10 files changed, 32 insertions(+), 25 deletions(-) diff --git a/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 b/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 index 47c869c..92abdb1 100644 --- a/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 +++ b/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 @@ -1,22 +1,29 @@ ######### FILE DI CONFIGURAZIONE PER SCRIPT API GIT ######### -#### CONF GITLAB (ufficio, azzano, nembro) #### +#### CONF GITLAB #### #access token per autenticazione gitlab da profilo marco.locatelli@egalware.com con scadenza 31 dicembre 2024 -$gitlabHead = @{"PRIVATE-TOKEN" = "glpat-VjT_SAsBk3s-yWE1LDUF" } +#$gitlabHead2024 = @{"PRIVATE-TOKEN" = "glpat-VjT_SAsBk3s-yWE1LDUF" } +#access token per autenticazione gitlab da profilo marco.locatelli@egalware.com con scadenza 31 dicembre 2025 +$tokenGitlab = "glpat-AGzz46yrxj7rTjzSVYCH" +$gitlabHead = @{"PRIVATE-TOKEN" = "$($tokenGitlab)" } #nome utente che effettua i mirror push $userName = "replica" -#token autenticazione utente replica azzano creato a gennaio 2024, scadenza 31 dicembere 2024 -$tokenAzzano = "glpat-UHLqByZZr8tns6jwc4_-" -#access token per autenticazione gitlab da profilo marco.locatelli@egalware.com con scadenza 31 dicembre 2024 -$azzanoHead = @{"PRIVATE-TOKEN" = "$($tokenAzzano)" } + +#### CONF GITLAB AZZANO #### #destinazione mirror per azzano $destinationAzzano = "gitlab-azzano.steamware.net" -#token autenticazione utente replica nembro creato a gennaio 2024, scadenza 31 dicembere 2024 -$tokenNembro = "glpat-puycZnyztFioe5tmkaso" -#access token per autenticazione gitlab-nembro -$nembroHead = @{"PRIVATE-TOKEN" = "$($tokenNembro)" } +#token autenticazione utente replica azzano creato a gennaio 2024, scadenza 31 dicembere 2024 +$tokenAzzano = "glpat-tCyVnkDQb3uB_yFywQtK" +#access token per autenticazione gitlab-azzano +$azzanoHead = @{"PRIVATE-TOKEN" = "$($tokenAzzano)" } + +#### CONF GITLAB NEMBRO #### #destinazione mirror per nembro $destinationNembro = "gitlab-nembro.steamware.net" +#token autenticazione utente replica nembro creato a gennaio 2024, scadenza 31 dicembere 2024 +$tokenNembro = "glpat--9NqsusKLmHdF8z1kU9t" +#access token per autenticazione gitlab-nembro +$nembroHead = @{"PRIVATE-TOKEN" = "$($tokenNembro)" } #### CONF gitea.steamware.net #### #destinazione mirror per gitea diff --git a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 index 366f03e..24ab53a 100644 --- a/ApiGit/Mirrors/CheckGitlabMirroring.ps1 +++ b/ApiGit/Mirrors/CheckGitlabMirroring.ps1 @@ -107,7 +107,7 @@ WriteLogOutput $logFile 0 "" & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessMirrorPercent -o $mirrorSuccessPercentage & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsMirrorPercent -o $mirrorErrorsPercentage & "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.CheckMirrorDuration -o $durataScript -\ + #scrivo a video le statistiche WriteLogOutput $logFile 0 "" WriteLogOutput $logFile 0 "PROGETTI ANALIZZATI: $existingProjects" diff --git a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 index 76385dd..008b41f 100644 --- a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 +++ b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 0 +$projectCount = 1 #numero massimo di progetti da analizzare $projectNumber = 300 #nome file di log diff --git a/ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 b/ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 index 1e9acd2..bc58381 100644 --- a/ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 +++ b/ApiGit/Mirrors/GitlabRefreshMirrorToGitea.ps1 @@ -12,9 +12,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 170 +$projectCount = 1 #numero massimo di progetti -$projectNumber = 250 +$projectNumber = 300 #inizializzo variabili vuote $mirrorId = "" $mirrorUrl = "" diff --git a/ApiGit/Mirrors/GitlabRenewTokensMirrors.ps1 b/ApiGit/Mirrors/GitlabRenewTokensMirrors.ps1 index 0c7fea3..60f6ab8 100644 --- a/ApiGit/Mirrors/GitlabRenewTokensMirrors.ps1 +++ b/ApiGit/Mirrors/GitlabRenewTokensMirrors.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti -$projectNumber = 200 +$projectNumber = 300 #inizializzo variabili vuote $mirrorId = "" $mirrorUrl = "" @@ -62,13 +62,13 @@ do { $destinationToken = "" $mirrorUrl = "" $mirrorId = "" - #controllo se l'url del mirror contiene azzano + #controllo se l'url del mirror contiene azzano, riscrivo mirror if ($item.url.Contains("azzano")) { $doExecute = "true" $destinationToken = $tokenAzzano $mirrorDestination = "@gitlab-azzano.steamware.net" } - #controllo se l'url del mirror contiene nembro + #controllo se l'url del mirror contiene nembro, riscrivo mirror elseif ($item.url.Contains("nembro")) { $doExecute = "true" $destinationToken = $tokenNembro diff --git a/ApiGit/Misc/GitlabEditReposNamespace.ps1 b/ApiGit/Misc/GitlabEditReposNamespace.ps1 index 8808ad8..7e51f99 100644 --- a/ApiGit/Misc/GitlabEditReposNamespace.ps1 +++ b/ApiGit/Misc/GitlabEditReposNamespace.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #nome file di log $logFile = "EditReposNamespace.log" diff --git a/ApiGit/Pipelines/CheckGitlabAzzanoPipelines.ps1 b/ApiGit/Pipelines/CheckGitlabAzzanoPipelines.ps1 index efb89d6..2328903 100644 --- a/ApiGit/Pipelines/CheckGitlabAzzanoPipelines.ps1 +++ b/ApiGit/Pipelines/CheckGitlabAzzanoPipelines.ps1 @@ -12,7 +12,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #conteggio progetti trovati $projectsWithPipeline = 0 #conteggio pipeline in errore diff --git a/ApiGit/Pipelines/CheckGitlabNembroPipelines.ps1 b/ApiGit/Pipelines/CheckGitlabNembroPipelines.ps1 index 709c183..2c6f192 100644 --- a/ApiGit/Pipelines/CheckGitlabNembroPipelines.ps1 +++ b/ApiGit/Pipelines/CheckGitlabNembroPipelines.ps1 @@ -12,7 +12,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #conteggio progetti trovati $projectsWithPipeline = 0 #conteggio pipeline in errore diff --git a/ApiGit/Pipelines/CheckGitlabPipelines.ps1 b/ApiGit/Pipelines/CheckGitlabPipelines.ps1 index c3811dd..156cca1 100644 --- a/ApiGit/Pipelines/CheckGitlabPipelines.ps1 +++ b/ApiGit/Pipelines/CheckGitlabPipelines.ps1 @@ -15,7 +15,7 @@ $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while $projectCount = 1 #numero massimo di progetti da analizzare -$projectNumber = 200 +$projectNumber = 300 #conteggio progetti trovati $projectsWithPipeline = 0 #conteggio pipeline in errore diff --git a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 index 9cdd2b7..154570f 100644 --- a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 +++ b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 @@ -20,10 +20,10 @@ $projectNumber = 300 $logFile = "AzzanoNembroReposCreation.log" #specifica su quale installazione di gitlab va eseguita la creazione (legge file config) -$gitlabIstance = $destinationNembro -$destinationHead = $nembroHead -#$gitlabIstance = $destinationAzzano -#$destinationHead = $azzanoHead +#$gitlabIstance = $destinationNembro +#$destinationHead = $nembroHead +$gitlabIstance = $destinationAzzano +$destinationHead = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { From 0c7820d65b73a4b4c4c505e358799d048d32a953 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Thu, 13 Feb 2025 09:50:35 +0100 Subject: [PATCH 2/7] TestingCheckJobArtifacts-unfinished --- .../UNFINISHED_CheckGitlabJobArtifact.ps1 | 114 ++++++++++++++++++ ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 | 4 +- ApiGit/Misc/CheckGitlabProtectedBranches.ps1 | 8 +- .../ReposCreationAzzanoNembro.ps1 | 10 +- ApiGit/ReposCreation/ReposCreationGitea.ps1 | 4 +- ApiGit/ReposCreation/ReposCreationGogs.ps1 | 4 +- 6 files changed, 129 insertions(+), 15 deletions(-) create mode 100644 ApiGit/JobArtifacts/UNFINISHED_CheckGitlabJobArtifact.ps1 diff --git a/ApiGit/JobArtifacts/UNFINISHED_CheckGitlabJobArtifact.ps1 b/ApiGit/JobArtifacts/UNFINISHED_CheckGitlabJobArtifact.ps1 new file mode 100644 index 0000000..4dc2646 --- /dev/null +++ b/ApiGit/JobArtifacts/UNFINISHED_CheckGitlabJobArtifact.ps1 @@ -0,0 +1,114 @@ +###Gitlab: controllo lo stato dei JobArtifacts dei singoli progetti### + +#Questo script passa in rassegna tutti i progetti esistenti sul gitlab aziendale e per ognuno verifica lo stato dei JobArtifacts, poi invia a zabbix le statistiche. +#Tendenzialmente ogni progetto dovrebbe avere 4 JobArtifacts abilitati: nembro, azzano, gitea, gogs + +#importo file contenente configurazioni +. .\ApiGit\ApiGitResources\ApiScriptsConfig.ps1 +#importo file contenente funzioni +. .\ApiGit\ApiGitResources\ApiScriptsFunctions.ps1 + +#rilevo time per log inizio analisi +$startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") +# avvio stopwatch +$mainStopWatch = [system.diagnostics.stopwatch]::StartNew() +#contatore ciclo do while +$projectCount = 1 +#numero massimo di progetti da analizzare +$projectNumber = 1 +#conteggio progetti trovati +$existingProjects = 0 +#conteggio job trovati +$jobFound = 0 +#nome file di log +$logFile = "GitlabJobArtifacts.log" + +#creazione folder di Log se non già esistente +if (Test-Path $logFolder) { +} +else { + New-Item $logFolder -ItemType Directory +} + +#scrivo intestazione e inizio analisi +WriteLogOutput $logFile 0 "--------------------" +Switch ($logLevel) { + 0 { WriteLogOutput $logFile 0 "LOG SINTETICO GITLAB Job Artifacts" } + 1 { WriteLogOutput $logFile 0 "LOG ERRORI GITLAB Job Artifacts" } + 2 { WriteLogOutput $logFile 0 "LOG FULL GITLAB Job Artifacts" } + 3 { WriteLogOutput $logFile 0 "LOG AMPOLLOSO GITLAB Job Artifacts" } +} +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Percorso log: $logFolder" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Inizio Esecuzione Script: $startTime" + +#ciclo principale do/while che cicla da 1 a N projectNumber +do { + #chiamata api che restituisce informazioni sullo stato dei JobArtifacts + $callUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/jobs" + WriteLogOutput $logFile 1 "" + WriteLogOutput $logFile 1 "--------------------" + WriteLogOutput $logFile 1 "**PROGETTO $projectCount**" + try { + #parsing della risposta api convertita da json + $Response = Invoke-WebRequest -URI $callUrl -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + $parsedResponse = $Response.Content | ConvertFrom-Json + #scrivo il numero del progetto nel terminale e su file + $deleteAllUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/artifacts" + $deleteAllResponse = Invoke-WebRequest -URI $deleteAllUrl -Method DELETE -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + $parsedDeleteAllResponse = $deleteAllResponse.Content | ConvertFrom-Json + + #foreach ($item in $parsedResponse) { + # WriteLogOutput $logFile 1 "ID: $($item.id) | Creato il: $($item.created_at) | URL: $($item.web_url)" + # $projectJobFound = $projectJobFound + 1 + # $jobFound = $jobFound + 1 + #compongo chiamata api per erase job + #$eraseUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/jobs/" + $item.id + "/erase" + #$EraseResponse = Invoke-WebRequest -URI $eraseUrl -Method DELETE -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + #$parsedEraseResponse = $EraseResponse.Content | ConvertFrom-Json + #compongo chiamata api per delete all job artifacts in a project + # $deleteAllUrl = "https://gitlab.steamware.net/api/v4/projects/" + $projectCount + "/artifacts" + # $deleteAllResponse = Invoke-WebRequest -URI $deleteAllUrl -Method DELETE -Headers $gitlabHead -ContentType "application/json" -UseBasicParsing + # $parsedDeleteAllResponse = $deleteAllResponse.Content | ConvertFrom-Json + #} + #WriteLogOutput $logFile 1 "Job trovati per il progetto $($projectCount): $($projectJobFound)" + #$projectJobFound = 0 + $existingProjects = $existingProjects + 1 + } + #scrivo se trovo un errore durante il try/catch + catch { + $parsedError = $_ | ConvertFrom-Json + WriteLogOutput $logFile 3 $($parsedError.message) + } + $projectCount = $projectCount + 1 +} +#fine ciclo principale +while ($projectCount -le $projectNumber) + +# fermo stopwatch e calcolo durata script +$mainStopWatch.Stop() +$durataScript = $mainStopWatch.Elapsed.TotalSeconds + +#rilevo time per log fine analisi +$endTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") + +#invio a zabbix le metriche rilevate tramite zabbix_sender.exe +#WriteLogOutput $logFile 0 "" +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.Projects -o $existingProjects +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.TotalJobArtifacts -o $JobArtifactsCount +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessJobArtifacts -o $JobArtifactsSuccessCount +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsJobArtifacts -o $JobArtifactsErrorsCount +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.SuccessJobArtifactsPercent -o $JobArtifactsSuccessPercentage +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.ErrorsJobArtifactsPercent -o $JobArtifactsErrorsPercentage +#& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "IIS04" -k Gitlab.CheckJobArtifactsDuration -o $durataScript + +#scrivo a video le statistiche +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "PROGETTI ANALIZZATI: $existingProjects" +WriteLogOutput $logFile 0 "Job Artifacts TOTALI: $jobFound" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Fine Esecuzione Script: $endTime" +WriteLogOutput $logFile 0 "" +WriteLogOutput $logFile 0 "Durata Esecuzione Script: $durataScript secondi" +WriteLogOutput $logFile 0 "" \ No newline at end of file diff --git a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 index 008b41f..5a302e8 100644 --- a/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 +++ b/ApiGit/Mirrors/GitlabCreateMissingMirrors.ps1 @@ -13,9 +13,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare -$projectNumber = 300 +$projectNumber = 250 #nome file di log $logFile = "GiteaNewMirrors.log" diff --git a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 index 720cc9e..bd119e0 100644 --- a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -$gitlabIstance = $destinationNembro -$head = $nembroHead -#$gitlabIstance = $destinationAzzano -#$head = $azzanoHead +#$gitlabIstance = $destinationNembro +#$head = $nembroHead +$gitlabIstance = $destinationAzzano +$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { diff --git a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 index 154570f..76c1018 100644 --- a/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 +++ b/ApiGit/ReposCreation/ReposCreationAzzanoNembro.ps1 @@ -13,17 +13,17 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare (messo a 1 per "sicura inserita" siccome questo script è potenzialmente pericoloso) $projectNumber = 300 #nome file di log $logFile = "AzzanoNembroReposCreation.log" #specifica su quale installazione di gitlab va eseguita la creazione (legge file config) -#$gitlabIstance = $destinationNembro -#$destinationHead = $nembroHead -$gitlabIstance = $destinationAzzano -$destinationHead = $azzanoHead +$gitlabIstance = $destinationNembro +$destinationHead = $nembroHead +#$gitlabIstance = $destinationAzzano +#$destinationHead = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { diff --git a/ApiGit/ReposCreation/ReposCreationGitea.ps1 b/ApiGit/ReposCreation/ReposCreationGitea.ps1 index 7b40652..deb0afb 100644 --- a/ApiGit/ReposCreation/ReposCreationGitea.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGitea.ps1 @@ -12,9 +12,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare -$projectNumber = 300 +$projectNumber = 250 #nome file di log $logFile = "GiteaReposCreation.log" diff --git a/ApiGit/ReposCreation/ReposCreationGogs.ps1 b/ApiGit/ReposCreation/ReposCreationGogs.ps1 index 1d24570..3fab824 100644 --- a/ApiGit/ReposCreation/ReposCreationGogs.ps1 +++ b/ApiGit/ReposCreation/ReposCreationGogs.ps1 @@ -12,9 +12,9 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare -$projectNumber = 300 +$projectNumber = 250 #nome file di log $logFile = "GogsReposCreation.log" From b3c84c1c5f55a38816a54568f455fbf351c500fb Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Wed, 19 Feb 2025 17:44:33 +0100 Subject: [PATCH 3/7] Nuovo Script - Check W32Time Difference --- ApiGit/ApiGitResources/ApiScriptsConfig.ps1 | 2 +- ApiGit/Misc/CheckGitlabProtectedBranches.ps1 | 10 ++-- TimeCheck/W32DriftCheck.ps1 | 51 ++++++++++++++++++++ 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 TimeCheck/W32DriftCheck.ps1 diff --git a/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 b/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 index 92abdb1..4fc048f 100644 --- a/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 +++ b/ApiGit/ApiGitResources/ApiScriptsConfig.ps1 @@ -31,7 +31,7 @@ $giteaDestination = "gitea.steamware.net" #nome utente gitea che effettua i mirror push $giteaUser = "replica" #autenticazione replica gitea -$giteaPass = "ajejebrazorf92!" +$giteaPass = "viadante16" #access token per autenticazione gitea da profilo replica $giteaHead = @{"Authorization" = "token 3619817f299bb3d92c8a8f86d5fddbe877b60ffa" } diff --git a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 index bd119e0..5cabdda 100644 --- a/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 +++ b/ApiGit/Misc/CheckGitlabProtectedBranches.ps1 @@ -13,7 +13,7 @@ $startTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") # avvio stopwatch $mainStopWatch = [system.diagnostics.stopwatch]::StartNew() #contatore ciclo do while -$projectCount = 1 +$projectCount = 200 #numero massimo di progetti da analizzare $projectNumber = 300 #conteggio progetti trovati @@ -26,10 +26,10 @@ $deleteProtection = 1 $logFile = "GitlabProtectedBranches.log" #specifica quale installazione di gitlab va controllata -#$gitlabIstance = $destinationNembro -#$head = $nembroHead -$gitlabIstance = $destinationAzzano -$head = $azzanoHead +$gitlabIstance = $destinationNembro +$head = $nembroHead +#$gitlabIstance = $destinationAzzano +#$head = $azzanoHead #creazione folder di Log se non già esistente if (Test-Path $logFolder) { diff --git a/TimeCheck/W32DriftCheck.ps1 b/TimeCheck/W32DriftCheck.ps1 new file mode 100644 index 0000000..4354da9 --- /dev/null +++ b/TimeCheck/W32DriftCheck.ps1 @@ -0,0 +1,51 @@ +####SCRIPT PER CONTROLLARE TIME DRIFT WINDOWS#### + +#rilevo data e ora +$currentTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") +#nome file di log +$logFile = "W32TimeDriftCheck.log" +#cartella file di log +$logFolder = "c:\Steamware\Logs\" +#opzione log su file: scrivo se = 1, ignoro se = 0 +$logType = 1 +#opzione output in terminale: scrivo se = 1, ignoro se = 0 +$terminalOutput = 1 +#Ipv4 PDC +$PDC = "10.74.82.251" +#Ipv4 BDC +$BDC = "10.74.82.250" + +#creazione folder di Log se non già esistente +if (Test-Path $logFolder) { +} +else { + New-Item $logFolder -ItemType Directory +} + +#funzione locale per log su file e output su terminale +Function WriteLogOutput { + Param ([string]$logString) + #compongo path per file di log + $logPath = Join-Path $logFolder $logFile + #scrivo su file la stringa se $logType=1 + if ($logType -eq 1) { + Add-content $logPath -value "$logString" + } + #scrivo su terminale la stringa se $terminalOutput=1 + if ($terminalOutput -eq 1) { + Write-Output($logString) + } +} + +#calcolo differenza PDC, restituisco in secondi +$timeDifferencePDC = (& w32tm /stripchart /computer:$PDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' +#calcolo differenza BDC, restituisco in secondi +$timeDifferenceBDC = (& w32tm /stripchart /computer:$BDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' + +#scrivo log data e ora +WriteLogOutput "Script Execution: $currentTime" +#output differenza PDC +WriteLogOutput "Time Difference W2022PDC: $timeDifferencePDC s" +#output differenza BDC +WriteLogOutput "Time Difference W2022BDC: $timeDifferenceBDC s" +WriteLogOutput "---" \ No newline at end of file From 48be4fe6dfdd7f93a09365f7ed6aa3622a2a4076 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Thu, 20 Feb 2025 09:19:42 +0100 Subject: [PATCH 4/7] minor fix --- TimeCheck/W32DriftCheck.ps1 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/TimeCheck/W32DriftCheck.ps1 b/TimeCheck/W32DriftCheck.ps1 index 4354da9..3de5aea 100644 --- a/TimeCheck/W32DriftCheck.ps1 +++ b/TimeCheck/W32DriftCheck.ps1 @@ -1,7 +1,5 @@ ####SCRIPT PER CONTROLLARE TIME DRIFT WINDOWS#### -#rilevo data e ora -$currentTime = (Get-Date).toString("yyyy/MM/dd HH:mm:ss") #nome file di log $logFile = "W32TimeDriftCheck.log" #cartella file di log @@ -37,10 +35,10 @@ Function WriteLogOutput { } } -#calcolo differenza PDC, restituisco in secondi -$timeDifferencePDC = (& w32tm /stripchart /computer:$PDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' -#calcolo differenza BDC, restituisco in secondi -$timeDifferenceBDC = (& w32tm /stripchart /computer:$BDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' +#rilevo tempo locale e differenza PDC, restituisco in secondi +$localTime, $timeDifferencePDC = (& w32tm /stripchart /computer:$PDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' +#rilevo tempo locale e differenza BDC, restituisco in secondi +$localTime, $timeDifferenceBDC = (& w32tm /stripchart /computer:$BDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' #scrivo log data e ora WriteLogOutput "Script Execution: $currentTime" From 6754ac45f27ed954b4e41507ec23c3b8e01354dd Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Fri, 21 Feb 2025 11:20:34 +0100 Subject: [PATCH 5/7] Rename e Upgrade W32 TIme Drift Check --- .../{W32DriftCheck.ps1 => W32TimeDriftCheck.ps1} | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) rename TimeCheck/{W32DriftCheck.ps1 => W32TimeDriftCheck.ps1} (77%) diff --git a/TimeCheck/W32DriftCheck.ps1 b/TimeCheck/W32TimeDriftCheck.ps1 similarity index 77% rename from TimeCheck/W32DriftCheck.ps1 rename to TimeCheck/W32TimeDriftCheck.ps1 index 3de5aea..ff05a01 100644 --- a/TimeCheck/W32DriftCheck.ps1 +++ b/TimeCheck/W32TimeDriftCheck.ps1 @@ -12,6 +12,8 @@ $terminalOutput = 1 $PDC = "10.74.82.251" #Ipv4 BDC $BDC = "10.74.82.250" +#Nome host su Zabbix per invio con trapper +$ZabbixHost = "WIN2022-SQL-DEV" #creazione folder di Log se non già esistente if (Test-Path $logFolder) { @@ -41,9 +43,15 @@ $localTime, $timeDifferencePDC = (& w32tm /stripchart /computer:$PDC /samples:1 $localTime, $timeDifferenceBDC = (& w32tm /stripchart /computer:$BDC /samples:1 /dataonly)[-1].Trim("s") -split ',\s*' #scrivo log data e ora -WriteLogOutput "Script Execution: $currentTime" +WriteLogOutput "" +WriteLogOutput "Script Execution: $localTime" + +#invio a zabbix i dati +& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s $ZabbixHost -k W32.TimeDifferencePDC -o $timeDifferencePDC +& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s $ZabbixHost -k W32.TimeDifferenceBDC -o $timeDifferenceBDC + #output differenza PDC WriteLogOutput "Time Difference W2022PDC: $timeDifferencePDC s" #output differenza BDC WriteLogOutput "Time Difference W2022BDC: $timeDifferenceBDC s" -WriteLogOutput "---" \ No newline at end of file +WriteLogOutput "" \ No newline at end of file From b7c3b0583323b208c517e599adb947771e3f92a9 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Tue, 25 Feb 2025 10:45:00 +0100 Subject: [PATCH 6/7] riorganizzazioneFolders&RobocopyVeeamVhdx --- .../CallUrlExample.ps1 | 0 Robocopy/RobocopyOvhVeeamVHDX.ps1 | 19 +++++++++++++++++++ {Generic => Robocopy}/TestRobocopy.ps1 | 0 3 files changed, 19 insertions(+) rename {GenericCallUrl => Generic}/CallUrlExample.ps1 (100%) create mode 100644 Robocopy/RobocopyOvhVeeamVHDX.ps1 rename {Generic => Robocopy}/TestRobocopy.ps1 (100%) diff --git a/GenericCallUrl/CallUrlExample.ps1 b/Generic/CallUrlExample.ps1 similarity index 100% rename from GenericCallUrl/CallUrlExample.ps1 rename to Generic/CallUrlExample.ps1 diff --git a/Robocopy/RobocopyOvhVeeamVHDX.ps1 b/Robocopy/RobocopyOvhVeeamVHDX.ps1 new file mode 100644 index 0000000..7800823 --- /dev/null +++ b/Robocopy/RobocopyOvhVeeamVHDX.ps1 @@ -0,0 +1,19 @@ +###ROBOCOPY VHDX VEEAM OVH VERSO TNAS UFFICIO### + +$hostname = hostname +$date = Get-Date +$logFile = "C:\Steamware\Scripts\" + $hostname + "_VeeamVhdxRobocopy.log" + +#cartella di origine +$sourceFolder = "W:\ISO\Win\" + +#file da copiare +$file = "Windows10_EN_x64.iso" + +#cartella di destinazione +$destFolder = "\\10.74.82.201\veeam-ovh-vhdx" + +#Out-File -FilePath $filePath -InputObject $hostname +#Out-File -FilePath $filePath -InputObject $date -Append + +robocopy $sourceFolder $destFolder $file /mt /tee /log:$logFile \ No newline at end of file diff --git a/Generic/TestRobocopy.ps1 b/Robocopy/TestRobocopy.ps1 similarity index 100% rename from Generic/TestRobocopy.ps1 rename to Robocopy/TestRobocopy.ps1 From dada78a5210b0e774537b622d4d5c820f37928a7 Mon Sep 17 00:00:00 2001 From: "marco.locatelli@steamware.net" Date: Mon, 10 Mar 2025 10:26:39 +0100 Subject: [PATCH 7/7] WIP Script Robocopy VEEAMOVH --- ...eamVHDX.ps1 => RobocopyOvhHVVeeamVHDX.ps1} | 6 +--- Robocopy/RobocopyOvhVeeamStorage.ps1 | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 5 deletions(-) rename Robocopy/{RobocopyOvhVeeamVHDX.ps1 => RobocopyOvhHVVeeamVHDX.ps1} (60%) create mode 100644 Robocopy/RobocopyOvhVeeamStorage.ps1 diff --git a/Robocopy/RobocopyOvhVeeamVHDX.ps1 b/Robocopy/RobocopyOvhHVVeeamVHDX.ps1 similarity index 60% rename from Robocopy/RobocopyOvhVeeamVHDX.ps1 rename to Robocopy/RobocopyOvhHVVeeamVHDX.ps1 index 7800823..88e9f8b 100644 --- a/Robocopy/RobocopyOvhVeeamVHDX.ps1 +++ b/Robocopy/RobocopyOvhHVVeeamVHDX.ps1 @@ -1,8 +1,7 @@ ###ROBOCOPY VHDX VEEAM OVH VERSO TNAS UFFICIO### $hostname = hostname -$date = Get-Date -$logFile = "C:\Steamware\Scripts\" + $hostname + "_VeeamVhdxRobocopy.log" +$logFile = "C:\Steamware\Log\" + $hostname + "_VeeamVhdxRobocopy.log" #cartella di origine $sourceFolder = "W:\ISO\Win\" @@ -13,7 +12,4 @@ $file = "Windows10_EN_x64.iso" #cartella di destinazione $destFolder = "\\10.74.82.201\veeam-ovh-vhdx" -#Out-File -FilePath $filePath -InputObject $hostname -#Out-File -FilePath $filePath -InputObject $date -Append - robocopy $sourceFolder $destFolder $file /mt /tee /log:$logFile \ No newline at end of file diff --git a/Robocopy/RobocopyOvhVeeamStorage.ps1 b/Robocopy/RobocopyOvhVeeamStorage.ps1 new file mode 100644 index 0000000..7a3e113 --- /dev/null +++ b/Robocopy/RobocopyOvhVeeamStorage.ps1 @@ -0,0 +1,36 @@ +###ROBOCOPY VHDX VEEAM OVH VERSO TNAS UFFICIO### + +net use Z: /delete + +Start-Sleep -Seconds 5 + +net use Z: \\10.74.82.201\veeam-ovh-storage $env:ZPass /user:egw-tscale-01\veeamovh + +Start-Sleep -Seconds 5 + +#definisco file di log tramite hostname locale +$hostname = hostname +$logFile1 = "C:\Steamware\Logs\VeeamBackupRobocopy" + $hostname + ".log" +$logFile2 = "C:\Steamware\Logs\VeeamConfigRobocopy" + $hostname + ".log" + +#cartella1 di origine +$sourceFolder1 = "B:\Backups\Backup Job WDC" + +#cartella2 di origine +$sourceFolder2 = "B:\Backups\VeeamConfigBackup" + +#cartella1 di destinazione +$destFolder1 = "Z:\VEEAM-WDC\Backup Job WDC" + +#cartella2 di destinazione +$destFolder2 = "Z:\VEEAM-WDC\VeeamConfigBackup" + +#eseguo copia cartella 1 +robocopy $sourceFolder1 $destFolder1 /mir /mt /tee /log:$logFile1 + +#eseguo copia cartella 2 +robocopy $sourceFolder2 $destFolder2 /mir /mt /tee /log:$logFile2 + +Start-Sleep -Seconds 5 + +net use Z: /delete \ No newline at end of file