Как говорит @Kyle Ruddy, похоже, что pyvmomi не поддерживает API единого входа. Тем не менее, альтернатива golang (govmomi) делает. Govmomi также имеет CLI под названием GOV C, который обеспечивает хорошую оболочку для выполнения следующих (и других вещей!):
Вы можете посмотреть исходный код 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"] = "abc@xyz.local"
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 :(")
Надеюсь, это поможет!