首页 > 解决方案 > Ansible Inventory: LC_ALL: 无法更改语言环境 (en_US.UTF-8)\r\n/bin/sh

问题描述

我正在学习 Jenkins,我正在构建一个远程主机容器并尝试通过 Ansible 连接到它。但是,当我运行命令时ansible -i hosts -m ping test1,出现如下错误,我尝试搜索并解决一些解决方案,但没有希望。

jenkins@3118b45582bc:~/ansible$ ansible -i hosts -m ping test1

测试1 | 失败的!=> { "changed": false, "module_stderr": "与 remote_host 的共享连接已关闭。\r\n", "module_stdout": "bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)\ r\n/bin/sh: 警告: setlocale: LC_ALL: 无法更改语言环境 (en_US.UTF-8)\r\n/bin/sh: 警告: setlocale: LC_ALL: 无法更改语言环境 (en_US.UTF-8)\ r\n/bin/sh: 警告: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)\r\n/bin/sh: /usr/bin/python: No such file or directory\r\n" , "msg": "模块未能正确执行,您可能需要设置解释器。\n查看 stdout/stderr 了解确切错误", "rc": 127 }

jenkins@3118b45582bc:~/ansible$ 猫主机

[全部:变量]

ansible_connection = ssh

[测试] test1 ansible_host=remote_host ansible_user=remote_user ansible_ssh_private_key_file=/var/jenkins_home/ansible/remote-key

jenkins@3118b45582bc:~/ansible$ ping remote_host

PING remote_host (172.18.0.2) 56(84) 字节数据。来自 remote-host.jenkins-data_net (172.18.0.2) 的 64 个字节:icmp_seq=1 ttl=64 time=0.166 ms 来自 remote-host.jenkins-data_net (172.18.0.2) 的 64 个字节:icmp_seq=2 ttl=64 time= 0.289 ms 来自 remote-host.jenkins-data_net (172.18.0.2) 的 64 个字节:icmp_seq=3 ttl=64 time=0.358 ms ^C --- remote_host ping 统计信息 --- 3 个数据包传输,3 个数据包接收,0% 数据包丢失, 时间 7ms rtt min/avg/max/mdev = 0.166/0.271/0.358/0.079 ms

如果您需要更多信息,请告诉我。

谢谢和问候,--威廉

标签: jenkinsansible

解决方案


一个快速的解决方法是ansible_python_interpreter=/usr/bin/python3在你的清单文件(主机)中添加 python 3 ( ) 的路径,就像:

test1 ansible_host=remote_host ansible_user=remote_user ansible_private_key_file=/var/jenkins_home/ansible/remote-key ansible_python_interpreter=/usr/bin/python3

推荐阅读