Как автоматизировать создание пользователя в vcenter с помощью python

Я новичок в автоматизации Pyvmomi и vsphere. Я пытался автоматизировать создание пользователей и групп в vsphere, но не смог найти метод в Pyvmomi, который мог бы помочь мне автоматизировать процесс создания пользователей.

У меня уже есть пользователь, созданный в vcenter ([email protected]). У этого пользователя есть права администратора. Теперь я хочу создать сеанс с пользователем [email protected] и добавить новых пользователей в «пользователей и группы» Vcenter. После создания новых пользователей я должен добавить этих пользователей в разные группы. Все это должно быть сделано с помощью автоматизации с использованием python. Есть ли способ автоматизировать это?


person Praseemol    schedule 01.04.2020    source источник


Ответы (2)


К сожалению, SSO API полностью закрыт и недоступен через pyvmomi и остальные SDK.

person Kyle Ruddy    schedule 01.04.2020

Как говорит @Kyle Ruddy, похоже, что pyvmomi не поддерживает SSO API. Однако альтернатива golang (govmomi) работает. У Govmomi также есть интерфейс командной строки под названием GOVC, который предоставляет удобную оболочку для выполнения следующих (и других вещей!):

Вы можете посмотреть исходный код GOVC и попытаться выяснить вызовы SOAP, но я думаю, что это было бы больше проблем, чем пользы.

Если вы открыты для идеи запуска команд bash из python, вы можете сделать следующее:

import subprocess
import os

# Handy function for GOVC and assume GOVC is on your $PATH
def govc_runner(command):
  my_env = os.environ.copy()

  # Admin user will need to perform the commmands
  my_env["GOVC_USERNAME"] = "[email protected]"
  my_env["GOVC_PASSWORD"] = "<ABC_PASSWORD>"
  my_env["GOVC_URL"] = "https://<VCENTER>"
  my_env["GOVC_INSECURE"] = "true"

  process = subprocess.Popen(command, env=my_env, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  output, error = process.communicate()
  return output, error


# New group and user info
newUserUsername = "praseemol"
newUserPassword = "<PARASEEMOL_PASSWORD>"
newGroup = "prasGroup"

# Creating new group and user
govc_runner("govc sso.group.create " + newGroup)
govc_runner("govc sso.user.create -p '" + newUserPassword + "' '" + newUserUsername + "'")
govc_runner("govc sso.group.update -a " + newUserUsername + " " + newGroup)

# Check if it has worked
output, error = govc_runner("govc sso.user.id " + newUserUsername)
if newGroup in output:
  print("Yay, it worked:\n" + output)
else:
  print("Something went wrong :(")

Надеюсь, это поможет!

person Matthew Frost    schedule 15.04.2020