Puppet 清单:安装 MySQL 和 PHP

Puppet Manifest: Install MySQL and PHP

我是 Puppet 的新手,正在编写我的第一个清单,但它给了我一个错误 每当代理尝试与主通信时。

无法正确处理,需要一些指导。我的OS是centos 7.

我的init.pp:

 package { 'mysql':
          ensure => 'present',
 }

 package { 'php':
          ensure => 'present',
 }

 service { 'mysql':
           ensure => 'running',
 }

 service { 'php':
           ensure => 'running',
 }

我会尝试使用实际的软件包名称进行安装:

package { 'mysql-server':
  ensure => present,
}

package { 'mysql':
  ensure => present,
}

package { 'php-mysql':
  ensure => present,
}

并使用正确的服务名称

service { 'mysqld':
  ensure => running,
}

https://docs.puppet.com/puppet/latest/reference/type.html#package https://docs.puppet.com/puppet/latest/reference/type.html#service

希望对您有所帮助...

首先,您需要安装正确名称的PHP 和MySQL 软件包。在您的情况下,它是 mysql-serverphpphp-mysql(或 php5php5-mysql,例如)。

另一件事是您需要以正确的名称启动正确的服务。数据库应该是mysqld。您为 PHP 启动的服务取决于您打算如何 运行 它 - 例如对于 apache 中的 运行ning PHP,您可能需要启动 apache2

您的示例的第三个错误是您需要确保仅在安装相应的包后才启动服务。您可以使用 require 实现此目的,例如:

service { "mysqld":
    ensure => "running",
    enable => "true",
    require => Package["mysql-server"],
}

最后,安装 MySQL 和 PHP 不仅仅是安装软件包和 运行ning 服务。您需要创建配置文件等。我建议您使用为此目的编写的现有模块。对于 MySQL,例如 puppetlabs-mysql, see usage examples there; for PHP on Apache, check out puppetlabs-apache

如果您想自己做事,也可以查看 this tutorial Ubuntu。以下是教程的摘录:

Package { ensure => "installed" }

package { "apache2": }
package { "apache2.2-common": }
package { "php5": }
package { "php5-mysql": }
package { "mysql-server": }

exec { "mysqlpasswd":
    command => "/usr/bin/mysqladmin -u root password ChangeThis1",
    notify => [Service["mysql"], Service["apache2"]],
    require => [Package["mysql-server"], Package["apache2"]],
}

service { "apache2":
    ensure => "running",
    enable => "true",
    require => Package["apache2"],
}

service { "mysql":
    ensure => "running",
    enable => "true",
    require => Package["mysql-server"],
}