Migração da configuração do Dispatcher do AMS para o AEM como um Cloud Service

Principais diferenças entre o AMS Dispatcher e o AEM como Cloud Service

A configuração do Apache e Dispatcher no AEM como um Cloud Service é bastante semelhante à do AMS. As principais diferenças são:

  • No AEM como um Cloud Service, algumas diretivas Apache podem não ser usadas (por exemplo Listen ou LogLevel)
  • No AEM como um Cloud Service, somente algumas partes da configuração do Dispatcher podem ser colocadas em arquivos de inclusão e sua nomenclatura é importante. Por exemplo, as regras de filtro que você deseja reutilizar em hosts diferentes devem ser colocadas em um arquivo chamado filters/filters.any. Consulte a página de referência para obter mais informações.
  • No AEM como um Cloud Service, há validação extra para não permitir regras de filtro gravadas usando /glob para evitar problemas de segurança. Como deny * será usado em vez de allow * (que não pode ser usado), os clientes se beneficiarão de executar o Dispatcher localmente e de fazer tentativa e erro, observando os logs para saber exatamente quais caminhos os filtros do Dispatcher estão bloqueando para que eles possam ser adicionados.

Diretrizes para migrar a configuração do dispatcher do AMS para o AEM como um Cloud Service

A estrutura de configuração do Dispatcher tem diferenças entre o Managed Services e o AEM como Cloud Service. Apresentado abaixo, é um guia passo a passo sobre como migrar da configuração do AMS Dispatcher versão 2 para o AEM como Cloud Service.

Como converter um AMS em uma configuração de Dispatcher do AEM as a Cloud Service

A seção a seguir fornece instruções passo a passo sobre como converter uma configuração do AMS. Ele parte do princípio
que você tem um arquivo com uma estrutura semelhante à descrita em Configuração do Dispatcher do Cloud Manager

Extrair o arquivo morto e remover um eventual prefixo

Extraia o arquivo morto para uma pasta e verifique se as subpastas imediatas começam com conf, conf.d,
conf.dispatcher.d e conf.modules.d. Caso contrário, mova-os para cima na hierarquia.

Livrar-se de subpastas e arquivos não utilizados

Remova as subpastas conf e conf.modules.d, bem como os arquivos correspondentes a conf.d/*.conf.

Livrar-se de todos os hosts virtuais que não sejam de publicação

Remova qualquer arquivo de host virtual em conf.d/enabled_vhosts que tenha author, unhealthy, health,
lc ou flush em seu nome. Todos os arquivos de host virtual em conf.d/available_vhosts que não estejam
vinculada ao também pode ser removida.

Remova ou comente seções de host virtual que não se refiram à porta 80

Se você ainda tiver seções nos arquivos de host virtual que se referem exclusivamente a outras portas além da porta 80, por exemplo:

<VirtualHost *:443>
...
</VirtualHost>

remova-as ou comente-as. As instruções nessas seções não serão processadas, mas, se você as mantiver por perto, ainda poderá editá-las sem efeito, o que é confuso.

Verificar regravações

Entre no diretório conf.d/rewrites.

Remova qualquer arquivo chamado base_rewrite.rules e xforwarded_forcessl_rewrite.rules e lembre-se de
remova as instruções Include nos arquivos de host virtual que fazem referência a elas.

Se conf.d/rewrites agora contiver um único arquivo, ele deverá ser renomeado para rewrite.rules e não
esqueça de adaptar também as instruções Include referentes a esse arquivo nos arquivos de host virtual.

Se, no entanto, a pasta contiver vários arquivos específicos de host virtual, seu conteúdo deverá ser
copiada para a instrução Include referenciando-a nos arquivos de host virtual.

Verificar variáveis

Entre no diretório conf.d/variables.

Remova qualquer arquivo chamado ams_default.vars e lembre-se de remover as instruções Include no virtual
os arquivos host que fazem referência a eles.

Se conf.d/variables agora contiver um único arquivo, ele deverá ser renomeado para custom.vars e não
esqueça de adaptar também as instruções Include referentes a esse arquivo nos arquivos de host virtual.

Se, no entanto, a pasta contiver vários arquivos específicos de host virtual, seu conteúdo deverá ser
copiada para a instrução Include referenciando-a nos arquivos de host virtual.

Remover listas de permissões

Remova a pasta conf.d/whitelists e remova as instruções Include nos arquivos de host virtual referentes a
algum arquivo nessa subpasta.

Substituir qualquer variável que não esteja mais disponível

Em todos os arquivos de host virtual:

Renomeie PUBLISH_DOCROOT para DOCROOT
Remova as seções que fazem referência às variáveis chamadas DISP_ID, PUBLISH_FORCE_SSL ou PUBLISH_WHITELIST_ENABLED

Verificar o estado executando o validador

Execute o validador do Dispatcher no seu diretório, com o subcomando httpd:

$ validator httpd .

Se você encontrar erros sobre a falta de arquivos de inclusão, verifique se os renomeou corretamente.

Se você vir diretivas Apache que não estão incluir na lista de permissões, remova-as.

Livrar-se de todos os farms não publicados

Remova qualquer arquivo do farm em conf.dispatcher.d/enabled_farms que tenha author, unhealthy, health,
lc ou flush em seu nome. Todos os arquivos farm em conf.dispatcher.d/available_farms que não estão
vinculada ao também pode ser removida.

Renomear arquivos de farm

Todos os farms em conf.d/enabled_farms devem ser renomeados para corresponder ao padrão *.farm, portanto, por exemplo, um
O arquivo do farm chamado customerX_farm.any deve ser renomeado para customerX.farm.

Verificar cache

Entre no diretório conf.dispatcher.d/cache.

Remova qualquer arquivo prefixado com ams_.

Se conf.dispatcher.d/cache agora estiver vazio, copie o arquivo conf.dispatcher.d/cache/rules.any
da configuração padrão do Dispatcher para essa pasta. O Dispatcher padrão
a configuração pode ser encontrada na pasta src deste SDK. Não se esqueça de adaptar a
$include instruções referentes aos arquivos de regra ams_*_cache.any nos arquivos do farm
também.

Se, em vez disso, conf.dispatcher.d/cache agora contiver um único arquivo com o sufixo _cache.any,
ele deve ser renomeado para rules.any e não se esqueça de adaptar as instruções $include
fazer referência a esse arquivo também nos arquivos do farm.

Se, no entanto, a pasta contiver vários arquivos específicos do farm com esse padrão, seu conteúdo
deve ser copiado para a instrução $include que faz referência a eles nos arquivos do farm.

Remova qualquer arquivo que tenha o sufixo _invalidate_allowed.any.

Copie o arquivo conf.dispatcher.d/cache/default_invalidate_any do padrão
AEM na configuração do Cloud Dispatcher para esse local.

Em cada arquivo do farm, remova qualquer conteúdo da seção cache/allowedClients e substitua-o
com:

$include "../cache/default_invalidate.any"

Verificar cabeçalhos do cliente

Entre no diretório conf.dispatcher.d/clientheaders.

Remova qualquer arquivo prefixado com ams_.

Se conf.dispatcher.d/clientheaders agora contiver um único arquivo com o sufixo _clientheaders.any,
ele deve ser renomeado para clientheaders.any e não se esqueça de adaptar as instruções $include
fazer referência a esse arquivo também nos arquivos do farm.

Se, no entanto, a pasta contiver vários arquivos específicos do farm com esse padrão, seu conteúdo
deve ser copiado para a instrução $include que faz referência a eles nos arquivos do farm.

Copie o arquivo conf.dispatcher/clientheaders/default_clientheaders.any do padrão
AEM como uma configuração do Dispatcher do Cloud Service para esse local.

Em cada arquivo do farm, substitua qualquer instrução include de clientheader com a seguinte aparência:

$include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any"
$include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any"

pela instrução:

$include "../clientheaders/default_clientheaders.any"

Verificar filtro

Entre no diretório conf.dispatcher.d/filters.

Remova qualquer arquivo prefixado com ams_.

Se conf.dispatcher.d/filters agora contiver um único arquivo, ele deverá ser renomeado para
filters.any e não se esqueça de adaptar as instruções $include referentes a isso
nos arquivos farm também.

Se, no entanto, a pasta contiver vários arquivos específicos do farm com esse padrão, seu conteúdo
deve ser copiado para a instrução $include que faz referência a eles nos arquivos do farm.

Copie o arquivo conf.dispatcher/filters/default_filters.any do padrão
AEM como uma configuração do Dispatcher do Cloud Service para esse local.

Em cada arquivo do farm, substitua qualquer instrução include de filtro com a seguinte aparência:

$include "/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any"

pela instrução:

$include "../filters/default_filters.any"

Verificar renderizadores

Entre no diretório conf.dispatcher.d/renders.

Remova todos os arquivos nessa pasta.

Copie o arquivo conf.dispatcher.d/renders/default_renders.any do padrão
AEM como uma configuração do Dispatcher do Cloud Service para esse local.

Em cada arquivo do farm, remova qualquer conteúdo da seção renders e substitua-o
com:

$include "../renders/default_renders.any"

Verifique virtualhosts

Renomeie o diretório conf.dispatcher.d/vhosts para conf.dispatcher.d/virtualhosts e entre nele.

Remova qualquer arquivo prefixado com ams_.

Se conf.dispatcher.d/virtualhosts agora contiver um único arquivo, ele deverá ser renomeado para
virtualhosts.any e não se esqueça de adaptar as instruções $include referentes a isso
nos arquivos farm também.

Se, no entanto, a pasta contiver vários arquivos específicos do farm com esse padrão, seu conteúdo
deve ser copiado para a instrução $include que faz referência a eles nos arquivos do farm.

Copie o arquivo conf.dispatcher/virtualhosts/default_virtualhosts.any do padrão
AEM como uma configuração do Dispatcher do Cloud Service para esse local.

Em cada arquivo do farm, substitua qualquer instrução include de filtro com a seguinte aparência:

$include "/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any"

pela instrução:

$include "../virtualhosts/default_virtualhosts.any"

Verificar o estado executando o validador

Execute o AEM como um Cloud Service Dispatcher validator no seu diretório, com o subcomando dispatcher:

$ validator dispatcher .

Se você encontrar erros sobre a falta de arquivos de inclusão, verifique se os renomeou corretamente.

Se você vir erros relacionados à variável indefinida PUBLISH_DOCROOT, renomeie-a para DOCROOT.

Para todos os outros erros, consulte a seção de solução de problemas da documentação da ferramenta de validação.

Teste sua configuração com uma implantação local (requer a instalação do Docker)

Usando o script docker_run.sh no AEM como um Cloud Service Dispatcher Tools, você pode testar se
sua configuração não contém nenhum outro erro que apareceria apenas em
implantação:

Etapa 1: Gerar informações de implantação com o validador

validator full -d out .

Isso valida a configuração completa e gera informações de implantação em out

Etapa 2: Inicie o Dispatcher em uma imagem do docker com essas informações de implantação

Com o servidor de publicação de AEM em execução no computador macOS, ouvindo na porta 4503,
você pode executar o Dispatcher na frente desse servidor da seguinte maneira:

$ docker_run.sh out docker.for.mac.localhost:4503 8080

Isso iniciará o contêiner e exporá o Apache na porta local 8080.

Usar sua nova configuração do Dispatcher

Parabéns! Se o validador não relatar mais nenhum problema e a variável
o contêiner do docker é iniciado sem falhas ou avisos, você é
pronto para mover sua configuração para um subdiretório dispatcher/src
do seu repositório Git.

Os clientes que estiverem usando a configuração do AMS Dispatcher versão 1 devem entrar em contato com o suporte ao cliente para ajudá-los a migrar da versão 1 para a versão 2, de modo que as instruções acima possam ser seguidas.

Nesta página