среда, 15 февраля 2017 г.

Как разрешить пользователям управлять определенными виртуальными машинами, не предоставляя полномочий администратора

Сценарий: вы - системный администратор крупной компании с десятком многоядерных серверов с Hyper-V 2012 R2 и несколькими десятками виртуальных машин. Вы собираетесь в отпуск и вам необходимо, чтобы в ваше отсутствие ваш подчиненный специалист техподдержки или программист могли управлять некоторыми виртуальными машинами на уровне Hyper-V, останавливать их, запускать, ставить на паузу, добавлять ресурсы и пр.

Цель: осуществить вышеуказанные требования, не предоставляя права Hyper-V администратора, т.е. пользователь должен остаться пользователем, должен видеть и управлять только теми виртуальными машинами, которые вы ему назначите, не иметь административный доступ на сервер с Hyper-V.

Решение: использовать программный продукт System Center Virtual Machine Manager 2012 R2.

Для начала последовательно расскажу немного об установке SCVMM.

1. Система не ставится на Windows Server 2008 (R2). На старую версию можно поставить только консоль управления. Ставим на 2012 (R2), на отдельную виртуальную машину. Не ставим SCVMM на гипервизор!
2. Ставим Microsoft .NET Framework 4 или выше.
3. Перед установкой SCVMM установите следующие компоненты из пакета Windows ADK 8.1:



















4. Установите SQL Server 2008 R2 или выше (SQL Server Express не подойдет)
5. Установите SQL Server 2008 R2 Command Line Utilities (или 2012). Если откроете ссылку отсюда не нажимайте кнопку скачать, а перематывайте к середине страницы.
6. Запускаем установщик SCVMM. там все просто. Но бывает, что при установке SCVMM продолжить ее невозможно до тех пор, пока компьютер не будет перезагружен. Перезагрузка не помогает. В этом случае удалите следующий ключ реестра: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations.

Далее заходим в SCVMM, и для решения нашей задачи выполняем последовательно следующие действия (я не буду подробно описывать действия ввиду несложности процесса:

1. Добавляем наши хосты (наши сервера виртуализации Hyper-V). Здесь все просто и нет ничего сложного:
VMs and Services > All Hosts > Add Hyper-V Hosts and Clusters

2. Создаем облако:
VMs and Services > Clouds  > Create Cloud. Здесь нас интересуют вкладки Resources и Library. В первой мы задаем ресурсы нашего облака (отмечаем All Hosts), во второй просто выбираем библиотеку MSSCVMMLibrary нашего сервера, чтобы она появилась во вкладке. Параметры в остальных вкладках мы оставляем по умолчанию и не трогаем.

3. Далее создаем роль для наших пользователей:
Settings > Security > User Roles > Create User Role

a) во вкладке Profile выбираем Application Administrator (Self-Service Users)
b) во вкладке Members назначаем пользователей или группу (рекомендую)
с) во вкладке Scope отмечаем облако, которое мы создали
в) во вкладке Permissions выбираем наше облако и отмечаем те операции, которые будут выполнять наши пользователи, например Start, Stop, Pause and resume, Shut down.

Далее нам необходимо зайти в свойства каждой виртуальной машины, которой будут управлять наши пользователи и задать ассоциацию с нашим облаком. Делается это во вкладке General > Cloud в свойствах виртуальной машины (список виртуальных машин представлен во вкладке VMs and Services > All Hosts.

Основные шаги по решению нашей задачи закончены. Теперь осталось последнее: нужно назначить созданную нами роль каждой виртуальной машине нашего облака.

Для этого мы будем использовать PowerShell.

1. Назначаем переменную-список виртульных машин, ассоциированных с нашим облаком:

$VMs = Get-SCVirtualMachine | ? {$_.Cloud -eq (Get-SCCloud "TestCloud")}

2. Назначаем переменную-роль, которую мы создали для наших пользователей:

$Role = Get-SCUserRole -Name "TestRole"

3. Назначаем нашу роль и владельца DOMAIN\TestUsers этим виртуальным машинам:

$VMs | ForEach {Set-SCVirtualMachine -VM $_ -UserRole $Role -Owner "DOMAIN\TestUsers"}

Теперь пользователь, зайдя по RDP на сервер SCVMM под обычным пользователем удаленного рабочего стола и запустив консоль управления SCVMM, увидит в облаке все эти виртуальные машины и сможет управлять ими так, как ему позволяет это делать роль, которую мы создали. Так же можно установить консоль управления SCVMM на любую рабочую станцию или терминальный сервер, где работают пользователи. Есть также вариант публикации RD Web Access

Комментариев нет:

Отправить комментарий