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
了结果?