我正在尝试使用Packer创建一个Vagrant框,一切正常,直到我尝试在Packer框中安装Puppet。 Packer日志清楚地说Puppet正确安装。但是,当我在Vagrant中加载框并将SSH加载到其中时,Puppet无处可寻(使用yum list | grep puppet
进行测试)。当我在Vagrant框中直接创建框并且再次运行我的测试命令时发出Packer应该执行的命令时,Puppet实际上已经列在那里。
我已经尝试重新排列shell配置中脚本的顺序,但这些都没有任何帮助。 Puppet的命令确实有效(看到我可以直接在Vagrant框中工作)。
我创建了一个包含所有文件的gist。我在CentOS 7.1上安装它。
答案 0 :(得分:1)
我要说的第一件事:
yum list <package>
将列出所有可用的软件包(以及已安装的软件包),以了解您应该运行哪些软件包yum list installed
(如果您没有获得任何软件包,则可能会在您的存储库或镜像中出现问题根据你的命令输出)时,您也可以运行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的配置正在运行并打包已安装。