首页 > 解决方案 > 在 azure vm 上运行 ansible 的库错误

问题描述

在 Azure 上运行 ansible 时模块未加载错误。

尝试在 Azure 上安装 ansible 并运行一些测试代码

尝试在 Azure VM 上测试一些安装 ansible 的部署。--在 VM 中安装以下包 --Azure 特定 --安装 azure python SDK 模块的包

sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip

--安装ansible包

sudo pip install ansible[azure]
sudo pip install msrestazure
sudo pip install msrest

尝试创建资源组时,出现库未加载错误

---
- hosts: localhost
  connection: local
  tasks:
    - name: Create resource group
      azure_rm_resourcegroup:
        name: ansible-rg
        location: centralus
      register: rg
    - debug:
        var: rg

得到错误,

任务 [创建资源组] ******************************************** ****************************************************** ****************** 任务执行过程中出现异常。要查看完整的回溯,请使用 -vvv。错误是: ImportError: No module named typing fatal: [localhost]: FAILED! => {"changed": false, "msg": "无法在 Python /usr/bin/python 上导入所需的 Python 库 (msrestazure)。请阅读模块文档并安装在适当的位置"}

播放回顾


创建资源组

标签: azureansible

解决方案


通常,如果您使用 python2 并执行命令,sudo pip install那么它将在路径 /usr/local/lib/python2.7/dist-packages 中安装包。但是如果你改变环境的一些东西你不知道,就会有一些错误你也不知道。

所以我会建议你使用虚拟环境,它不会影响你的真实环境。因此,请按照此处的步骤操作:

sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip
sudo pip install virtualenv
sudo mkdir ansible
sudo virtualenv ansible
cd ansible
source bin/activate

现在虚拟环境已准备就绪,您可以在其中安装 ansible。

sudo pip install ansible[azure]

然后使用您的服务主体在路径 ~/.azure/ 中创建凭据文件。并且当您安装 时ansible[azure],软件包msrestmsrestazure已经安装。因此,您无需再次安装它们。然后您可以尝试再次创建资源组。


推荐阅读