Toda vez que o script de provisionamento, da Aula 04 - Atividade 03 do curso de Vagrant/Puppet, é executado no Puppet, é adicionada a linha da variável de ambiente no arquivo /etc/default/tomcat7.
O resultado após 2 execuções seguidas está abaixo, e pode ser visualizado com o comando tail -n 3 /etc/default/tomcat7
#AUTHBIND=no
JAVA_OPTS="$JAVA_OPTS -Dbr.com.caelum.vraptor.environment=production"
JAVA_OPTS="$JAVA_OPTS -Dbr.com.caelum.vraptor.environment=production"
A mesma dúvida foi questionada anteriormente, mas acredito que tenha sido respondido algo que não está relacionado a pergunta, seguindo a tradução dessa resposta no Stack Overflow
Dúvida anterior no fórum da Alura
Segue abaixo o arquivo utilizado para o Puppet (web.pp)
exec { 'apt-update':
command => '/usr/bin/apt-get update'
}
package { ['openjdk-7-jre', 'tomcat7', 'mysql-server']:
ensure => installed,
require => Exec['apt-update'] # Executa após o comando
}
service { 'tomcat7':
ensure => running, # Garante um estado ao final da execução
enable => true, # Garante que estará habilitado
hasstatus => true, # Tem a consulta de estado
hasrestart => true, # Tem a opção 'restart' 'stop'
require => Package['tomcat7'] # Executa após o package
}
service { 'mysql':
enable => true,
ensure => running,
hasrestart => true,
hasstatus => true,
require => Package['mysql-server']
}
exec { 'musicjungle':
command => 'mysqladmin -u root create musicjungle',
path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin',
unless => 'mysql -u root musicjungle',
require => Service['mysql']
}
exec { 'musicjungle-senha':
command => "mysql -uroot -e \"GRANT ALL PRIVILEGES ON * TO 'musicjungle'@'%' IDENTIFIED BY 'minha-senha';\" musicjungle",
path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin',
unless => 'mysql -umusicjungle -pminha-senha musicjungle',
require => Exec['musicjungle']
}
file { '/var/lib/tomcat7/webapps/vraptor-musicjungle.war': # destino do arquivo
source => '/vagrant/manifests/vraptor-musicjungle.war', # de onde vai copiar o arquivo
owner => 'tomcat7', # define dono do arquivo
group => 'tomcat7', # define grupo proprietário
mode => '0644', # Leitura geral, escrita e leitura para o dono
require => Package['tomcat7'], # Executa após o pacote ter sido instalado
notify => Service['tomcat7'] # Notifica o serviço para atualizar caso tenha sido modificado o recurso
}
file_line { "production":
file => "/etc/default/tomcat7",
line => "JAVA_OPTS=\"\$JAVA_OPTS -Dbr.com.caelum.vraptor.environment=production\"",
require => Package["tomcat7"],
notify => Service["tomcat7"]
}
define file_line($file, $line) {
exec { "/bin/echo '$line' >> '$file'":
unless => "/bin/grep -qfx '$(line) '$(file)'"
}
}
# file_line { 'production':
# path => '/etc/default/tomcat7',
# line => 'JAVA_OPTS=\"\${JAVA_OPTS} -Dbr.com.caelum.vraptor.environment=production\"'
# }