如何在Python中自动化VPS或专用服务器管理?

2021年11月16日21:28:00 发表评论 1,040 次浏览

Python自动化专用服务器管理指南:了解如何使用 Web API 和请求库自动执行日常任务并管理 Veesp 虚拟专用服务器或 Python 专用服务器上的服务器。

Web API 是 Web 上的应用程序编程接口,可以使用 HTTP 协议访问。服务器托管提供商(例如Veesp)提供编程访问以获取和发布数据以管理我们的服务器和他们提供的服务。

Python如何自动化VPS管理?在本教程中,你将学习如何使用请求库在 Python 中自动化Veesp VPS 任务,好吧,让我们开始吧。

下面是详细的Python自动化VPS管理示例 - 首先,让我们安装请求库:

pip3 install requests

你之后创建自己的帐户,你可以订购一些钱一些便宜的VPS,这里是可用服务的列表:

如何在Python中自动化VPS或专用服务器管理?

我在这里选择了 Linux SSD VPS,你可以随意选择你喜欢的任何一款,并且我使用了以下列表中的沙盒选项:

如何在Python中自动化VPS或专用服务器管理?一旦付款并且你的 VPS 已正确激活,你现在可以按照以下步骤操作,打开一个新的 Python 文件或交互式 shell(首选)并按照以下步骤操作:

import requests
from pprint import pprint

我使用pprint只是为了很好地打印 API 结果。

在你的 Veesp 帐户上定义一个包含真实身份验证凭据的元组:

# email and password
auth = ("email@example.com", "ffffffff")

你需要将此身份验证元组传递给你进行的每个 API 调用。

Python自动化专用服务器管理 - 让我们从获取帐户详细信息开始:

# get the HTTP Response
res = requests.get("https://secure.veesp.com/api/details", auth=auth)

# get the account details
account_details = res.json()

pprint(account_details)

requests.get()函数使用你的身份验证向该 URL发送HTTP GET请求,这是我的结果(当然还有隐藏的敏感信息):

{'client': {'address1': '',
            'city': '',
            'companyname': '',
            'country': 'US',
            'email': 'email@example.com',
            'firstname': 'John Doe',
            'host': '0.0.0.0',
            'id': '29401',
            'ip': '0.0.0.0',
            'lastlogin': '2019-11-06 11:18:04',
            'lastname': '',
            'newsletter': [''],
            'phonenumber': '',
            'postcode': '',
            'privacypolicy': [''],
            'state': ''}}

让我们看看我们刚刚购买的服务:

# get the bought services
services = requests.get('https://secure.veesp.com/api/service', auth=auth).json()
pprint(services)

这将输出:

{'services': [{'id': '32723',
   'domain': 'test',
   'total': '4.000',
   'status': 'Active',
   'billingcycle': 'Monthly',
   'next_due': '2019-12-06',
   'category': 'Linux SSD VPS',
   'category_url': 'vps',
   'name': 'SSD Sandbox'}]}

太棒了,所以这是一个每月总成本为4 美元的Linux SSD VPS 。

Python如何自动化VPS管理?你还可以查看 VM 升级选项并自动发出升级请求,请始终参阅他们的官方文档以获取更多信息。

让我们列出我们拥有的所有 VM:

# list all bought VMs
all_vms = requests.get("https://secure.veesp.com/api/service/32723/vms", auth=auth).json()
pprint(all_vms)

32723是我的服务ID,如上所示,所以你应该用你自己的ID编辑它。

这将输出如下内容:

{'vms': {'18867': {'bandwidth': 100,
                   'burstmem': -512,
                   'cpus': '1',
                   'disk': 10,
                   'id': '18867',
                   'ip': ['hiddenip', ' 2a00:1838:37:3bd::ae42'],
                   'ipv6subnets': ['2a00:1838:37:3bd::/64'],
                   'label': 'test',
                   'memory': 512,
                   'pae': 0,
                   'password': 'hiddenpassword',
                   'pxe': 0,
                   'state': 'online',
                   'template': 'linux-debian-10-x86_64-min-gen2-v1',
                   'template_label': 'Debian Buster 10 64 bit',
                   'usage': {'bandwidth': {'free': 100,
                                           'percent': '0',
                                           'total': 100,
                                           'used': 0},
                             'disk': {'free': 10,
                                      'percent': '0',
                                      'total': 10,
                                      'used': 0},
                             'memory': {'free': 0,
                                        'percent': '0',
                                        'total': 0,
                                        'used': 0}}}}}

Python自动化VPS管理示例解析- 我已经隐藏了我的 VPS 的真实 IP 地址和密码,但是你可以看到我选择了一个带有10GB SSD磁盘、512GB内存和1 个CPU等的 linux debian 发行版。

现在让我们停止 VPS:

# stop a VM automatically
stopped = requests.post("https://secure.veesp.com/api/service/32723/vms/18867/stop", auth=auth).json()
print(stopped)

18867 是我的VM ID,当然你应该使用你自己的ID。

请注意,我在这里使用requests.post()函数,该函数将HTTP POST请求发送到该 URL。

上面的代码输出:

{'status': True}

太好了,这意味着它成功停止了 VPS,让我们在 Veesp 仪表板中看到它:

如何在Python中自动化VPS或专用服务器管理?
Python自动化VPS管理示例

让我们重新开始:

# start it again
started = requests.post("https://secure.veesp.com/api/service/32723/vms/18867/start", auth=auth).json()
print(started)

输出:

{'status': True}

太好了,现在你可以使用 SSH 访问它,因为它是在线的,如仪表板所示:

如何在Python中自动化VPS或专用服务器管理?

Python如何自动化VPS管理?总结一下,你可以用这个 API 做很多很酷的事情,不仅仅是本教程中看到的那些,查看他们的官方网站和他们的API 文档以获取更多功能。我希望本教程能让你了解 Web API 及其自动化各种任务的好处,而不仅仅是 VPS 和专用服务器。

此外,本Python自动化专用服务器管理教程还向你介绍了 Web API,你可以随意制作自己的脚本来自动化你自己需要的各种事情。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: