====== 6.1 Skupna raba datotek ====== Najenostavnejši način distribucije: omrežni disk. ---- ===== Zakaj skupna raba datotek? ===== **Prednosti:** * ✓ Dodaten strežnik ni potreben * ✓ Hitro nastavljeno * ✓ Dovoljenja preko Windows ACL * ✓ Vsi poznajo mape **Slabosti:** * ✗ Brez samodejnega verzioniranja * ✗ Brez upravljanja odvisnosti * ✗ Potrebno ročno kopiranje ---- ===== Struktura imenikov ===== Priporočena struktura za skupno rabo: \\server\builds\openssl\ ├── 3.6.0\ │ ├── win-x64\ │ │ ├── bin\ │ │ │ ├── libcrypto-3-x64.dll │ │ │ ├── libssl-3-x64.dll │ │ │ └── openssl.exe │ │ ├── ssl\ │ │ │ └── openssl.cnf │ │ └── README.txt │ ├── win-x64-fips\ │ │ └── ... (s FIPS Provider) │ ├── linux-x64\ │ │ └── ... (Shared Objects) │ └── wasm\ │ └── ... (JS + WASM) ├── 3.5.0\ │ └── ... (starejša različica) └── latest -> 3.6.0\ ---- ===== Nastavitev skupne rabe ===== ==== 1. Ustvarjanje mape ==== # Na strežniku mkdir D:\Builds\OpenSSL mkdir D:\Builds\OpenSSL\3.6.0 mkdir D:\Builds\OpenSSL\3.6.0\win-x64 ==== 2. Kopiranje datotek ==== # Kopiranje rezultata gradnje Copy-Item -Recurse "D:\Projects\openssl-3.6.0\bin\*" "D:\Builds\OpenSSL\3.6.0\win-x64\" ==== 3. Ustvarjanje skupne rabe ==== # Kot administrator New-SmbShare -Name "OpenSSL" -Path "D:\Builds\OpenSSL" -ReadAccess "Domain Users" Ali preko GUI: - Desni klik na mapo - Lastnosti → Skupna raba - Napredna skupna raba → Dovoljenja ---- ===== Uporaba ===== ==== Z razvojnega računalnika ==== # Dostop do skupne rabe dir \\server\openssl\3.6.0\win-x64\bin\ # Kopiranje v projekt copy "\\server\openssl\3.6.0\win-x64\bin\*.dll" C:\MojProjekt\ ==== Priklop kot disk ==== # Trajno kot O: (za OpenSSL) net use O: \\server\openssl /persistent:yes # Nato enostavno: copy O:\3.6.0\win-x64\bin\*.dll C:\MojProjekt\ ---- ===== Dovoljenja ===== | Skupina | Dovoljenje | |---------|------------| | Build strežnik | Poln dostop (piše nove gradnje) | | Razvijalci | Branje (kopiranje DLL-jev) | | CI/CD agenti | Branje | ==== PowerShell ==== # Nastavitev dovoljenj (NTFS) $acl = Get-Acl "D:\Builds\OpenSSL" # Razvijalci: samo branje $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "DOMAIN\Developers", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) # Build račun: poln dostop $rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "DOMAIN\BuildService", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) Set-Acl "D:\Builds\OpenSSL" $acl ---- ===== "latest" Symlink ===== Za enostaven dostop do trenutne različice: # Ustvarjanje junction (kot symlink) cmd /c mklink /J "D:\Builds\OpenSSL\latest" "D:\Builds\OpenSSL\3.6.0" # Nato deluje: # \\server\openssl\latest\win-x64\... Pri novi različici posodobite symlink! ---- ===== Avtomatizacija ===== PowerShell skripta za nove izdaje: # publish-openssl.ps1 param( [string]$Version = "3.6.0", [string]$SourceDir = "D:\Projects\openssl-3.6.0\bin", [string]$SharePath = "\\server\openssl" ) $TargetDir = "$SharePath\$Version\win-x64" # Ustvarjanje mape če ne obstaja if (!(Test-Path $TargetDir)) { New-Item -ItemType Directory -Path $TargetDir -Force } # Kopiranje datotek Copy-Item -Recurse -Force "$SourceDir\*" $TargetDir # Dodajanje README @" OpenSSL $Version ================ Datum gradnje: $(Get-Date -Format 'yyyy-MM-dd HH:mm') Platforma: Windows x64 (VC-WIN64A) Vsebuje: - libcrypto-3-x64.dll - libssl-3-x64.dll - openssl.exe Post-Quantum: ML-DSA, ML-KEM "@ | Out-File "$TargetDir\README.txt" Write-Host "Objavljeno: $TargetDir" ---- ===== Naprej na ===== * [[.:nuget-paket|Ustvarjanje NuGet paketa]] * [[.:versionierung|Verzioniranje]] * [[wvds:sl:openssl:automatisierung:start|7. CI/CD]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//