ansible报错解决:Failed to import the required Python library (netaddr)
ansible报错解决:Failed to import the required Python library (netaddr)
问题情况
今天我在做实验的时候出现了一个问题,以下是我的playbook,这个playbook是验证变量ip_address
是否是一个合法的IP地址,并打印相应的信息的一个剧本
[root@localhost ansible]# vim test6.yml
- hosts: testvars:ip_address: "192.168.2455.1"tasks:- name: "判断{{ip_address}}是否为合法ip"debug:msg: "{{ ip_address | ipaddr}}"
# 执行结果
[root@localhost ansible]# ansible-playbook test6.yml PLAY [test] *************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************
ok: [192.168.200.20]TASK [判断192.168.2455.1是否为合法ip] *********************************************************************************************
fatal: [192.168.200.20]: FAILED! => {"msg": "template error while templating string: Could not load \"ipaddr\": 'Invalid plugin FQCN (ansible.netcommon.ipaddr): unable to locate collection ansible.netcommon'. String: {{ ip_address | ipaddr}}. Could not load \"ipaddr\": 'Invalid plugin FQCN (ansible.netcommon.ipaddr): unable to locate collection ansible.netcommon'"}PLAY RECAP **************************************************************************************************************************
192.168.200.20 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
这里报错没有识别ipaddr这个集合,并告诉你没有安装ansible.netcommon.ipaddr集合,这时候我们安装集合就好了对吧
# 安装集合
[root@localhost ansible]# ansible-galaxy collection install /root/ansible-netcommon-6.1.1.tar.gz
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-utils-4.1.0.tar.gz to /root/.ansible/tmp/ansible-local-4770j3qwrbe5/tmptvw6n2g6/ansible-utils-4.1.0-_5mvcxlt
Installing 'ansible.netcommon:6.1.1' to '/root/ansible/mycollection/ansible_collections/ansible/netcommon'
ansible.netcommon:6.1.1 was installed successfully
Installing 'ansible.utils:4.1.0' to '/root/ansible/mycollection/ansible_collections/ansible/utils'
ansible.utils:4.1.0 was installed successfully
# 查看集合
[root@localhost ansible]# ansible-galaxy collection list
# 这里是我自己设置的集合路径,显示已经安装了对吧
# /root/ansible/mycollection/ansible_collections
Collection Version
----------------- -------
ansible.netcommon 6.1.1
ansible.utils 4.1.0
再次执行这个playbook
[root@localhost ansible]# ansible-playbook test6.yml PLAY [test] *************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************
ok: [192.168.200.20]TASK [Set the IP address192.168.2455.1] *********************************************************************************************
[DEPRECATION WARNING]: Use 'ansible.utils.ipaddr' module instead. This feature will be removed from ansible.netcommon in a release
after 2024-01-01. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
fatal: [192.168.200.20]: FAILED! => {"msg": "Failed to import the required Python library (netaddr) on localhost.localdomain's Python /usr/bin/python3.11. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}
# 这个时候他告诉我们没有netaddr这个python库
# 这里我们安装这个python库
# 也是我自己出错的点,你ansible使用的是哪个python版本
# 你就要使用哪个版本来安装netaddr这个python库才行
PLAY RECAP **************************************************************************************************************************
192.168.200.20 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
解决问题
先查看ansible版本
[root@localhost ansible]# ansible --version
ansible [core 2.14.2]config file = /root/ansible/ansible.cfgconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3.11/site-packages/ansibleansible collection location = /root/ansible/mycollection:/root/ansible/{{ ANSIBLE_HOME ~ "/collections:/usr/share/ansible/collections" }}executable location = /usr/bin/ansiblepython version = 3.11.2 (main, Feb 16 2023, 00:00:00) [GCC 11.3.1 20221121 (Red Hat 11.3.1-4)] (/usr/bin/python3.11)jinja version = 3.1.2libyaml = True
# 用的python3.11对吧
# 使用python3.11安装netaddr
安装netaddr这个python库
# 安装pip3.11
[root@localhost ansible]# yum install -y python3.11-pip.noarch
# 创建python虚拟环境
python3.11 -m venv python_env
source python_env/bin/activate
(python_env) [root@localhost ansible]# pip3.11 install netaddr
Collecting netaddrUsing cached netaddr-1.2.1-py3-none-any.whl (2.3 MB)
Installing collected packages: netaddr
Successfully installed netaddr-1.2.1[notice] A new release of pip available: 22.3.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
执行成功
(python_env) [root@localhost ansible]# ansible-playbook test6.yml PLAY [test] *************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************
ok: [192.168.200.20]TASK [判断192.168.2455.1是否为合法ip] ***********************************************************************************************
[DEPRECATION WARNING]: Use 'ansible.utils.ipaddr' module instead. This feature will be removed from ansible.netcommon in a release
after 2024-01-01. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
# 这里告诉我们要使用完整的模块名字
ok: [192.168.200.20] => {"msg": false
}PLAY RECAP **************************************************************************************************************************
192.168.200.20 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
相关文章:
ansible报错解决:Failed to import the required Python library (netaddr)
ansible报错解决:Failed to import the required Python library (netaddr) 问题情况 今天我在做实验的时候出现了一个问题,以下是我的playbook,这个playbook是验证变量ip_address是否是一个合法的IP地址,并打印相应的信息的一个…...
盛邦安全拟战略收购卫星通信加密厂商天御云安
近日,远江盛邦(北京)网络安全科技股份有限公司(以下简称“盛邦安全”,股票代码:688651)对外公布,拟使用自有资金不超过人民币3000万元持有北京天御云安科技有限公司(以下简称“天御云安”&#…...

iOS MRC那句话
混编时使用MRC文件需要使用这句话 -fno-objc-arc在下图中显示的位置添加...

macOS DOSBox 汇编环境搭建
正文 一、安装DOSBox 首先前往DOSBox的官网下载并安装最新版本的DOSBox。 二、下载必备的工具包 在用户目录下新建一个文件夹,比如 dosbox: mkdir dosbox然后下载一些常用的工具。下载好了后,将这些工具解压,重新放在 dosbox 这个文件夹…...

Python深度学习基于Tensorflow(1)Numpy基础
文章目录 数据转换和数据生成存取数据数据变形和合并算数计算广播机制使用Numpy实现回归实例 numpy的重要性不言而喻,一般不涉及到GPU/TPU计算,都是用numpy,常见的np就是这个玩意。其特点就是快!其实如果不涉及到深度学习…...

体验GM CHM Reader Pro,享受高效阅读
还在为CHM文档的阅读而烦恼吗?试试GM CHM Reader Pro for Mac吧!它拥有强大的功能和出色的性能,能够让你轻松打开和阅读CHM文件,享受高效、舒适的阅读体验。无论是学习、工作还是娱乐,GM CHM Reader Pro都能成为你的得…...

校园网拨号上网环境下多开虚拟机,实现宿主机与虚拟机互通,并访问外部网络
校园网某些登录客户端只允许同一时间一台设备登录,因此必须使用NAT模式共享宿主机的真实IP,相当于访问外网时只使用宿主机IP,此方式通过虚拟网卡与物理网卡之间的数据转发实现访问外网及互通 经验证,将centos的物理地址与主机物理…...
cpu常用命令
1.平台信息 # 读节点 adb shell "cat proc/cpuinfo" # 读属性 adb shell getprop ro.hardware 2.负载信息 # 负载信息 adb shell dumpsys cpuinfo 3.原生定频 # 频率档位 adb shell "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies&q…...
Vue3实战笔记(06)--- Axios 基本用法
文章目录 前言一、发送get请求二、发送post请求三、另一种写法总结 前言 今天学习Vue官方推荐的请求工具Axios ,Axios 是一个基于 promise 的 HTTP 库,可用于浏览器和 node.js 中。它简洁、易用且功能强大,支持多种请求类型(GET、…...

使用单片机在图形点阵LCD上绘制波形图
使用单片机在图形点阵LCD上绘制波形图 需求: 假如有一组浮点数据,是通过AD转换得到的,保存在数组MyArray[]中,采集点数为len,采集周期为T,现在想用单片机在LCD上绘制出这组数据对应的波形图,该…...

生信人写程序1. Perl语言模板及配置
生物信息领域常用语言 个人认为:是否能熟悉使用Shell(项目流程搭建)R(数据统计与可视化)Perl/Python/Java…(胶水语言,数据格式转换,软件间衔接)三门语言是一位合格生物信息工程师的标准。 生物信息常用语言非常广泛,我常用的有…...

【Android】Kotlin学习之数据容器 -- 集合
一. 定义 List : 是一个有序列表, 可通过下标访问元素. 元素可以在list中出现多次, 元素可重复 Set : 是元素唯一的集合, 一般来说Set中元素的顺序并不重要, 无序集合. Map : 是一组键值对, 键是唯一的, 每个键刚好映射到一个值, 值可以重复 二. 集合创建 三. 示例 mutabl…...

超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
文章目录 一、什么是Mock1、Mock定义2、为什么使用3、常用的Mock技术4、Mokito中文文档5、集成测试和单元测试区别 二、API1、Mockito的API2、ArgumentMatchers参数匹配3、OngoingStubbing返回操作 三、Mockito的使用1、添加Maven依赖2、InjectMocks、Mock使用3、SpringbootTes…...

国产操作系统下Chrome的命令行使用 _ 统信 _ 麒麟
原文链接:国产操作系统下Chrome的命令行使用 | 统信 | 麒麟 Hello,大家好啊!今天我们来聊聊如何在国产操作系统上使用命令行操作Google Chrome。无论是进行自动化测试、网页截图还是网页数据抓取,使用命令行操作Google Chrome都能…...

linux性能监控之slabtop
slabtop命令是以实时的方式显示内核slab缓冲区的细节信息,是linux自带的命令 [rootk8s-master ~]# slabtop --helpUsage:slabtop [options]Options:-d, --delay <secs> delay updates-o, --once only display once, then exit-s, --sort <char&…...
Allure 在 Python 中的安装与使用
Allure 是一个灵活轻量级的测试报告工具,它能够生成详细且富有洞察力的测试报告。在 Python 中,Allure 通常与 Pytest 结合使用,以提供更加丰富的测试结果展示。下面我将介绍关于如何在 Python 中使用 Allure 的详细操作。 一、环境准备 在…...

python实现动态时钟功能
欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 一.前言 时钟,也被称为钟表,是一种用于测量、记录时间的仪器。时钟通常由时针、分针、秒针等计时仪器组成,是现代社会不可或缺的一种计时工具。它的发明和使用极大地改变了人类的生活方式和时间观念。 时钟的类型有很多,…...

QueryPerformanceCounter实现高精度uS(微妙)延时
参考连接 C# 利用Kernel32的QueryPerformanceCounter封装的 高精度定时器Timer_kernel32.dll queryperformancecounter-CSDN博客https://blog.csdn.net/wuyuander/article/details/111831973 特此记录 anlog 2024年5月11日...
Logstash详解
Logstash详解:构建强大日志收集与处理管道的利器 一、引言 在大数据和云计算的时代,日志数据作为企业运营和故障排查的重要依据,其收集、处理和分析能力显得尤为重要。Logstash,作为一款强大的日志收集、处理和转发工具…...
QT设计模式:适配器模式
基本概念 适配器模式(Adapter Pattern)是一种结构型设计模式,允许将一个类的接口转换成客户端所期望的另一个接口,可以让原本由于接口不兼容而不能一起工作的类能够一起工作。 适配器模式需要实现的部分为: Target类…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...