Outils pour utilisateurs

Outils du site


reseau:cloud:proxmox:apirestpowershell

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
reseau:cloud:proxmox:apirestpowershell [2024/09/07 18:43] techer.charles_educ-valadon-limoges.frreseau:cloud:proxmox:apirestpowershell [2025/09/08 23:10] (Version actuelle) – [Créer un pool et affecter des permissions] admin
Ligne 9: Ligne 9:
     * sans séparation de privilège     * sans séparation de privilège
 ===== Installation de Powershell 7 ===== ===== Installation de Powershell 7 =====
 + * Rechercher la dernière version de Powershell Core
 <code> <code>
-iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"+winget search Microsoft.PowerShell 
 +</code> 
 +  
 +  * Installer Powershell  
 +<code> 
 +winget install --id Microsoft.PowerShell --source winget
 </code> </code>
  
Ligne 18: Ligne 24:
 PS > Install-Module -Name Corsinvest.ProxmoxVE.Api PS > Install-Module -Name Corsinvest.ProxmoxVE.Api
 </code> </code>
 +
 +Vérifier l'installation du module
 +
 +<code powershell>
 +PS > Get-Module -ListAvailable Corsinvest.ProxmoxVE.Api
 +</code>
 +
  
 ===== Connexion au cluster ===== ===== Connexion au cluster =====
Ligne 24: Ligne 37:
 PS> Import-Module Corsinvest.ProxmoxVE.Api PS> Import-Module Corsinvest.ProxmoxVE.Api
  
-PS > $ticket = Connect-PveCluster -HostsAndPorts 10.187.36.13:8006 -SkipCertificateCheck -ApiToken nom_jeton=valeur_jeton+PS > $ticket = Connect-PveCluster -HostsAndPorts 10.xxx.xxx.xxx:8006 -SkipCertificateCheck -ApiToken nom_jeton=valeur_jeton
  
 #return Ticket, default set $Global:PveTicketLast #return Ticket, default set $Global:PveTicketLast
Ligne 130: Ligne 143:
 PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members } | where-Object type -EQ "lxc" | foreach-object { Remove-PveNodesLxc -DestroyUnreferencedDisks -Force -Node $PSItem.node -Purge -Vmid $PSItem.vmid} PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members } | where-Object type -EQ "lxc" | foreach-object { Remove-PveNodesLxc -DestroyUnreferencedDisks -Force -Node $PSItem.node -Purge -Vmid $PSItem.vmid}
 </code> </code>
 +
 +Code alternatif car cela ne semble pas fonctionner : 
 +<code>
 +#$ticket = Connect-PveCluster -HostsAndPorts 10.187.36.12:8006 -SkipCertificateCheck -ApiToken techer.charles@Valadon!powershell=dd5e96f7-fcd9-4fea-ad12-7bbdbd08760d
 +
 +# Définir un tableau de pools
 +$poolList = @("nompool1", "nompool2", "nompool3")
 +
 +# Boucle sur chaque Pool
 +foreach ($pool in $poolList) {
 +    Write-Host "Traitement du Pool $pool"
 +
 +    # appel API de Corsinvest.ProxmoxVE.Api
 +    (Get-PvePools -Poolid $pool).Response.data.members | where-Object type -EQ "lxc" | Select-Object vmid, node | foreach-object { Remove-PveNodesLxc -DestroyUnreferencedDisks -Force -Node $PSItem.node -Purge -Vmid $PSItem.vmid}
 +    Write-Host "Pool supprimé : $pool"
 +  
 +  
 +    #arrêter les VM
 +    (Get-PvePools -Poolid $pool).Response.data.members | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Stop-PveVm -VmIdOrName $PSItem.vmid}
 +    
 +    #supprimer les VM
 +    (Get-PvePools -Poolid $pool).Response.data.members | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Remove-PveNodesQemu -DestroyUnreferencedDisks -Node $PSItem.node -Purge -Vmid $PSItem.vmid}
 +
 +    #supprimer le pool
 +    Remove-PvePools -Poolid $pool
 +    Write-Host "Pool $pool supprimé"
 +
 +}
 +
 +</code> 
 +
 +<WRAP center round info>
 +Code à améliorer car dans les faits, il faut relancer plusieurs fois le script, le temps que les conteneurs LXC et les VM soient effectivement supprimés piur pouvoir supprimer leur pool.
 +</WRAP>
 +
  
 ===== Arrêter et supprimer les VM d'un pool de ressources ===== ===== Arrêter et supprimer les VM d'un pool de ressources =====
Ligne 144: Ligne 192:
 #Arrêter toutes les VM concernées #Arrêter toutes les VM concernées
 PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members} | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Stop-PveVm -VmIdOrName $PSItem.vmid} PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members} | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Stop-PveVm -VmIdOrName $PSItem.vmid}
- 
  
 #supprimer toutes les VM concernées #supprimer toutes les VM concernées
 PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members} | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Remove-PveNodesQemu -DestroyUnreferencedDisks -Node $PSItem.node -Purge -Vmid $PSItem.vmid} PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {(Get-PvePools -Poolid $PSItem.poolid).Response.data.members} | where-Object type -EQ "qemu" | Select-Object vmid, node | foreach-object { Remove-PveNodesQemu -DestroyUnreferencedDisks -Node $PSItem.node -Purge -Vmid $PSItem.vmid}
 +</code>
 +
 +===== Supprimer plusieurs pools de ressources=====
 +<code>
 +#Arrêter toutes les VM concernées
 +PS > (Get-PvePools).todata() | Where-Object poolid -like "*2022*" | foreach-object {Remove-PvePools -Poolid $PSItem.poolid }
  
 ===== Lister les étudiants d'une promotion  ===== ===== Lister les étudiants d'une promotion  =====
 <code powershell> <code powershell>
-PS C:\Users\boulesteix.fabien> (Get-PveAccessusers -full).Response.data | Where-Object  groups -eq 'BTSSIO2022'  | Select-Object userid+PS > (Get-PveAccessusers -full).Response.data | Where-Object  groups -eq 'BTSSIO2022'  | Select-Object userid
  
 userid userid
Ligne 161: Ligne 214:
 ===== Lister les permissions d'un compte ===== ===== Lister les permissions d'un compte =====
 <code powershell> <code powershell>
-PS > (Get-PveAccesspermissions -Userid hajji.maryam@Valadon).Response.data+PS > (Get-PveAccesspermissions -Userid haj.ma@Valadon).Response.data
 </code> </code>
 +
 +===== Créer un pool et affecter des permissions =====
 +<code poweshell>
 +  
 +
 + </code> 
 +
 + 
reseau/cloud/proxmox/apirestpowershell.1725727416.txt.gz · Dernière modification : 2024/09/07 18:43 de techer.charles_educ-valadon-limoges.fr