Как автоматизировать создание пользователя в vcenter, используя python - PullRequest
0 голосов
/ 02 апреля 2020

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

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

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Как говорит @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 :(")

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

0 голосов
/ 02 апреля 2020

К сожалению, API единого входа является частным и недоступным через pyvmomi и остальные SDK.

...