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

Erro: não encontra o serviço tomcat7

Oi pessoal. Comecei o curso a pouco.

Estou seguindo a aula 2 e me deparei com o seguinte erro ao tentar fazer o deploy da aplicação:

Could not find dependent Service[tomcat7] for File[/var/lib/tomcat7/webapps/vraptor-musicjungle.war] at /vagrant/manifests/web.pp:40

Segue meu código do arquivo web.pp (está todo comentado porque é assim que gosto de estudar ;)):

# Esse arquivo serve para definir alguns comandos a ser executados de uma vez
# dentro da máquina virtual criada para que não seja necessário executá-los
# um de cada vez. Apesar de criar esse arquivo dentro da máquina host, o
# vagrant cria um diretório espelho na máquina virtual contendo uma cópia dele.
# Isso se faz necessário porque o arquivo deve ser executado dentro da VM com o
# seguinte comando: sudo puppet apply /vagrant/manifests/web.app

# Comando para a atualização do sistema. Defino um 'nome' para o comando.
exec {"Operational System Update":
  # Defino o comando em si, passando seu caminho completo.
  command => "/usr/bin/apt-get update -y"
}

# Comando para instalação de software(package). Defino quais pacotes desejo instalar.
package {["openjdk-7-jre", "tomcat7"]:
  # Defino que quero ter certeza de que o pacote foi instalado.
  ensure => installed,
  # Defino que antes de instalar os pacotes, é preciso rodar o comando de atualização
  # do sistema operacional.
  require => Exec["Operational System Update"]
}

# Comando que verifica se um serviço existe e se está sendo executado.
service {"tomcat 7": # Serviço que precisa ser verificado.
  ensure => running, # Verifica se está em execução.
  enable => true, # Verifica que está habilitado.
  hasstatus => true, # Obtém o status.
  hasrestart => true, # Verifica que ele tem a opção de restart.
  require => Package["tomcat7"] # Verifica, antes de tudo, se o pacote foi instalado.
}

# Comando que faz o deploy de uma aplicação.
file {"/var/lib/tomcat7/webapps/vraptor-musicjungle.war": # Define o caminho, na VM, onde os arquivos da aplicação serão copiados.
  source => "/vagrant/manifests/vraptor-musicjungle.war", # Define o caminho, na VM, de onde os arquivos da aplicação serão copiados."
  owner => "tomcat7", # Define, na VM, o usuário dono do arquivo.
  group => "tomcat7", # Define, na VM, o grupo dono do arquivo.
  mode => 0644, # Define, na VM, as permissões do arquivo.
  require => Package["tomcat7"], # Antes de tudo, verifica se o pacote está instalado.
  notify => Service["tomcat7"] # Notifica o serviço para que seja feito um restart.
}
2 respostas
solução!

Já resolvi pessoal.

Depois de levantar da cadeira, tomar uma água e retornar pra reler com calma o código, descobri meu erro. Quando defini o 'nome' do Service, na linha 24, eu separei tomcat 7. Depois de corrigir para tomcat7 (ou se tivesse escrito tomcat 7 lá na linha 39) deu certo!!

Eu também estou com problema mas não é para o Service e sim para o Package. "Could not find dependency Package[tomcat7] for File[/var/lib/tomcat7/webapps/vraptor-musicjungle.war] at /vagrant/manifests/deploy.pp:17"


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"]
}