Introdução
Common Ground é um site comunitário de demonstração. Os visitantes encontram Linux Evening, abrem os detalhes e leem como se inscrever. A próxima versão muda o evento de Room A para Community Hall. Sua responsabilidade é publicar essa atualização preparada sem perder a versão atual.
Você distinguirá uma versão instalada de uma versão em execução, selecionará a atualização e testará o site real. A aplicação e o utilitário de publicação são fornecidos; não é necessário programar nem configurar o Nginx. Basta conhecer o básico do terminal. Todos os eventos e endereços são fictícios.
| Aba | Finalidade |
|---|---|
| Website | Navegar pelo site comunitário real. |
| Workstation | Usar o espaço de trabalho e o utilitário de publicação preparados. |
| Topology | Entender a relação entre terminal, arquivos e site. |
Cada laboratório começa em seu próprio ambiente preparado. As abas estão prontas para uso.
Conheça o site e prepare a atualização
Nesta etapa, você verificará o funcionamento normal do site e instalará uma nova versão sem mudar o que os visitantes veem. Comece na aba Website.
Conheça a experiência normal
A página inicial apresenta Common Ground e lista Linux Evening em On the horizon. O evento mostra Location: Room A. Role até o fim: o pequeno rodapé indica Release: event-v1. Uma versão, ou release, é um conjunto específico de arquivos do site salvo em determinado estado.

Em Website, clique na linha Linux Evening. A página de detalhes mostra terça-feira às 18h e Room A. Abra Registration instructions; a página explica o processo demonstrativo por e-mail. Não é necessário se inscrever de verdade. Clique no logotipo COMMON GROUND no topo para voltar ao início na mesma aba.
Esses são os caminhos de navegação que você deve preservar. Só a página inicial não representa todo o serviço.
Prepare uma cópia separada
Mude para Workstation. O terminal já está em /home/labex/project/website-release, o espaço de publicação fornecido. ls lista os nomes no diretório atual:
ls
Você verá packages, releases, current e release.sh. Pense em packages como as versões fornecidas que aguardam instalação e em releases como as versões instaladas. current seleciona a versão entregue aos visitantes; você o examinará na próxima etapa.
release.sh é um pequeno utilitário fornecido. bash executa esse script; as palavras após o nome do arquivo escolhem uma ação e, quando necessário, uma versão. Você está usando o utilitário, sem precisar escrever código Bash.
bash release.sh help
Leia a ajuda breve. install copia um pacote para seu próprio diretório; deploy seleciona uma versão para o site; rollback seleciona uma versão já instalada. Nenhuma dessas ações determina se as páginas atendem às necessidades do serviço.
Liste as versões fornecidas:
bash release.sh list
Os nomes são event-v1 e event-v2. Instale a atualização:
bash release.sh install event-v2
Saída esperada:
Installed event-v2. The current website was not changed.
Confirme que os dois diretórios instalados existem. Adicionar releases indica ao ls qual diretório listar:
ls releases
Você deve encontrar event-v1 e event-v2. Instalar uma cópia separada preserva a versão antiga. Isso ainda não publica a atualização.
Volte a Website e recarregue a página. O local continua sendo Room A e o rodapé ainda mostra event-v1. Isso é intencional: a próxima etapa selecionará a atualização.
Selecione e publique a atualização
Nesta etapa, você mudará a versão selecionada do site e manterá a versão de recuperação. Comece em Workstation.
Entenda a seleção
Um link simbólico é uma referência do sistema de arquivos para outro local. Aqui, current aponta para um diretório de versão instalada. O Nginx, servidor web fornecido, lê os arquivos do site por esse link.
readlink mostra o destino de um link simbólico:
readlink current
Saída esperada:
releases/event-v1
Esse caminho relativo representa o diretório event-v1 dentro de releases neste espaço de trabalho. Cada diretório contém páginas HTML, estilos CSS locais, a ilustração local e um pequeno arquivo de versão. Juntos, formam uma versão completa do site.
cat mostra um arquivo. Confirme a identidade da versão de recuperação antes de publicar:
cat releases/event-v1/version.txt
A saída é event-v1. Preserve esse diretório completo. O plano de recuperação consiste em selecioná-lo novamente se a atualização falhar nas verificações; recriá-lo ou apagá-lo prejudicaria esse plano.
Publique a versão instalada
Selecione a atualização:
bash release.sh deploy event-v2
Saída esperada:
Selected event-v2. The server reports:
event-v2
Selection finished. Check the required pages before accepting this release.
O utilitário reutiliza o diretório instalado, troca current usando um link temporário e uma renomeação e faz uma solicitação real da versão. Assim, evita sobrescrever os arquivos antigos. Isso não prova que todas as páginas funcionam nem garante que uma sessão inteira do navegador mude de versão ao mesmo tempo.
Examine a seleção:
readlink current
Agora aparece releases/event-v2.
Mude para Website. Se outra página estiver aberta, clique em COMMON GROUND para voltar ao início e recarregue. Em On the horizon, a sessão agora mostra Location: Community Hall. O rodapé identifica event-v2.

O novo local e o rodapé confirmam a mudança. Você ainda precisa verificar os caminhos importantes de navegação antes de aceitar a versão.
Valide o site e mantenha a recuperação disponível
Você verificará a nova versão como visitante e como cliente HTTP e confirmará que a antiga continua disponível. Comece em Website.
Percorra os caminhos dos usuários
Clique na linha Linux Evening. A barra lateral deve mostrar Community Hall, em vez de Room A. Abra Registration instructions. A página deve mostrar as etapas de participação e events@example.test, não uma tela de página não encontrada.

Volte à página inicial clicando em COMMON GROUND dentro de Website.
Verifique respostas HTTP reais
Mude para Workstation. HTTP é o protocolo de solicitações e respostas usado pelo site. Uma solicitação informa um caminho como /registration.html; o servidor retorna um status e conteúdo. 200 indica sucesso na resposta solicitada. 404 indica que a página solicitada não foi encontrada.
curl envia uma solicitação. -sS oculta o progresso, mas ainda mostra erros de conexão. -o /dev/null descarta o corpo da resposta; /dev/null é o destino de descarte do sistema. -w imprime o formato seguinte. As aspas simples mantêm o formato agrupado, %{http_code} seleciona o status e \n encerra a linha de saída.
127.0.0.1 representa este ambiente; a porta 8081 é o ponto de acesso do site preparado. Use esse endereço em Workstation, não no terminal do seu computador. A / final solicita a página inicial.
Verifique a página inicial:
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/
O resultado é 200.
Verifique separadamente os caminhos dos detalhes e da inscrição:
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/events/linux-evening.html
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/registration.html
Ambos devem retornar 200. Verificar o conteúdo em Website também importa: uma resposta 200 com a página errada não é sucesso.
Você também pode solicitar a pequena resposta de versão sem descartar seu corpo:
curl -sS http://127.0.0.1:8081/version.txt
Ela mostra event-v2. É uma evidência útil, mas uma identificação de versão não substitui as verificações de páginas e links.
Preserve a opção de recuperação
A versão original deve permanecer intacta:
cat releases/event-v1/version.txt
A saída continua sendo event-v1. Preserve também as páginas, os estilos e a ilustração; alterar apenas uma identificação de versão não preserva um site.
Mude para Topology. Homepage reachable significa apenas que a página inicial responde. Não é um parecer de aceitação de toda a versão. Você verificou os caminhos de forma independente e manteve uma versão completa de recuperação.
Resumo
Você instalou uma versão separada, selecionou-a sem sobrescrever os arquivos antigos e validou páginas e links reais. Também manteve uma versão completa, de funcionamento conhecido, para recuperação. No próximo laboratório, usará essa opção quando a página inicial funcionar, mas um caminho importante de navegação falhar.



