【问题标题】:Puppet provisioner in Vagrant expects site.pp to be US-ASCII, fails with "invalid byte sequence"Vagrant 中的 Puppet 供应商期望 site.pp 是 US-ASCII,因“无效字节序列”而失败
【发布时间】:2014-04-21 16:25:34
【问题描述】:

我有一个 Vagrant 盒子(Ubuntu 14.04 beta),它使用 Puppet 配置器进行自我配置。在“vagrant up”之后,shell 配置器运行,安装更新(包括language-pack-en),并将语言环境设置为en_US.UTF-8,例如:

export DEBIAN_FRONTEND=noninteractive
echo "LC_ALL=en_US.UTF-8" >> /etc/environment
apt-get update
apt-get -y install language-pack-en
export LC_ALL=en_US.UTF-8
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb 2>&1
dpkg -i puppetlabs-release-trusty.deb
apt-get update
apt-get -y upgrade 
apt-get -y -f remove puppet hiera ruby-hiera ruby-safe-yaml
apt-get -y autoremove
apt-get -y install puppet=3.4.3-1

shell 配置程序完成没有问题,但是 puppet 配置程序失败了:

Error: Could not parse for environment production: invalid byte sequence in US-ASCII at /tmp/vagrant-puppet-1/manifests/site.pp:1

如果我立即运行 vagrant provision,则 Puppet 配置程序运行时不会出现问题,这让我怀疑它不尊重我在 /etc/environment 中设置的语言环境,并导出为环境变量以进行良好测量(可能没有必要,这是一个故障排除步骤)。

我首先在 Ubuntu 13.10 中遇到了这个问题,但设置环境变量解决了这个问题 - 14.04 不是这样。

以前有人遇到过这种情况吗?

感谢您的建议。

【问题讨论】:

    标签: vagrant puppet ubuntu-14.04


    【解决方案1】:

    这是由于 Puppet 守护程序未读取正确的语言环境造成的,即使它先前已由 shell 配置程序设置。

    虽然可以通过在 Puppet 守护程序运行时设置 LANG=en_US.UTF-8 来缓解这种情况,但 Vagrant 目前不支持在运行时将环境变量传递给 Puppet。此处描述了该问题:https://github.com/mitchellh/vagrant/issues/2270

    上面的链接也提供了一种解决方法。问题线程中的解决方法与将代理服务器设置为 env 有关。变量,但我将其修改为以类似的方式设置LANG

    Vagrantfile:

    config.vm.provision :puppet do |puppet|
      puppet.facter = {
        # Specifying the LANG environment variable this way is a work around.  
        # The work around can be removed when this issue is fixed https://github.com/mitchellh/vagrant/issues/2270
        "hack=hack LANG=en_US.UTF-8 hack" => "hack"
      }
    

    将此添加到 Vagrantfile 的 Puppet 配置器会正确设置 LANG,并且 Puppet 在首次启动时会按预期运行。

    【讨论】:

      【解决方案2】:

      当我没记错时,我遇到了 puppet 和错误格式的问题。它可以存储为dos格式。

      您 site.pp 中的其他内容似乎有误。通过 vim 从 vagrant VM 重新创建此文件。

      希望对你有帮助。

      最好的问候。

      【讨论】:

        猜你喜欢
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        • 2011-03-31
        • 1970-01-01
        相关资源
        最近更新 更多