Puppet没有在CentOS 7.1上使用Packer保存

时间:2016-01-10 21:03:53

标签: puppet centos7 packer

我正在尝试使用Packer创建一个Vagrant框,一切正常,直到我尝试在Packer框中安装Puppet。 Packer日志清楚地说Puppet正确安装。但是,当我在Vagrant中加载框并将SSH加载到其中时,Puppet无处可寻(使用yum list | grep puppet进行测试)。当我在Vagrant框中直接创建框并且再次运行我的测试命令时发出Packer应该执行的命令时,Puppet实际上已经列在那里。

我已经尝试重新排列shell配置中脚本的顺序,但这些都没有任何帮助。 Puppet的命令确实有效(看到我可以直接在Vagrant框中工作)。

我创建了一个包含所有文件的gist。我在CentOS 7.1上安装它。

1 个答案:

答案 0 :(得分:1)

我要说的第一件事:

  • 确保在真正结束时进行清理(在puppet.sh之后运行cleanup.sh)
  • yum list <package>将列出所有可用的软件包(以及已安装的软件包),以了解您应该运行哪些软件包yum list installed(如果您没有获得任何软件包,则可能会在您的存储库或镜像中出现问题根据你的命令输出)
  • 当您从rpm安装
  • 时,您也可以运行rpm -qa | grep puppet来查明软件包是否已安装,您应该得到类似的内容(取决于版本)

    [vagrant@vagrant ~]$ rpm -qa | grep puppet
    puppetlabs-release-6-11.noarch
    

从快速查看,脚本看起来很好 - 我从以下脚本安装

install_puppet()
{
    echo "==> Installing Puppet"
    REDHAT_MAJOR_VERSION=$(egrep -Eo 'release ([0-9][0-9.]*)' /etc/redhat-release | cut -f2 -d' ' | cut -f1 -d.)

    echo "==> Installing Puppet Labs repositories"
    rpm -ipv "http://yum.puppetlabs.com/puppetlabs-release-el-${REDHAT_MAJOR_VERSION}.noarch.rpm"

    if [[ ${CM_VERSION:-} == 'latest' ]]; then
        echo "==> Installing latest Puppet version"
        yum -y install puppet
    else
        echo "==> Installing Puppet version ${CM_VERSION}"
        yum -y install "puppet-${CM_VERSION}"
    fi
}

所以基本相同 -

<强>更新

非常奇怪,我从你的要点创造了一个盒子,盒子还可以 - 安装木偶。

我只是从puppet.sh改变了

#!/bin/sh
#rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm 
rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm 
yum -y install puppet

所以我能够安装puppet 3.x而不是puppet 4.x - 我使用现有的Vagrantfile进行简单的配置,一切都很好

当我弄乱VM时,puppet的配置正在运行并打包已安装。