在 azure vm 上运行 ansible 的库错误
Posted
技术标签:
【中文标题】在 azure vm 上运行 ansible 的库错误【英文标题】:Library errors running ansible on azure vm 【发布时间】:2019-10-26 08:02:26 【问题描述】:在 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
得到错误,
TASK [创建资源组] ****************************************************** ****************************************************** ********* 任务执行过程中出现异常。看到完整的 回溯,使用 -vvv。错误是:ImportError: No module named 输入致命:[localhost]:失败! => “改变”:假,“味精”: “无法导入所需的 Python 库 (msrestazure) 的 Python /usr/bin/python。请阅读模块文档和 安装在适当的位置”
播放回顾
创建资源组
【问题讨论】:
【参考方案1】:一般来说,如果你使用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]
时,msrest
和msrestazure
包已经安装。因此,您无需再次安装它们。然后您可以尝试再次创建资源组。
【讨论】:
我最终创建了一个 ansible 脚本来安装气流。 #这个脚本要安装 Python3-pip 和 Ansible #!/bin/bash sudo apt -y update sudo apt -y install python3-pip sudo -H pip3 install --upgrade pip #Installing Ansible sudo pip3 install ansible sudo easy_install -U cffi sudo easy_install -U cryptography 卸载用pip安装的ansible,用pip3替换上面的改动以上是关于在 azure vm 上运行 ansible 的库错误的主要内容,如果未能解决你的问题,请参考以下文章
仅具有私有 IP 的 Azure VM 的 Ansible 动态清单
在 Ansible 中获取 Azure 规模集 VM 的专用 IP
Azure 中没有用于 Ansible VM 预配的名为 packaging.version 的模块
尝试为 Azure 使用 Ansible 动态清单插件时出错