确保在MySQL之前获得更新
我正在使用来自的Puppet模块,由于某种原因,它一直在生成有关apt get update的错误 可以找到确切的错误消息 出于某种奇怪的原因,MySQL类是在执行其他任何操作之前以及在执行apt get update命令之前首先执行的 有没有办法确保命令确保在MySQL之前获得更新,mysql,puppet,vagrant,Mysql,Puppet,Vagrant,我正在使用来自的Puppet模块,由于某种原因,它一直在生成有关apt get update的错误 可以找到确切的错误消息 出于某种奇怪的原因,MySQL类是在执行其他任何操作之前以及在执行apt get update命令之前首先执行的 有没有办法确保命令apt update在我的MySQL模块之前运行 您可以找到我的当前default.pp清单 我尝试了各种方法来确保首先执行apt update命令,但似乎没有任何效果。在第148行,我尝试了以下代码 包{'mysql': 确保=>“已安装”
apt update
在我的MySQL模块之前运行
您可以找到我的当前default.pp清单
我尝试了各种方法来确保首先执行apt update命令,但似乎没有任何效果。在第148行,我尝试了以下代码
包{'mysql':
确保=>“已安装”,
require=>Exec['apt-update'],
}
但这并没有解决我的问题
没有办法解决这个问题了 这可能很简单,只需删除“已安装”周围的引号,或者如果mysql已经安装,您可能需要确保最新版本才能更新:
package { 'mysql':
ensure => latest,
require => Exec['apt-update'],
}
为了确保apt get update发生在Puppet配置之前,我在定义Puppet之前将以下命令放在我的vagrant文件中
config.vm.provision:shell,:inline=>“apt get update--修复丢失”
您必须在puppet中设置执行顺序。如果您使用puppet mysql模块,它会附带不同的类。这些是(现在):
因此,要将APT模块设置为第一个,请设置您正在使用的所有mysql模块类的执行顺序。例如:
Class['apt'] -> Class['mysql::server'] -> Class['mysql::client'] -> Class['mysql::bindings']
现在,您的puppet脚本中所有与sql相关的内容都将在apt之后执行
Class['apt'] -> Class['mysql::server'] -> Class['mysql::client'] -> Class['mysql::bindings']