3

我正在尝试让 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。然后我按照此处给出的说明开始使用 Ansible 的 Azure 组件

我运行命令sudo pip install "azure==2.0.0rc5"来获取 Azure Python SDK。然后我创建了一个简单的 yaml 文件来创建资源组,当我通过运行命令运行 playbook 时,ansible-playbook test.yml -vvv返回以下错误:

致命的:[本地主机]:失败!=> {“更改”:假,“失败”:真,“调用”:{“module_args”:{“ad_user”:空,“append_tags”:真,“client_id”:空,“强制”:假,“ location": null, "name": "test", "password": 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 的模块"}

4

2 回答 2

5

Ansible 3.0+ / ansible-core 2.10+ 的新答案:

要安装 Azure 支持,请使用Ansible Azure 集合,如下所示:

# Install dependencies
curl -O https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt
pip install -r requirements-azure.txt

# Install collection
ansible-galaxy collection install azure.azcollection
  • requirements-azure.txt指定所有库的版本,因此如果升级集合版本,最好重新安装这些
  • 考虑将其签入到“固定”版本的依赖项
  • 您可能还想固定收藏版本

作为一个Ansible 集合,现在可以在 Ansible 核心发布过程之外更快速地更新此 Ansible Azure 支持。

针对Ansible 3.0 及更高版本中包含的 ansible -core 2.10+ 进行了更新。


原始答案适用于 Ansible 2.9:

为 Ansible 安装 Azure 包的最简单、最可靠的方法是:

pip install ansible[azure]==2.8.6

这将安装此 Ansible 版本所需的 Azure 依赖项。如果要使用最新版本,请省略该==2.8.6部分。

这是因为 Ansible 项目将 Azure 支持所需的确切依赖版本(截至 2.9.9)定义为 Python 打包设置中的“额外”。

于 2019-11-07T12:03:51.847 回答
0

此错误消息中的 Ansible 建议确实令人困惑。通常你需要添加更多的包除了azure==2.0.0rc5.

请注意消息以下部分中给出的包名称:

没有名为enum 的模块

所以在这种情况下尝试:

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
于 2016-10-21T01:45:48.027 回答