安装对Ansible的Azure支持

时间:2016-10-20 15:40:56

标签: azure ansible

我正在尝试让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的模块"}

2 个答案:

答案 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定义为“额外”。