Новости Статьи Российское ПО VMware Veeam StarWind vStack Microsoft Citrix Symantec События Релизы Видео Контакты Авторы RSS
Виртуализация и виртуальные машины

Все самое нужное о виртуализации и облаках

Более 6380 заметок о VMware, AWS, Azure, Veeam, Kubernetes и других

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

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

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

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

Поддержите VM Guru!

USDT / TRC20, адрес: TCDP7d9hBM4dhU2mBt5oX2x5REPtq9QdU1




Статья:

Давайте для начала разберёмся с терминологией. Что такое роли 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.

Интересное:





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

Быстрый переход:
VMware VMachines Veeam Broadcom Offtopic Microsoft Cloud StarWind NAKIVO vStack Gartner Vinchin Nakivo IT-Grad Teradici VeeamON VMworld PowerCLI Citrix VSAN GDPR 5nine Hardware Nutanix vSphere RVTools Enterprise Security Code Cisco vGate SDRS Parallels IaaS HP VMFS VM Guru Oracle Red Hat Azure KVM VeeamOn 1cloud DevOps Docker Storage NVIDIA Partnership Dell Virtual SAN Virtualization VMTurbo vRealize VirtualBox Symantec Softline EMC Login VSI Xen Amazon NetApp VDI Linux Hyper-V IBM Google VSI Security Windows vCenter Webinar View VKernel Events Windows 7 Caravan Apple TPS Hyper9 Nicira Blogs IDC Sun VMC Xtravirt Novell IntelVT Сравнение VirtualIron XenServer CitrixXen ESXi ESX ThinApp Books P2V VCF Russian Ports HCX Live Recovery vDefend vSAN CloudHealth NSX Labs Backup AI Chargeback Aria VCP Intel Community Ransomware Stretched Private AI Workstation Network Tanzu VMUG VCPP Explore Data Protection ONE V2V DPU Update EUC Avi Skyline Host Client GenAI Horizon SASE Workspace ONE Networking Tools Performance Lifecycle AWS API USB SDDC Fusion Whitepaper SD-WAN Mobile SRM ARM HCI Converter Photon OS Operations VEBA App Volumes Certification VMConAWS Workspace Imager SplinterDB DRS SAN vMotion Open Source iSCSI Partners HA Monterey Kubernetes RDMA vForum Learning vRNI UAG Support Log Insight AMD vCSA NSX-T Graphics NVMe HCIBench SureBackup Docs Carbon Black vCloud Обучение Web Client vExpert OpenStack UEM CPU PKS vROPs Stencils Bug VTL Forum Video Update Manager VVols DR Cache Storage DRS Visio Manager Virtual Appliance PowerShell LSFS Client Datacenter Agent esxtop Book Photon Cloud Computing SSD Comparison Blast Encryption Nested XenDesktop VSA vNetwork SSO VMDK Appliance VUM HoL Automation Replication Desktop Fault Tolerance Vanguard SaaS Connector Event Free SQL Sponsorship Finance FT Containers XenApp Snapshots vGPU Auto Deploy SMB RDM Mirage XenClient MP iOS SC VMM VDP PCoIP RHEV vMA Award Licensing Logs Server Demo vCHS Calculator Бесплатно Beta Exchange MAP DaaS Hybrid Monitoring VPLEX UCS GPU SDK Poster VSPP Receiver 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 KB VirtualCenter NFS ThinPrint Memory Orchestrator ML Director SIOC Troubleshooting Bugs ESA Android Python Upgrade Hub Guardrails CLI Driver Foundation HPC Optimization SVMotion Diagram Plugin Helpdesk VIC VDS Migration Air DPM Flex Mac SSH VAAI Heartbeat MSCS Composer
Полезные постеры:

Постер VMware vSphere PowerCLI 10

Постер VMware Cloud Foundation 4 Architecture

Постер VMware vCloud Networking

Постер VMware Cloud on AWS Logical Design Poster for Workload Mobility

Постер Azure VMware Solution Logical Design

Постер Google Cloud VMware Engine Logical Design

Постер Multi-Cloud Application Mobility

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

Постер VMware vCloud SDK:

Постер VMware vCloud Suite:

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

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

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

 

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

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

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

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

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

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

Диски RDM (Raw Device Mapping) для виртуальных машин VMware vSphere и серверов ESX.

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

Где скачать последнюю версию VMware Tools для виртуальных машин на VMware ESXi.

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

Подключение локальных SATA-дисков сервера VMware ESXi в качестве хранилищ RDM для виртуальных машин.

Как перенести виртуальную машину VirtualBox в VMware Workstation и обратно

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

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

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

Интервью:

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

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


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

Последние 100 утилит VMware Labs

Новые возможности VMware vSphere 8.0 Update 1

Новые возможности VMware vSAN 8.0 Update 1

Новые документы от VMware

Новые технологии и продукты на VMware Explore 2022

Анонсы VMware весной 2021 года

Новые технологии и продукты на VMware VMworld 2021

Новые технологии и продукты на VMware VMworld 2020

Новые технологии и продукты на VMware VMworld Europe 2019

Новые технологии и продукты на VMware VMworld US 2019

Новые технологии и продукты на VMware VMworld 2019

Новые технологии и продукты на VMware VMworld 2018

Новые технологии и продукты на VMware VMworld 2017



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