# DevOps na Pratica - Cap. 4 - Reconstruindo VM web

**URL:** <https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309>\
**Category:** Livros\
**Tags:** devops\
**Created:** [Setembro 10, 2016, 1:06pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309 "2016-09-10T13:06:22Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 10, 2016, 1:06pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/1 "2016-09-10T13:06:22Z")

</div>

Estou no capitulo 4 e ao destruir as vms web2 e web e mandar reconstruir, a aplicação não esta subindo.

Fui olhar o log no tomcat e esta dando essas msgs de erro:

> ```
> SEVERE: Error waiting for multi-thread deployment of WAR files to complete
> java.lang.InterruptedException
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1000)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:248)
> at java.util.concurrent.FutureTask.get(FutureTask.java:111)
> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:751)
> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:471)
> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1453)
> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:295)
> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1379)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1537)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1547)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1526)
> at java.lang.Thread.run(Thread.java:701)
> 
> ```

> WARNING: Failed to process JAR [jar:file:/var/lib/tomcat7/webapps/devopsnapratica/WEB-INF/lib/guava-r05.jar!/] for TLD files  
> java.util.zip.ZipException: error in opening zip file  
> at java.util.zip.ZipFile.open(Native Method)  
> at java.util.zip.ZipFile.(ZipFile.java:145)  
> at java.util.jar.JarFile.(JarFile.java:153)  
> at java.util.jar.JarFile.(JarFile.java:90)  
> at sun.net.www.protocol.jar.URLJarFile.(URLJarFile.java:90)  
> at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:66)  
> at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:86)  
> at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)  
> at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)  
> at org.apache.tomcat.util.scan.FileUrlJar.(FileUrlJar.java:40)  
> at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)  
> at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:460)  
> at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:58)  
> at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:276)  
> at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)  
> at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:166)  
> at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:250)  
> at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:540)  
> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)  
> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)  
> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)  
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)  
> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)  
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)  
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)  
> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)  
> at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)  
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)  
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)  
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)  
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)  
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
> at java.lang.Thread.run(Thread.java:701)  
> Sep 10, 2016 12:54:17 PM org.apache.catalina.core.StandardContext startInternal  
> SEVERE: Error listenerStart

Sep 10, 2016 12:54:17 PM org.apache.catalina.core.StandardC\> ontext startInternal

> SEVERE: Context [/devopsnapratica] startup failed due to previous errors

Alguém sabe o que pode ser?

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 12, 2016, 12:08pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/2 "2016-09-12T12:08:16Z")

</div>

Oi Alberto,

Pela mensagem de erro, parece que o pacote war está com uma biblioteca corrompida (guava-r06.jar)

Isso pode acontecer por problemas de conectividade na hora de criar o pacote ou as vezes por falta de espaço em disco. Eu sugiro você limpar a aplicação do tomcat (logar na vm e remover o diretório `/var/lib/tomcat7/webapps/devopsnapratica`), gerar o `war` novamente e reprovisionar.

Nesse capítulo 4 a gente reusa o artefato `devopsnapratica.war` construido no capítulo 2 na vm web. Se você já destruiu, vai precisar refazer os passos do capítulo 2 e retomar da parte no capítulo 4 onde copiamos o war para a sua máquina host:

```auto
$ vagrant ssh web -- 'sudo cp \
> /var/lib/tomcat7/webapps/devopsnapratica.war \
> /vagrant/manifests/'

```

Abraços,  
Danilo

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 12, 2016, 7:08pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/3 "2016-09-12T19:08:40Z")

</div>

Danilo,

Fiz o processo todo novamente e agora esta dando outro erro ao subir a aplicacao…

subir todo o log do tomcat para o pastebin.

[http://pastebin.com/AKUAZ4Gv](http://pastebin.com/AKUAZ4Gv)

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 12, 2016, 7:30pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/4 "2016-09-12T19:30:30Z")

</div>

Oi Alberto,

Agora parece ser mais um problema de configuração da conexão com o banco de dados. A VM `db` ainda está rodando? Se sim, pode mandar o conteúdo do arquivo `/var/lib/tomcat7/conf/context.xml` pra ver como está a configuração da conexão? Outra opção para verificar conexão é faze ssh na VM web e tentar dar um ping:

```auto
$ ping 192.168.33.10

```

Abraços,  
Danilo

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 12, 2016, 8:16pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/5 "2016-09-12T20:16:37Z")

</div>

A VM db esta rodando sim…

conteudo do context.xml:

\<?xml version='1.0' encoding='utf-8'?\>

```
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

<!-- Uncomment this to enable Comet connection tacking (provides events
     on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->

```

O pingo funcionou normal…

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 13, 2016, 11:58am UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/6 "2016-09-13T11:58:59Z")

</div>

Quer que coloque o web.pp?

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 13, 2016, 4:46pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/7 "2016-09-13T16:46:09Z")

</div>

Esse é o conteúdo do arquivo dentro da VM ou no template do puppet? Se for dentro da VM, o template não processou. Se for fora, pode mandar o conteúdo do arquivo dentro da VM depois de rodar o `vagrant provision web`?

Abs  
Danilo

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 13, 2016, 5:19pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/8 "2016-09-13T17:19:46Z")

</div>

O que enviei antes, era o de fora…

Segue o de dentro da VM após rodar o provision.

\<?xml version='1.0' encoding='utf-8'?\>

```
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->

<!-- Uncomment this to enable Comet connection tacking (provides events
     on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->

```

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 13, 2016, 11:05pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/9 "2016-09-13T23:05:03Z")

</div>

Oi Alberto,

Parece ok. O erro “no route to host” indica problema de rede/conectividade. O ping você tentou de dentro ou fora da VM? Tenta de dentro, pois é onde a aplicação tenta abrir a conexão com o banco de dados. Outro jeito de testar conectividade é tentando fazer telnet pra porta específica do MySQL (de dentro da VM `web` também):

```auto
$ telnet 192.168.33.10 3306

```

Se o ping e telnet funcionar, tentar fazer um redeploy, pois pode ter sido um problema temporário de conexão (ou tentou subir a VM web antes da VM db estar disponível).

Danilo

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 13, 2016, 11:08pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/10 "2016-09-13T23:08:02Z")

</div>

O ping foi de dentro da VM.  
Vou testar o telnet, e depois o redeploy da aplicação…

---

<div class="post-metadata">

**Author:** ![lmbleandro](https://avatars.discourse-cdn.com/v4/letter/l/b19c9b/32.png) [@lmbleandro](https://forum.casadocodigo.com.br/u/lmbleandro)\
**Post date:** [Setembro 14, 2016, 1:49am UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/11 "2016-09-14T01:49:50Z")

</div>

> [@albertopida](#):
>
> loja

Ola, alberto.  
Uma boa seria verificar a existencia desta linha na conf do mysql

\*\*root@db:/home/vagrant# cat /etc/mysql/conf.d/allow\_external.cnf \*\*  
**[mysqld]**  
**bind-address = 0.0.0.0**

Abçs

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 14, 2016, 1:38pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/12 "2016-09-14T13:38:57Z")

</div>

Obrigado pela ajuda Leandro, verifiquei aqui e o arquivo ja esta assim…

Agora o problema é de Access denied for user…

[http://pastebin.com/kH3Mfc9e](http://pastebin.com/kH3Mfc9e)

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 14, 2016, 3:34pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/13 "2016-09-14T15:34:55Z")

</div>

Parece que o servidor db não está configurado corretamente. Não criou o banco/usuário para nossa aplicação.

No início do capítulo, criamos o manifesto para provisionar o servidor db. Sugiro rever e reprovisionar o servidor db antes de tentar usá-lo no servidor web. A configuração para abrir conectividade que o Leandro sugeriu é um dos passos no processo de provisionamento do servidor db.

Se o manifesto `db.pp` estiver ok, pode ser simplesmente rodar `vagrant provision db`.

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 14, 2016, 5:04pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/14 "2016-09-14T17:04:36Z")

</div>

Estranho, revisei todo o manifesto db e web e esta igual ao do livro.  
Olhei na VM db:

vagrant@db:~$ mysql -u loja -p loja\_schema -e "select database(), user()"  
Enter password:  
±------------±---------------+  
| database() | user() |  
±------------±---------------+  
| loja\_schema | loja@localhost |  
±------------±---------------+

Na VM web, o ping funciona e o telnet tambem.  
Uma duvida, quando o puppet instala o mysql, qual senha ele coloca para o root?

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 15, 2016, 2:51pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/15 "2016-09-15T14:51:31Z")

</div>

Oi Alberto,

De acordo com a documentação do módulo no forge, se você não especifica a criação do usuário root e a senha, ele não é criado:

[https://forge.puppet.com/puppetlabs/mysql#root\_password](https://forge.puppet.com/puppetlabs/mysql#root_password)

Abs,  
Danilo

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 15, 2016, 3:47pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/16 "2016-09-15T15:47:36Z")

</div>

Entedi.  
Mais uma pergunta, para eu rodar o projeto que esta no seu github loja-virtual-devops-puppet o que preciso fazer?  
Fiz o clone e deu um vagrant up db e deu erro…

---

<div class="post-metadata">

**Author:** ![dtsato](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/dtsato/32/5031_2.png) [@dtsato](https://forum.casadocodigo.com.br/u/dtsato)\
**Post date:** [Setembro 15, 2016, 4:52pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/17 "2016-09-15T16:52:15Z")

</div>

Qual erro? O repositório contém a versão final do projeto, então tem coisas que você vai aprender nos capítulos mais pra frente. Provavelmente deve ser alguns plugins e comandos que você precisa rodar pra subir o projeto completo.

---

<div class="post-metadata">

**Author:** ![lmbleandro](https://avatars.discourse-cdn.com/v4/letter/l/b19c9b/32.png) [@lmbleandro](https://forum.casadocodigo.com.br/u/lmbleandro)\
**Post date:** [Setembro 15, 2016, 11:43pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/18 "2016-09-15T23:43:58Z")

</div>

Boa noite Alberto,  
Vc poderia me enviar seu arquivo db.pp e web.pp pra eu poder comparar ?

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 16, 2016, 4:32pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/19 "2016-09-16T16:32:58Z")

</div>

Leandro, segue abaixo os dois arquivos…

**db.pp**

exec { “apt-update”:  
command =\> “/usr/bin/apt-get update”  
}

package { “mysql-server”:  
ensure =\> installed,  
require =\> Exec[“apt-update”],  
}

package { “vim”:  
ensure =\> installed,  
require =\> Exec[“apt-update”],  
}

file { “/etc/mysql/conf.d/allow\_external.cnf”:  
owner =\> mysql,  
group =\> mysql,  
mode =\> 0644,  
content =\> template("/vagrant/manifests/allow\_ext.cnf"),  
require =\> Package[“mysql-server”],  
notify =\> Service[“mysql”],  
}

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

exec { “loja-schema”:  
unless =\> “mysql -uroot loja\_schema”,  
command =\> “mysqladmin -uroot create loja\_schema”,  
path =\> “/usr/bin/”,  
require =\> Service[“mysql”],  
}

exec { “remove-anonymous-user”:  
command =\> “mysql -uroot -e “DELETE FROM mysql.user WHERE user=’’; FLUSH PRIVILEGES””,  
onlyif =\> “mysql -u’ ’”,  
path =\> “/usr/bin”,  
require =\> Service[“mysql”],  
}

exec { “loja-user”:  
unless =\> “mysql -uloja -plojasecret loja\_schema”,  
command =\> “mysql -uroot -e “GRANT ALL PRIVILEGES ON loja\_schema.\* TO ‘loja’@’%’ IDENTIFIED BY ‘lojasecret’;””,  
path =\> “/usr/bin/”,  
require =\> Exec[“loja-schema”],  
}

**web.pp**

exec { “apt-update”:  
command =\> “/usr/bin/apt-get update”  
}

package { [“mysql-client”, “tomcat7”, “vim”]:  
ensure =\> installed,  
require =\> Exec[“apt-update”],  
}

file { “/var/lib/tomcat7/conf/.keystore”:  
owner =\> root,  
group =\> tomcat7,  
mode =\> 0640,  
source =\> “/vagrant/manifests/.keystore”,  
require =\> Package[“tomcat7”],  
notify =\> Service[“tomcat7”],  
}

file { “/var/lib/tomcat7/conf/server.xml”:  
owner =\> root,  
group =\> tomcat7,  
mode =\> 0644,  
source =\> “/vagrant/manifests/server.xml”,  
require =\> Package[“tomcat7”],  
notify =\> Service[“tomcat7”],  
}

file { “/etc/default/tomcat7”:  
owner =\> root,  
group =\> root,  
mode =\> 0644,  
source =\> “/vagrant/manifests/tomcat7”,  
require =\> Package[“tomcat7”],  
notify =\> Service[“tomcat7”],  
}

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

$db\_host = “192.168.33.10”  
$db\_schema = “loja\_schema”  
$db\_user = “loja”  
$db\_password = “lojasecret”

file { “/var/lib/tomcat7/conf/context.xml”:  
owner =\> root,  
group =\> tomcat7,  
mode =\> 0644,  
content =\> template("/vagrant/manifests/context.xml"),  
require =\> Package[“tomcat7”],  
notify =\> Service[“tomcat7”],  
}

file { “/var/lib/tomcat7/webapps/devopsnapratica.war”:  
owner =\> tomcat7,  
group =\> tomcat7,  
mode =\> 0644,  
source =\> “/vagrant/manifests/devopsnapratica.war”,  
require =\> Package[“tomcat7”],  
notify =\> Service[“tomcat7”],  
}

---

<div class="post-metadata">

**Author:** ![albertopida](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@albertopida](https://forum.casadocodigo.com.br/u/albertopida)\
**Post date:** [Setembro 18, 2016, 2:03pm UTC](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309/20 "2016-09-18T14:03:03Z")

</div>

Se alguém puder colocar os arquivos db.pp e web.pp para eu comparar aqui eu agradeceria muito.

Já reli e refiz esses arquivos várias vezes e não sei onde esta o erro.  
há 2 semanas que estou parado nesse capitulo… ;/

[Próxima página](https://forum.casadocodigo.com.br/t/devops-na-pratica-cap-4-reconstruindo-vm-web/309.md?page=2)
