我正在尝试让Ansible将资源部署到Azure云,并且在将其投入使用时遇到错误。我全新安装了Ubuntu 14.04
我已经通过运行以下命令安装了ansible:
- sudo apt-get install software-properties-common
- sudo apt-add-repository ppa:ansible/ansible
- sudo apt-get update
- sudo apt-get install ansible
我还通过运行命令
安装了pip - sudo easy_install pip
所有这些都是为了在服务器上安装ansible。然后,我按照here给出的说明开始使用Ansible的Azure组件。
我运行了命令sudo pip install "azure==2.0.0rc5"
来获取Azure Python SDK。然后我创建了一个简单的yaml文件来创建资源组,当我通过运行命令ansible-playbook test.yml -vvv
运行playbook时,返回了以下错误:
致命:[localhost]:失败! => {"改变":假,"失败":是的, "调用":{" module_args":{" ad_user":null," append_tags":true, " client_id":null," force":false," location":null," name":" test" , "密码":null," profile":null," secret":null," state":" present" , " subscription_id":null," tags":null," tenant":null}," module_name": " azure_rm_resourcegroup"}," msg":"你有azure == 2.0.0rc5 安装?试试
pip install azure==2.0.0rc5
- 没有名为enum的模块"}
答案 0 :(得分:0)
此错误消息中的Ansible建议确实令人困惑。通常,除了azure==2.0.0rc5
之外,您还需要添加一些包。
请注意邮件的以下部分中给出的包名称:
没有名为枚举
的模块
所以在这种情况下试试:
sudo pip install enum
要检查的一件事是:Ubuntu 16.04, Python 2.7 - ImportError: No module named enum我不确定它是否适用于这种情况,看起来像16.04问题。我确实默认安装了enum
。
根据我的经验,您还需要:
sudo pip install msrest
sudo pip install msrestazure
答案 1 :(得分:0)
为Ansible安装Azure软件包的最简单,最可靠的方法是:
pip install ansible[azure]==2.8.6
这将安装此Ansible版本所需的Azure依赖项。如果要使用最新版本,请省略==2.8.6
部分。
之所以行之有效,是因为Ansible项目在其Python打包设置中将Azure所需的exact dependency versions定义为“额外”。