Не могу запустить куклу с модулями на бродяге
Я изучал Puppet и запускал манифесты без проблем, но когда я добавил модули в Puppet, я столкнулся со следующей проблемой:
DEBUG ssh: Exit status: 0
INFO interface: info: Running Puppet with db.pp...
INFO interface: info: ==> db: Running Puppet with db.pp...
==> db: Running Puppet with db.pp...
DEBUG ssh: Re-using SSH connection.
INFO ssh: Execute: puppet apply --verbose --debug --modulepath '/tmp/vagrant-puppet/modules-9f098f5eef3eb89ba69e9481e2fa4839:/etc/puppet/modules' --detailed-exitcodes --manifestdir /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513 /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/db.pp (sudo=true)
DEBUG ssh: stderr: stdin: is not a tty
INFO interface: info: stdin: is not a tty
INFO interface: info: ==> db: stdin: is not a tty
==> db: stdin: is not a tty
DEBUG ssh: stdout: warning: Could not retrieve fact fqdn
INFO interface: info: warning: Could not retrieve fact fqdn
INFO interface: info: ==> db: warning: Could not retrieve fact fqdn
==> db: warning: Could not retrieve fact fqdn
DEBUG ssh: stdout:
DEBUG ssh: stderr: Could not find class msql-server for precise32 at /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/db.pp:59 on node precise32
INFO interface: info: Could not find class msql-server for precise32 at /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/db.pp:59 on node precise32
INFO interface: info: ==> db: Could not find class msql-server for precise32 at /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/db.pp:59 on node precise32
==> db: Could not find class msql-server for precise32 at /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/db.pp:59 on node precise32
Очевидно, Vagrant не использует модули, как описано в этом файле vagrant (в разделе db machine):
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise32"
config.vm.define :db do |db_config|
db_config.vm.network :private_network,
:ip => "192.168.33.10"
db_config.vm.provision "puppet" do |puppet|
puppet.module_path = "modules"
puppet.manifest_file = "db.pp"
puppet.options = "--verbose --debug"
end
end
config.vm.define :web do |web_config|
web_config.vm.network :private_network,
:ip => "192.168.33.12"
web_config.vm.provision "puppet" do |puppet|
puppet.module_path = "modules"
puppet.manifest_file = "web.pp"
end
end
config.vm.define :monitor do |monitor_config|
monitor_config.vm.network :private_network,
:ip => "192.168.33.14"
end
end
Любая подсказка о том, что происходит?
РЕДАКТИРОВАНИЕ
Я смог понять... это была проблема синтаксиса в марионетке. Но теперь у меня есть другая проблема
:: Сбой ресурса с ошибкой ArgumentError: Неверный тип ресурса msql::db
Тип ресурса используется в манифесте:
include mysql::server
msql::db { "loja": schema => "loja_schema", password => "xxxx", }
Определение ниже:
define mysql::db($schema, $user = $title, $password) {
#Dependência
Class['mysql::server'] -> Mysql::db[$title]
exec { "$title-schema":
unless => "mysql -uroot $schema",
command => "mysqladmin -uroot create $schema",
path => "/usr/bin/",
}
exec {"$title-user":
unless => "mysql -u$user -p$password $schema",
command => "mysql -uroot -e \"GRANT ALL PRIVILEGES ON \
$schema.* TO '$user'@'%' \
IDENTIFIED BY '$password';\"",
path => "/usr/bin/",
require => Exec["$title-schema"],
}
}
1 ответ
Проблема была решена путем включения классов модуля в файл манифеста, указанный Vagrant.
Пример:
Внутри манифесты /db.pp добавить:
include <module name>::<class name>