Новости Статьи VMware Veeam StarWind Microsoft ИТ-ГРАД Citrix Symantec 5nine События Релизы Видео Контакты Авторы RSS
Виртуализация и виртуальные машины

Виртуализация vSphere, Hyper-V, XenServer и Red Hat

Более 4880 заметок о виртуализации и виртуальных машинах VMware, Microsoft, Citrix, Red Hat

VM Guru / Articles / Как управлять ролями NSX-менеджера при помощи PowerNSX.

Как управлять ролями NSX-менеджера при помощи PowerNSX.

Как управлять ролями NSX-менеджера при помощи PowerNSX.

Автор: Роман Гельман
Дата: 04/02/2019

Реклама:



Статья:

Давайте для начала разберёмся с терминологией. Что такое роли NSX-менеджера? Роли NSX-менеджера позволяют управлять правами доступа к объектам NSX с помощью присвоения той или иной роли отдельному пользователю или группе. В UI эти настройки находятся в Networking & Security -> System -> Users and Domains.

Что такое PowerNSX? PowerNSX - это PowerShell-модуль, абстрагирующий VMware NSX RESTful API в набор простых в использовании PowerShell функций. Готовой функции для управления ролями NSX-менеджера PowerNSX модуль не содержит, зато в нём есть универсальная функция для доступа к NSX API - Invoke-NsxRestMethod, которую мы и будем использовать в нашем скрипте.

Скрипт Power-NsxRole.ps1 содержит несколько функций.

Давайте рассмотрим каждую из них.

Add-NsxEntityRoleAssignment

Функция Add-NsxEntityRoleAssignment, как следует из её названия, присваивает какую-либо роль -Role пользователю(ям) -User или группе(ам) -Group. Параметр -Role опциональный и имеет значение по умолчанию.

PS C:\> Add-NsxEntityRoleAssignment -User NSXAdmin1@vsphere.local -Role 'System Administrator'
PS C:\> Add-NsxEntityRoleAssignment -Group NSXAdmins@domain.com -Role Auditor
PS C:\> Add-NsxEntityRoleAssignment -User NSXAdmin1@vsphere.local

Оба параметра, -User и -Group, поддерживают работу сразу с несколькими пользователями или группами, но только не одновременно. Причём объекты могут быть из разных источников, например, один из домена SSO, а другой из Active Directory.

PS C:\> Add-NsxEntityRoleAssignment -User NSXAdmin1@vsphere.local, NSXAdmin2@domain.com 
PS C:\> Add-NsxEntityRoleAssignment -Group NSXAdmins@vsphere.local, NSXAdmins@domain.com

Параметр -User позиционный, поэтому, если вы не указываете тип объектов, функция будет считать их пользователями.

PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local -Role 'Security Administrator'
PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local, NSXAdmin2@domain.com

Эта функция, как и все остальные, поддерживает такие стандартные параметры, как -Verbose, -Debug и -Confirm. Параметр -Role поддерживает Intellisense, и вам не нужно писать или помнить названия ролей.

PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local -Role 'Network Engineer' -Debug -Verbose
PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local, NSXAdmin2@domain.com -Confirm:$false

Обратите внимание, что один и тот же пользователь или группа может иметь только одну роль!

PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local -Role 'Security Administrator'
PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local -Role 'Network Engineer'

Для того, чтобы поменять роль, вам потребуется сначала удалить существующую, а потом назначить новую. И поможет нам в этом следующая функция нашего скрипта.

Remove-NsxEntityRoleAssignment

Функция Remove-NsxEntityRoleAssignment очень похожа на предыдущую, даже имеет те же самые параметры, за исключением параметра -Role, поскольку в нём не нуждается. Она удаляет любую роль, назначенную любому пользователю(ям) -User или группе(ам) -Group.

PS C:\> Remove-NsxEntityRoleAssignment -User NSXAdmin1@vsphere.local
PS C:\> Remove-NsxEntityRoleAssignment -Group NSXAdmins@domain.com
PS C:\> Remove-NsxEntityRoleAssignment NSXAdmin1@vsphere.local, NSXAdmin2@vsphere.local -Verbose
PS C:\> Remove-NsxEntityRoleAssignment -Group NSXAdmins@vsphere.local, NSXAdmins@domain.com -Confirm:$false

Add-NsxEntityAccessScope

Функция Add-NsxEntityAccessScope является изюминкой нашего скрипта, поскольку позволяет назначить не глобальную роль, а роль в рамках каких-либо объектов NSX! Начиная с версии NSX 6.2, VMware удалили опцию Limit Scope из UI, но оставили её в API. Эту ситуацию хорошо описал в своей статье Mike Da Costa, и функция Add-NsxEntityAccessScope полностью автоматизирует решение, предложенное в его статье.

PS C:\> Get-NsxEdge esg_Lab1 | Add-NsxEntityAccessScope -User NSXAdmin1@vsphere.local -Role Auditor -Debug

Функция Add-NsxEntityAccessScope имеет один дополнительный параметр -AccessScope, который может принимать любое количество различных NSX-объектов. Объектами могут быть Edge, DLR или Logical Switch.

PS C:\> Get-NsxEdge esg_Lab1 | Add-NsxEntityAccessScope NSXAdmin1@domain.com
PS C:\> Get-NsxLogicalRouter dlr_Lab1 | Add-NsxEntityAccessScope -User NSXAdmin2@vsphere.local –Confirm:$false -Role Auditor

Поскольку одному пользователю или группе можно назначить только одну роль, т.е. добавить только один раз, следующий приём позволит добавить в Access Scope разные типы NSX объектов.

PS C:\> $scope = @(Get-NsxEdge esg_Lab1)
PS C:\> $scope += Get-NsxTransportZone trz_Lab | Get-NsxLogicalSwitch
PS C:\> $scope += Get-NsxLogicalRouter dlr_Lab1
PS C:\> Add-NsxEntityAccessScope -AccessScope $scope -Group NSXAdmins@ssolab.local -Confirm:$false

Get-NsxEntityRoleAssignment

Ну и в заключение, функция Get-NsxEntityRoleAssignment. Функция очень проста в использовании, поскольку не имеет ни одного обязательного параметра. Просто подключитесь к серверу(ам) NSX Manager и запустите функцию.

PS C:\> Get-NsxEntityRoleAssignment | Format-Table -AutoSize
PS C:\> Get-NsxEntityRoleAssignment | Export-Csv -Notype .\NsxUsersAndDomain.csv

Функция имеет 3 опциональных параметра, которые, в общем-то, являются фильтрами для различного рода выборок. Параметр -Entity возвращает только пользователей и группы, содержащие в имени заданное слово. Параметр позиционный и не имеет надобности в символе *.

PS C:\> Get-NsxEntityRoleAssignment nsx
PS C:\> Get-NsxEntityRoleAssignment -Entity nsx

Параметр -Role позволяет отфильтровать только тех, кому присвоена заданная роль.

PS C:\> Get-NsxEntityRoleAssignment -Role 'Security Administrator'
PS C:\> Get-NsxEntityRoleAssignment -Role Auditor

Параметр -AccessScope - это флаг, который покажет только роли, заданные в пределах какого-либо Access Scope, т.е. не глобальные роли.

PS C:\> Get-NsxEntityRoleAssignment -AccessScope

Естественно, вы можете комбинировать эти фильтры в любом порядке.

PS C:\> Get-NsxEntityRoleAssignment -Entity admin -Role 'Security Administrator'
PS C:\> Get-NsxEntityRoleAssignment -Entity admin -AccessScope

Ну и, конечно, никто вам не запрещает делать собственные выборки.

PS C:\> Get-NsxEntityRoleAssignment | Where-Object {$_.Domain -ne 'cli' -and !$_.Enabled}
PS C:\> Get-NsxEntityRoleAssignment | Where-Object {$_.Type -eq ‘group’}

Заключение

Все функции поддерживают одновременную работу с несколькими серверами NSX Manager, но не позволяют выбрать какой-либо из них. Все функции выполняются на всех подключенных серверах NSX. Для того, чтобы убедиться куда вы подключены, проверьте значение переменной $DefaultNSXConnection или воспользуйтесь моей функцией Set-PowerCLITitle, с некоторых пор она поддерживает и серверы NSX.

PS C:\> $DefaultNSXConnection.Server
PS C:\> Set-PowerCLiTitle

Все функции поддерживают как добавление, так и удаление ролей сразу нескольким пользователям -User или группам -Group.

Скрипт содержит внутреннюю вспомогательную функцию Get-NsxRoleDisplayName, которая переводит названия ролей, которые вы видите в UI, в те, которые используются в API-запросах. Учтите, что не все роли, поддерживаемые функцией, будут поддерживаться вашей версией NSX, некоторые были добавлены, только начиная с определённой версии. Используйте параметр -Verbose при добавлении ролей, чтобы получать соответствующие уведомления об этом.

PS C:\> Add-NsxEntityRoleAssignment NSXAdmin1@vsphere.local -Verbose
PS C:\> Get-NsxEdge esg_Lab1 | Add-NsxEntityAccessScope NSXAdmin1@vsphere.local -Role 'Network Engineer' -Verbose

Не забудьте просмотреть примеры и справку по функциям.

PS C:\> Get-Help Get-NsxEntityRoleAssignment -Full
PS C:\> Get-Help Add-NsxEntityAccessScope -Examples
PS C:\> Get-Help Remove-NsxEntityRoleAssignment -Online

Как всегда для наших англоязычных коллег, ссылка на оригинал статьи с ps1code.com.

Реклама





Зал Славы Рекламодателя
Ближайшие события в области виртуализации:

Быстрый переход:
IT-Grad VMware StarWind Veeam PowerCLI Offtopic Gartner Citrix VSAN GDPR 5nine Hardware VeeamON Nutanix vSphere RVTools Enterprise Security Code Cisco vGate Microsoft Cloud SDRS Parallels IaaS HP VMFS VM Guru Oracle Red Hat Azure KVM VeeamOn 1cloud Docker Storage NVIDIA Partnership Dell Virtual SAN Virtualization VMTurbo vRealize VirtualBox Symantec Softline EMC Login VSI Xen Teradici Amazon NetApp VDI Linux Hyper-V IBM Google VSI Security Windows vCenter VMachines Webinar View VKernel Events Windows 7 Caravan Apple TPS Hyper9 Nicira Blogs Sun VMC Xtravirt Novell IntelVT Сравнение VirtualIron XenServer CitrixXen ESXi ESX ThinApp Books P2V vSAN vROPs Stencils Labs Bug UEM vRNI VTL Networking Horizon vCSA Tools vCloud Forum iSCSI SRM HCI App Volumes Video Workspace ONE Backup VMUG NSX HA Update Manager VCP VVols Workstation Update DR Cache Storage DRS VMworld Workspace DRS Fusion Lifecycle Visio Log Insight Operations Manager SDDC Virtual Appliance OpenStack PowerShell LSFS Client Datacenter Intel Agent esxtop Book Photon Cloud Computing SSD Comparison Blast Performance Nested AWS XenDesktop VSA vNetwork SSO Host Client VMDK Whitepaper Appliance VUM V2V Support Обучение Web Client Mobile Automation Replication Desktop Fault Tolerance Vanguard SaaS Connector Event Free SQL Sponsorship Finance FT Containers Converter XenApp Snapshots vGPU Auto Deploy SMB RDM Mirage XenClient MP SC VMM Certification VDP Partners PCoIP RHEV vMA Award Network USB Licensing Logs Server Demo vCHS Calculator Бесплатно vExpert Beta SAN Exchange MAP ONE DaaS Monitoring VPLEX UCS SDK Poster VSPP Receiver vMotion VDI-in-a-Box Deduplication Reporter vShield ACE Go nworks iPad XCP Data Recovery Documentation Sizing Pricing VMotion Snapshot FlexPod VMsafe Enteprise Monitor vStorage Essentials Live Migration SCVMM TCO Studio AMD-V VirtualCenter NFS ThinPrint SIOC Plugin Memory CLI Helpdesk Troubleshooting VIC Upgrade VDS Migration Director API Android Graphics Diagram Air DPM Flex Mac Open Source SSH VAAI Chargeback Heartbeat MSCS Ports SVMotion Bugs Composer
Интересные плакаты:

Постер VMware vSphere PowerCLI 6.3:

Постер VMware ESXi 5.1:

Постер VMware Hands-on Labs 2015:

Постер VMware Platform Services Controller 6.0:

Постер VMware vCloud Networking:

Постер VMware NSX (референсный):

Постер VMware vCloud SDK:

Постер VMware vCloud Suite:

Постер VMware vCenter Server Appliance:

Порты и соединения VMware vSphere 6:

Порты и соединения VMware Horizon 7:

Порты и соединения VMware NSX:

Управление памятью в VMware vSphere 5:

Как работает кластер VMware High Availability:

Постер VMware vSphere 5.5 ESXTOP (обзорный):

Постер Veeam Backup & Replication v8 for VMware:

Постер Microsoft Windows Server 2012 Hyper-V R2:

 

Популярные статьи:
Как установить VMware ESXi. Инструкция по установке сервера ESXi 4 из состава vSphere.

Включение поддержки технологии Intel VT на ноутбуках Sony VAIO, Toshiba, Lenovo и других.

Как настроить запуск виртуальных машин VMware Workstation и Server при старте Windows

Как работают виртуальные сети VLAN на хостах VMware ESX / ESXi.

Что такое и как работает виртуальная машина Windows XP Mode в Windows 7.

Типы виртуальных дисков vmdk виртуальных машин на VMware vSphere / ESX 4.

Сравнение Oracle VirtualBox и VMware Workstation.

Инфраструктура виртуальных десктопов VMware View 3 (VDI)

Бесплатные утилиты для виртуальных машин на базе VMware ESX / ESXi.

Как использовать возможности VMware vSphere Management Assistant (vMA).

Проектирование инфраструктуры виртуализации VMware vSphere 4.

Как поднять программный iSCSI Target на Windows 2003 Server для ESX

Работа с дисками виртуальных машин VMware.

Бесплатные программы для VMware ESX / ESXi в среде Virtual Infrastructure / vSphere (часть 2).

Новые возможности VMware vSphere 5.0 - официально.

Все ресурсы о виртуализации:
Интервью:

Alessandro Perilli
virtualization.info
Основатель

Ратмир Тимашев
Veeam Software
Президент


Купить:

VMware vSphere 6.5


Veeam Backup 9.5


Полезные ресурсы:


Видео компании VMware

Видео про Citrix Xen

Видео о виртуализации Microsoft

Утилиты для виртуальных машин Microsoft.

Книги на английском языке

Блоги на английском языке

Блоги на русском языке

Агрегация статей в твиттере VMC:


Copyright VM Guru 2006 - 2019, Александр Самойленко. Правила перепечатки материалов.