首页 > 解决方案 > Puppet 代理在 AWS 上的 Ubuntu 16.04 的 POSIX 语言环境中运行

问题描述

我设置了一个在 AWS EC2 中部署的 Ubuntu 16.04 上运行的 Puppet 代理。Puppet 代理服务安装在用户数据中完成。

然后我尝试使用它来安装一些监控代理,当代理通过服务运行时,我收到以下错误消息:

Could not evaluate: invalid byte sequence in US-ASCII

我确保默认语言环境和 root 用户(运行代理)的语言环境是 en_US.utf8,无论是在登录 SSH 时还是通过将日志添加到在用户数据中运行的 puppet 代理安装脚本中。我还在安装我的监控代理的模块中添加了调试打印输出,它说当前语言环境是 POSIX。

当我尝试不通过服务运行代理时(只是以 root 身份在 SSH 中运行“puppet agent -t”) - 它工作正常,并且我添加的日志记录显示语言环境是 en_US.utf8

为什么 puppet 代理在 POSIX 语言环境下而不是在 en_US.utf8 下运行?

谢谢!

标签: amazon-web-servicesamazon-ec2localeubuntu-16.04puppet

解决方案


我的问题解决了。

只需将以下内容添加到 /etc/default/puppet:

LANG=en_US.UTF-8
LANGUAGE=''
LC_ALL=''

但是,如果您添加它并重新启动服务,这不起作用(至少对我而言)。仅在安装 Puppet 服务之前存在这些行时才有效。


推荐阅读