PowerShell Friday: SSH inschakelen met PowerCLI
Gepubliceerd op 29 januari 2016 • 3 min leestijd • 470 woorden
Er zijn meerdere manieren om SSH op uw hosts in te schakelen. Een daarvan is via de DCUI (Direct Console User Interface). Een van de manieren om dat op afstand te doen is met SSH. Het inschakelen van SSH kan worden gedaan vanuit de GUI, maar aangezien dat niet het doel is van PowerShell Friday, gaan we dit op de PowerCLI-manier doen.
Wat is SSH
SSH, of Secure Shell, is een manier om via het netwerk toegang te krijgen tot een ESXi- of Linux-host, zodat u opdrachten kunt invoeren en de uitvoer kunt krijgen zonder uw datacenter te betreden. SSH codeert de verbinding, zodat er geen duidelijke tekstinformatie van en naar de ESXi-host wordt verzonden.
SSH inschakelen
Als u SSH op alle hosts in uw vCenter wilt inschakelen, kunt u onderstaande oneliner gebruiken.
Get-VMHost | Foreach {Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} )}Als u wilt filteren op welke hosts u SSH wilt inschakelen, geeft u deze op in Get-VMHost:
Get-VMHost -Name MyHosts*| Foreach {Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} )}Controleer op welke hosts SSH nog is ingeschakeld.
Get-VMHost | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } |select VMHost, Label, RunningAls je je trouwens afvraagt waar TSM voor staat: het is “Technical Support Mode”.
SSH uitschakelen
Als je SSH wilt uitschakelen op alle hosts die nog steeds SSH gebruiken, kun je het volgende gebruiken:
Get-VMHost | Foreach {Stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} )}```## Korter/sneller
De oneliners die ik hierboven heb gebruikt, halen de objecten voor hosts op met Get-VMHost. Daarna worden ze verwerkt door de Get-VMHostservice. De oneliner kan worden vereenvoudigd door de host rechtstreeks in de Get-VMHostService-cmdlet te gebruiken. Het lijkt iets sneller.Get-VMHostService -VMHost “esx01.local” | Where-Object {$_.Key -eq “TSM-SSH”}
De reden dat ik nog steeds de eerste methode gebruik, is dat ik het echt niet weet. Ik wil zeggen dat het logischer is dan dat laatste, maar dat is het niet. "Het object voor VMHost ophalen en er vervolgens doorheen lopen, het door de Stop-VMHostService voeren met parameters van Get-VMHostService om ze te stoppen" is niet logischer dan "Haal de services op van host esx01.local, selecteer de SSH-service en stop deze".Get-VMHostService -VMHost * | Where-Object {$_.Key -eq “TSM-SSH” } | Stop-VMHostService
Werkt net zo goed als de eerste.
## Wat gebruik je?
Nu heb ik je mijn oneliner verteld, welke versie gebruik je of geef je de voorkeur aan? Laat het me weten in de opmerkingen hieronder.