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.
}