通过puppet安装centos mysql5.5

时间:2014-02-26 19:23:56

标签: mysql puppet centos6

(这是来自ask.puppetlabs.com)的交叉帖子

我正在使用Vagrant和Puppet设置centos6.4 VM。首先,我熟悉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并且存在冲突的依赖项。我已经尝试过寻找一种好的方法,但对傀儡还不熟悉,还不知道该找什么。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

首先安装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'],
    }