Puppet Manifest: установить MySQL и переполнение стека

Я новичок в Puppet и пишу свой первый манифест, но он дает мне ошибку
всякий раз, когда агент пытается связаться с мастером.

Не могу понять, нужно какое-то руководство. Моя ОС — это Centos 7.

мой init.pp:

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

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

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

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

1

Решение

Прежде всего, вам необходимо установить пакеты PHP и MySQL с правильным именем. В вашем случае это mysql-server, php, а также php-mysql (или же php5 а также php5-mysqlнапример).

Другое дело, что вам нужно запускать правильные сервисы с правильными именами. Так должно быть mysqld для базы данных. Служба, которую вы запускаете для PHP, зависит от того, как вы собираетесь ее запускать, например, для запуска PHP в apache может потребоваться запустить apache2,

Третье, что не так с вашим примером, заключается в том, что вам необходимо убедиться, что службы запускаются только после установки соответствующих пакетов. Вы можете добиться этого, используя requireНапример:

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

Наконец, установка MySQL и PHP — это больше, чем просто установка пакетов и запуск служб. Вам необходимо создать конфигурационные файлы и т. Д. Я бы порекомендовал вам использовать существующие модули, написанные для этой цели. Для MySQL, например, puppetlabs-MySQL, посмотрите примеры использования там; для PHP на Apache, проверьте puppetlabs-апаш.

Если вы хотите сделать что-то самостоятельно, вы также можете проверить этот урок для 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"],
}
2

Другие решения

Я бы попытался установить, используя фактические имена пакетов:

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

Надеюсь, это поможет…

0

По вопросам рекламы [email protected]