(这是来自 ask.puppetlabs.com 的交叉帖子)
我正在使用 Vagrant 和 Puppet 设置一个 centos6.4 虚拟机。首先,我熟悉 Debian linux,而且我是 Puppet 的新手,如果我遗漏了一些基本的东西,我深表歉意......
我正在使用 puppetlabs 的 mysql 模块,默认安装的 mysql 版本是 5.1,但我想安装 5.5。
从这篇文章看来,我需要从一些额外的存储库中获取 mysql5.5,
我的 Puppetfile 看起来像:
forge "http://forge.puppetlabs.com"
mod 'puppetlabs/stdlib'
mod 'puppetlabs/apache'
mod 'puppetlabs/mysql'
我添加了一个 yumrepo 声明
yumrepo {
'epel':
descr => 'Extra Packages for Enterprise Linux 6 - $basearch',
enabled => "1",
gpgcheck => "1",
failovermethod => 'priority',
gpgkey => "http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm",
;
'remi':
descr => 'Extra Packages for Enterprise Linux 6 - $basearch',
enabled => "1",
gpgcheck => "1",
failovermethod => 'priority',
gpgkey => "http://rpms.famillecollet.com/enterprise/remi-release-6.rpm",
;
}
如果我用目标版本添加 package_ensure,
class { '::mysql::server':
package_ensure => "5.5.36-1.el6.remi",
}
我可以看到 puppet 试图安装那个包,但是此时 mysql5.1 已经安装并且存在冲突的依赖项。我曾尝试寻找一种好的方法,但我对 puppet 还不够熟悉,不知道要寻找什么。
感谢帮助
最佳答案
首先要安装 mysql 5.5,你已经删除了 mysql 5.1 添加以下行 init.pp 而且 epel repo 不会在你的系统上安装 5.5 你需要使用 rpm 的 mysql 安装它使用 rpm 安装它使用添加以下内容int.pp 文件中的行
package { 'mysql-libs':
ensure => 'purged',
}
package { 'MySQL-server-5.5.8-1.rhel5.x86_64':
provider => 'rpm',
ensure => installed,
source => "/path_to_dir/MySQL-server-5.5.8-1.rhel5.x86_64.rpm",
require => Package['mysql-libs'],
}
关于mysql - centos mysql5.5通过puppet安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051191/