VMWare ESXi - Как я могу создать скрипт / задание для обновления регистрации Google ddns? - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь создать задание кукурузы, чтобы автоматически обновлять IP-адрес моего exsi-сервера в домене Google DDNS через API: Домен Google DDNS

Я пытался использовать pythonскрипт для этого:

import os
import ssl
import time
import socket
import urllib.request
import urllib.parse


class GoogleDomainsConfig(object):
    """Houses all information for connecting to Google Domains for changing Synthetic records."""
    def __init__(self, domainname, username, password, email):
        """Constructor, set all values"""
        self.domainname = domainname
        self.username = username
        self.password = password
        self.email = email

    def getServerIP(self):
        """Gets the DNS Specified IP of the requested name."""
        return socket.gethostbyname(self.domainname)

    def updateDns(self, newIp):
        """Performs a GET which will update the Synthetic DNS record hosted through Google Domains."""
        params = urllib.parse.urlencode({'hostname': self.domainname, 'myip': newIp})
        update_url = "https://" + self.username + ":" + self.password + "@domains.google.com/nic/update?" + str(params)
        opener = urllib.request.FancyURLopener()
        opener.version = "Chrome/41.0 " + self.email
        f = opener.open(update_url)


def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('1.1.1.1', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()

    return ip
gdc = GoogleDomainsConfig("something.domain.com","username","password","someone@gmail.com")
gdc.updateDns(get_host_ip())

Когда я пытаюсь запустить этот скрипт в команде VMWare ESXi vis ssh, я получаю эту ошибку:

[Errno socket error] [Errno 113] No route to host

Я думаю, что питон интегрирован в систему exsiнет доступа в интернет, как я могу это решить?

Спасибо за помощь

...