Я новичок в Puppet и пишу свой первый манифест, но он дает мне ошибку
всякий раз, когда агент пытается связаться с мастером.
Не могу понять, нужно какое-то руководство. Моя ОС — это Centos 7.
мой init.pp
:
package { 'mysql':
ensure => 'present',
}
package { 'php':
ensure => 'present',
}
service { 'mysql':
ensure => 'running',
}
service { 'php':
ensure => 'running',
}
Прежде всего, вам необходимо установить пакеты 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"],
}
Я бы попытался установить, используя фактические имена пакетов:
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
Надеюсь, это поможет…