强大的云部署意味着拥有深思熟虑的数据管理策略。在 CloudSigma,我们提供快照以及分层存储等免费功能。因此,可以实施出色的数据管理框架,以确保对您在云中存储的数据的可用性和完整性提供强有力的保护。
在这篇博文中,我们与您分享一个脚本,该脚本允许您自动将云盘的快照提升为完整的云盘。这非常适合备份您使用云盘备份功能创建的各种还原点。此功能是通过使用 Python 脚本实现的,该脚本又利用了免费的 CloudSigma Python 库(您可以从此处下载 这里).
那么,让我们开始吧!
首先,如果您的本地计算机或服务器上还没有安装 Python,则必须先安装它。安装 Python 通常很容易,如今许多 Linux 和 UNIX 发行版默认都包含最新的 Python 版本。甚至一些 Windows 电脑现在也预装了 Python。以下是在各种操作系统上安装 Python 的简要概述。
按操作系统安装
Mac OS X
|
1 |
sudo pip install cloudsigma |
Ubuntu
|
1 2 |
sudo apt-get -y install python-pip pip install cloudsigma |
CentOS / RHEL
为了安装 CloudSigma 模块,您首先需要安装 EPEL 存储库,以便安装 PIP。以下说明适用于 RHEL 6.x / CentOS 6.x。有关安装存储库的更多详细信息,请访问 EPEL 网站,地址为 这里.
|
1 2 3 4 5 |
yum install -y wget wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm yum install -y python-pip pip install cloudsigma |
Python 和脚本配置
现在,让我们通过这个简单的命令来验证 Python 是否已正确安装:
|
1 |
python --version |
上述命令的输出版本应该类似于:Python 2.7.10
在您的机器上安装好 Python 后,我们就可以继续进行 py-cloudsigma 配置。
为了让 CloudSigma 库与 API 进行交互,您需要提供您的凭据。
这些设置在文件中 ~/.cloudsigma.conf.
这里’是一个与圣何塞(San Jose)数据中心“通信”的文件示例版本。如果您想改用苏黎世(Zürich)数据中心,只需将 sjc 替换为 zrh ,在 api_endpoint 和 ws_endpoint.
|
1 2 3 4 |
api_endpoint = https://sjc.cloudsigma.com/api/2.0/ ws_endpoint = wss://direct.sjc.cloudsigma.com/websocket username = password = |
由于此文件包含凭据,强烈建议您将该文件的权限设置为 chmod 600 ,以便该文件只能由所有者读取:
|
1 |
chmod 600 ~/.cloudsigma.conf |
现在我们准备好创建并执行 Python 脚本了。我们在下面附上了完整的源代码,因此只需打开您最喜欢的文本编辑器并将其粘贴到那里,或者使用下载链接 这里
请注意,保存文件时,文件的扩展名必须是 .py 。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/usr/bin/python import cloudsigma from pprint import pprint import time uid = raw_input("快照 UUID: ") snapshots = cloudsigma.resource.Snapshot() ssd_drive = snapshots.clone(uid) pprint(ssd_drive) time.sleep(10) drive = cloudsigma.resource.Drive() zadara_drive = drive.clone((ssd_drive['uuid']), {'storage_type': 'zadara'}) pprint(zadara_drive) zadara_ready = False while not zadara_ready: if drive.get(zadara_drive['uuid'])['status'] == 'unmounted': zadara_ready = True print "完成" drive.delete(ssd_drive['uuid']) else: time.sleep(1) |
通过以下命令执行脚本:
|
1 |
.py |
该脚本的主要目标是在存储管理方面尽可能提供方便和简单,特别是对于新用户以及那些比起图形用户界面(GUI)更喜欢控制台的用户 🙂
评论
暂无评论。发表第一条评论吧。