ansible报错Gathering Facts处理

本文针对Ansible远程部署中部分目标机器无法成功部署的问题进行了详细分析。通过检查连通性和调整目标机器上的Python版本,最终解决了部署失败的问题。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

问题:ansible远程部署,目标机器有的可以部署成功,有的不行

报错: FAILED! => {"changed": false, "module_stderr": "Shared connection to 10.64.7.107 closed.\r\n

排除问题步骤:

1、怀疑连通问题:

(1)ssh 用户@ip  如果能登录目标机器说明不是连接的问题

(2)用ansible的校验连通性的命令---好吧我忘了,回头百度补充

2、观察错误信息分析

报错中的路径都是目标机器上的,且看着是ssh连接不上,ansible的机器是python2的环境,目标环境报错python版本是3.5的,怀疑是版本问题

在目标机器查询python版本是3.5,修改到版本2.6后解决

(1)修改用户的python版本:

修改用户的:~/.bashrc文件

添加 alias python='/usr/bin/python版本路径'

发现此用户权限下的确是python2了,但是问题没有解决

(2)ansible调用的目标机器的默认的python版本

原来python的软连接不对,修改到python2.6好了,修改好如下图

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

`gather_facts` 是 Ansible 剧本中的一个重要参数,主要用于控制是否收集远程主机的相关信息,这些信息也被称为“facts”。以下是关于 `gather_facts` 参数的详细介绍: ### 作用 `gather_facts` 模块负责执行已配置的事实模块,默认使用 `setup` 模块,用于收集关于远程主机的有用变量,这些变量可以在剧本中使用。Ansible 自动提供了关于系统的许多事实,如操作系统类型、内存大小、CPU 信息等,这些事实可以帮助用户在剧本中根据主机的不同情况执行不同的任务[^1]。 ### 用法 在 Ansible 剧本中,可以通过设置 `gather_facts` 的值为 `True` 或 `False` 来控制是否收集事实信息: - `gather_facts: True`:表示收集远程主机的事实信息。这是默认行为,当不指定 `gather_facts` 参数时,Ansible 会自动收集事实信息。 - `gather_facts: False`:表示不收集远程主机的事实信息。当不需要主机信息时,可以使用该设置,避免在机器较多时耗费过长时间,同时也可以避免因某台机器无法收集主机信息而导致任务卡住的问题[^4]。 以下是一个简单的示例,展示了如何使用 `gather_facts` 参数: ```yaml - name: Example playbook with gather_facts hosts: all gather_facts: True # 收集主机信息 tasks: - name: Print the operating system debug: msg: "The operating system is {{ ansible_distribution }}" - name: Example playbook without gather_facts hosts: all gather_facts: False # 不收集主机信息 tasks: - name: Copy a file copy: src: /local/path/file.txt dest: /remote/path/file.txt ``` ### 相关知识 - **Ansible 配置文件中的 `gathering` 参数**:Ansible 的配置文件中可以修改 `gathering` 的值为 `smart`、`implicit` 或者 `explicit`。`smart` 表示默认收集 facts,但 facts 已有的情况下不会收集,即使用缓存 facts;`implicit` 表示默认收集 facts,要禁止收集,必须使用 `gather_facts: False`;`explicit` 则表示默认不收集,要显式收集,必须使用 `gather_facts: True` [^2]。 - **参数选项**:`gather_facts` 模块有一个 `parallel` 参数,用于控制事实模块是并行执行还是串行执行并按顺序执行。默认情况下,如果使用了多个事实模块,它将为 `true` [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值