1

我在这里有一个 Cloudstack 4.2.1,并且希望我的虚拟机可以定时启动并在预定时间关闭。因此,我在考虑是否可以将 Cloudmonkey 与 CronTab 集成在一起。首先通过创建 Cloudmonkey 脚本或 API 调用,然后使用 crontab 在特定时间运行它。

但是我在创建 Cloudmonkey 脚本/API 调用时遇到问题...

我已经用谷歌搜索并找到了这个链接

http://dlafferty.blogspot.sg/2013/07/using-cloudmonkey-to-automate.html

结果是

最终结果=cloudmonkey api stop virtualmachine id="'e10bdf21-2d5c-4277-9d8d-791b82b9e3be'"

不幸的是,当我输入这个命令时,什么也没发生。如果有人有其他建议,或者我的 API 调用命令有误,请纠正我并提供帮助,谢谢。

4

1 回答 1

0

CloudMonkey 需要一些设置才能工作(例如设置您的 API 密钥)。检查 [1] 以获取 CloudMoney 的文档,并按照使用部分设置您的环境。

一旦你的设置完成并且你可以通过 CloudMonkey 与 CloudStack 交互,你应该考虑到 VM id 可能会改变,所以在你为 VM 发出命令之前,你应该首先找到正确的 id,列出 VM 并选择正确的那一个。

此外,如果您遇到问题,请从 CLoudStack 管理服务器(通常在/var/log/cloudstack/management/management-server.log)中发布相关日志。

[1] - https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI

编辑:如果您通过 CloudMonkey 与 CloudStack 建立了有效连接,则需要在 shell 脚本中以相同的方式配置 CloudMonkey。例如,当您配置 CloudMonkey 时,您可能会设置主机、端口以及您的 api 和密钥。因此,要使您的脚本正常工作,您需要在发出命令之前向 CloudMonkey 提供相同的配置。我最好的猜测是使用该-c选项并提供一个配置文件来设置所有相关参数(例如 api 一个密钥)。cloudmonkey -c CONFIG_FILE ....

Edit2:您实际上不需要在脚本中重新配置 cloudmonkey,因为它会记住您在交互式会话中的配置。我仍然建议您这样做,因为您的脚本变得更加可靠。我刚刚制作了一个这样的示例脚本:

#! /bin/bash
result=$(cloudmonkey list users)
echo $result

结果:

> ./tmp.sh
count = 1 user: id = 678e3a24-082c-11e4-86de-acbdb2423647 account = admin accountid = 678dffe6-082c-11e4-86de-acbdb2423647 accounttype = 1 apikey = T6sDBIpytyJ4_PMgNXYi8YgjMtwTiiDjijbXNB1J78EAZq2foKhCoGKjgJnej5tMaHM0LUvejgTddkhVU63wdw created = 2014-07-10T16:19:13+0200 domain = ROOT domainid = 678dd7b4-082c-11e4-86de-acbdb2423647 email = admin@mailprovider.com firstname = Admin iscallerchilddomain = False isdefault = True lastname = User secretkey = dzOPRecI5vvEVK7Vie2D0tDsQGXunUnpIAczbXnPI3sfMwQ-upWL_bPOisEYg4C-nXi-ldQno2KVZbVR-5NmVw state = enabled username = admin

也许你忘记echo了结果?

于 2014-07-09T07:36:41.867 回答