Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 5 da Aula 3 - Provisionando um mysql

Estou tendo problemas para provisionar o Mysql na criação da máquina. Dá o seguinte erro:

==> web: err: /Stage[main]//Exec[cria_senha]/returns: change from notrun to 0 failed: mysql -uroot -e "GRANT ALL PRIVILEGES ON * TO 'musicjungle'@'%' IDENTIFIED BY 'minha-senha';" musicjungle returned 1 instead 
of one of [0] at /tmp/vagrant-puppet/manifests-a11d1078b1b1f2e3bdea27312f6ba513/web.pp:56

O estranho é que se eu executo o mesmo arquivo web.pp após o boot da máquina, ele faz o procedimento correto.

O meu exec no Puppet está da seguinte maneira:

exec { "cria_senha":
     command => "mysql -uroot -e \"GRANT ALL PRIVILEGES ON * TO 'musicjungle'@'%' IDENTIFIED BY 'minha-senha';\" musicjungle",
     unless  => "mysql -umusicjungle -pminha-senha musicjungle",
     path    => "/usr/bin",
     require => Service["mysql"],
}
3 respostas

oi Rodrigo,

tbm estou assistindo o treinamento para poder responder as duvidas. peço mais um pouco de paciência.

vou tentar responder mais rapido possivel!

abs e desculpe a demora, Nico

solução!

Oi Rodrigo,

demorou e muito mas consegui resolver.

Tinha um pequeno erro no exercício. A tarefa (exec) para criar o novo usuário depende da criação do banco. Ou seja, é preciso instalar o mysql-server e depois criar o banco para poder criar um novo usuário. No exercício original (que eu já corrigi) a tarefa dependia apenas da instalação do banco, ok?

Segue o meu web.pp completo (a última linha importa):

exec { "apt-update":
  command => "/usr/bin/apt-get update"
}

package { ["openjdk-7-jre", "tomcat7","mysql-server"]:
  ensure => installed,
  require => Exec["apt-update"]  
}

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

file { "/var/lib/tomcat7/webapps/vraptor-musicjungle.war":
    source => "/vagrant/manifests/vraptor-musicjungle.war",
    owner => "tomcat7",
    group => "tomcat7",
    mode => 0644,
    require => Package["tomcat7"],
    notify => Service["tomcat7"]
}

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

exec { "musicjungle":
    unless => "mysql -u root musicjungle",
    command => "mysqladmin -uroot create musicjungle",
    path => "/usr/bin",
    require => Service["mysql"]
}

exec { "mysql-password":
    unless  => "mysql -umusicjungle -ppass musicjungle",
    command => "mysql -uroot -e \"GRANT ALL PRIVILEGES ON * TO 'musicjungle'@'%' IDENTIFIED BY 'pass';\" musicjungle",
    path => "/usr/bin",
    require => Exec["musicjungle"]
}

Comigo funcionou bonito :)

Abs

Olá Nico,

Era isso mesmo! Funcionou aqui também!

Valeu pela ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software