Первый отказ от ответственности: Не рекомендуется добавлять дополнительное программное обеспечение в VCSA, особенно то, что увеличило бы нагрузку на машину. Это не поддерживается VMWare, и это может привести к проблемам стабильности в вашем VCSA, поэтому сделайте это на свой страх и риск, и если вы беспокоитесь о проверке с вашей учетной записью VMWare, прежде чем вносить какие-либо изменения.
Это ... это возможно. Поскольку вы хотели бы сделать это, используя VCSA, который работает на ядре SLES Linux, это будет очень просто сделать, потому что на нем уже есть как Python, так и pyVmomi. Это также будет работать на 6.5 после его выхода, даже если базовая ОС изменится с SLES на Photon. Процесс, описанный ниже, будет работать в 5.5, 6.0 и 6.5 таким же образом.
Написать скрипт, который вы хотите запустить, когда сигнал тревоги вы будете создавать триггеры, и поместить его на VCSA в /root
Обязательно установите бит Казнь по сценарию с использованием chmod a+x script.py
Создать тревогу в vCenter, которая соответствует условию, которое вы пытаетесь контролировать. Существующее определение сигнализации может существовать, но вам нужно будет создать свой собственный, поскольку вы не можете изменять аварийные сигналы по умолчанию.
В области Действия для определения тревоги выберите «Запустить команду».
В окне конфигурации поставьте полный путь к исполняемому скрипту, который вы хотите запустить. /root/script.py
и сохраните будильник.
Теперь, когда срабатывает будильник, будет запущен ваш скрипт. Если у вас есть проблемы или вы думаете, что он не работает, вы можете найти файл журнала в VCSA, который может выделить, что может произойти: /var/log/vmware/vpxd/vpxd.log
Я создал очень грубый пример, чтобы показать вам, как начать работу с вашим скриптом.
#!/usr/bin/python
# Copyright 2016 Michael Rice <[email protected]>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import print_function
import os
import ssl
import sys
import requests
# This is where VMWare keeps the pyVmomi and other libraries
sys.path.extend(os.environ['VMWARE_PYTHON_PATH'].split(';'))
from pyVim import connect
from pyVmomi import vim
requests.packages.urllib3.disable_warnings()
# this is to ignore SSL verification which is helpful for self signed certs
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
# Legacy Python that doesn't verify HTTPS certificates by default
pass
else:
# Handle target environment that doesn't support HTTPS verification
ssl._create_default_https_context = _create_unverified_https_context
USER_NAME = "YOUR USER"
PASSWORD = "YOUR PASS"
HOST = "YOUR HOST"
PORT = "443"
service_instance = connect.SmartConnect(host=HOST,
user=USER_NAME,
pwd=PASSWORD,
port=int(PORT))
root_folder = service_instance.content.rootFolder
# again crude example here. use the logging module instead
with open("/var/log/my_script_log_file.txt", 'a') as f:
print(root_folder.name, file=f)
for var, val in os.environ.items():
# When an alarm is triggered and run a lot of environment variables are set.
# This will list them all with their values.
if var.startswith("VMWARE_ALARM"):
print("{} = {}".format(var, val), file=f)
print("##########", file=f)
connect.Disconnect(service_instance)
Прежде чем я смог ответить, у меня возникло бы пару вопросов: 1) Какую версию vSphere вы бы использовали? 2) Будете ли вы использовать приложение vCenter Server или vCenter с коробкой Windows? –
Спасибо. Также я новичок в vmware и до сих пор учился. 1. Мы будем работать с 5.5 и 6 2. Предпочитайте запуск с помощью Linux-машины, если возможно :) – jramacha