Copie o NCC_Onprem_12_4_Installer.zip para o diretório inicial de todos os nós.
Por exemplo, scp NCC_Onprem_12_4_Installer.zip -i ssh_key.pem my-user@webrtc.corp.example.com:/home/my-user/
Introdução
O Adobe Connect usa a estrutura WebRTC mais recente para fornecer recursos de áudio e vídeo aprimorados. Essa configuração de áudio e vídeo aprimorados geralmente é executada em vários nós do Linux® com funções específicas. Há nós de sinalização, nós de mídia e nós de gravação. Esta configuração também usa bancos de dados PostgreSQL e Redis que podem ser instalados em uma ou em máquinas separadas, dependendo do uso.
A configuração de cada nó é feita copiando o arquivo zip do instalador para ele, editando os arquivos de configuração, executando o script de instalação de dependência e, finalmente, o script de instalação principal. Abaixo estão os tópicos abordados:
- Preparar o ambiente
- Atualização de um sistema com 12.0, 12.1, 12.1.5
- Configurar o áudio e vídeo aprimorados no Adobe Connect Service (CPS)
Essas etapas são descritas na seção Instalação.
Pré-requisito e requisitos do sistema
Estimar o tamanho dos servidores/nós de áudio/vídeo aprimorados
O arquivo session_participants_count.sql pode ser executado para estimar o tamanho dos servidores de áudio/vídeo aprimorados. A saída das consultas SQL serão as entradas para a calculadora, que é um arquivo Excel, Additional Enhanced A/V hardware estimator.xlsx.
A calculadora ajuda a estimar o número de VMs necessárias com base em seu uso anterior do Adobe Connect. A calculadora precisa do seguinte conjunto de entradas.
- O número de núcleos da CPU do servidor e RAM.
As consultas SQL anexadas são usadas para determinar o número máximo de sessões simultâneas realizadas nos últimos 12 meses e o número médio de participantes.
O número estimado de editores em cada sessão. Um editor é um participante da reunião (host, apresentador ou participante) que conecta seu microfone na sala de reuniões (com mudo ativado ou desativado) e sua webcam na sala de reuniões (ao vivo e pausada).
Ambos os arquivos session_participants_count.sql e Additional Enhanced A/V hardware estimator.xlsx estão incluídos no pacote do instalador e não estão disponíveis em outro lugar.
Estimar requisitos de FQDN e certificado SSL
FQDN:
Um registro DNS público para o Balanceador de Carga de Aplicativo externo, por exemplo, webrtc.example.com
Um registro DNS público para cada servidor de mídia, por exemplo, media-1.example.com
CERTIFICADOS SSL:
Um certificado SSL para LB FQDN
A configuração TURNS é recomendada para servidores de mídia, portanto, um certificado para cada servidor de mídia.
Entenda a arquitetura de rede
Requisitos de abertura de porta
Origem | Destino | Porta | Protocolo | Usar |
---|---|---|---|---|
Nó de sinalização | Redis | 6379 | TCP | |
Postgres | 5432 | TCP | ||
Nó de gravação | 5000-5100 | TCP | ||
Nó de ASR | 6000-6100 | TCP | ||
SIP ou nó de servidor de mídia |
5060 | UDP | Para sinalização SIP |
|
Nó de SIP ou servidor de mídia |
5060 | TCP | ||
Servidor CPS | 80 | TCP | Para configurações de POC ou demonstração sendo executadas sem SSL |
|
Servidor CPS/LB | 443 | TCP | ||
Nó de gravação | Nó de servidor de mídia (*) |
443 | TCP | TURNS |
3478 | UDP | STUN/TURN | ||
3478 | TCP | STUN/TURN | ||
30000 - 65535 | UDP | SRTP (fluxo de mídia em tempo real) | ||
Servidor CPS | 80 | TCP | Para configurações de POC ou demonstração sendo executadas sem SSL |
|
Servidor CPS/LB | 443 | TCP | ||
Redis | 6379 | TCP | ||
Nó de sinalização | 8090 | TCP |
||
Nó de sinalização |
18443 | TCP | Para configurações de POC ou demonstração sendo executadas sem LB |
|
Balanceador de Carga WebRTC (**) | 443 | TCP |
||
Nó do servidor de mídia | Redis | 6379 | TCP |
|
Postgres | 5432 | TCP |
||
stun.I.google.com | 19302 | UDP | Para descobrir o IP público. Verificando o tipo de NAT. |
|
stun1.I.google.com |
19302 | UDP | Para descobrir o IP público. Verificando o tipo de NAT. |
|
Nó de sinalização | 18443 | TCP | Para configurações de POC ou demonstração sendo executadas sem LB |
|
Nó do servidor de mídia | 8445 | TCP | Para executar o clustering no caso de várias mídias |
|
Balanceador de Carga WebRTC (**) | 443 | TCP |
Para registro no WebRTC Gateway |
|
Servidor CPS | Balanceador de Carga WebRTC |
443 | TCP | |
Nó de gravação | 80 | TCP |
Baixando arquivos de gravação | |
Nó de sinalização | 18443 | TCP | Para configurações de POC ou demonstração sendo executadas sem LB |
|
Usuários/Cliente/Internet | Nó do servidor de mídia (*) |
443 | TCP |
TURNS (Áudio-Vídeo sobre TLS) |
3478 | UDP | STUN/TURN |
||
3478 | TCP | STUN/TURN |
||
30000 - 65535 | UDP | SRTP (fluxo de mídia em tempo real) |
||
Servidor CPS | 80 | TCP |
Para configurações de POC ou demonstração sendo executadas sem SSL |
|
Servidor CPS/LB | 443 | TCP | ||
Nó de sinalização | 18443 | TCP | Para configurações de POC ou demonstração sendo executadas sem LB |
|
Balanceador de Carga WebRTC |
443 | TCP |
||
Nó do SIP | Redis | 6379 | TCP |
Na maioria dos casos, o serviço SIP é executado no nó do servidor de mídia |
Postgres | 5432 | TCP |
||
Balanceador de Carga WebRTC |
443 | TCP |
||
Nó de sinalização | 18443 | TCP | Para configurações de POC ou demonstração sendo executadas sem LB |
|
Legenda automática/Nó de ASR | Redis | 6379 | TCP | |
Nó de sinalização | 8080 | TCP | Para conexão de mídia |
|
Nó do servidor de mídia (*) | 3000-65535 | UDP | SRTP (fluxo de mídia em tempo real) |
|
443 | TCP |
TURNS | ||
3478 | UDP | STUN/TURN | ||
3478 | STUN/TURN | |||
Nó de sinalização | 8090 | TCP |
||
Servidor CPS | 80 | TCP |
Para configurações de POC ou demonstração sendo executadas sem SSL |
|
Servidor CPS/LB | 443 | TCP |
* Na maioria dos casos, os servidores de mídia têm um endereço IP público, mas em ambientes restritos onde o acesso ao Adobe Connect não é necessário pela Internet, as portas devem estar abertas para seu endereço IP privado.
** Há um Balanceador de Carga WebRTC externo para roteamento de tráfego para vários nós de sinalização e para descarregamento de SSL. O LB atua como uma interface entre os novos servidores WebRTC e o CPS e os usuários finais.
O balanceamento de carga geralmente é feito por meio de um balanceador de carga de aplicativo externo com a configuração abaixo.
Porta HTTPS 443: Porta HTTP 18443 dos nós de sinalização - os usuários finais e do CPS se conectam a este ouvinte e este é o ponto de entrada para o novo cluster WebRTC.
Porta HTTPS 443: Porta HTTP 9090 dos nós de sinalização - usada pelo administrador para conectar-se ao painel da Web do administrador do WebRTC para configurar TURNS e SIP/Telefonia.
Para mais informações, consulte Configurar balanceamento de carga para configuração local de áudio/vídeo aprimorados (WebRTC).
Requisitos de sistema para servidores de áudio/vídeo aprimorados
- SO - Red Hat Enterprise Linux 64 bits versão 8.6
- Bibliotecas de terceiros (código aberto) instaladas nos servidores:
- Podman 4.2.0
- Virtualenv 20.19.0
- Python 3.9
- Tubo 21.3.1
- Bibliotecas Python (pydantic, pyhocon, docker, redis, packaging, psycopg2-binary, python-json-logger, pystun3, coloredlogs, colorama)
Uma configuração de áudio e vídeo aprimorados típica precisaria de pelo menos três servidores Red Hat. Um para cada um dos nós de sinalização, mídia e gravação. O avaliador com base na carga da reunião pode sugerir vários nós de servidor de mídia, gravação e sinalização. Um balanceador de carga de aplicativo seria usado para descarregamento de SSL e para comunicação entre o CPS e clientes de usuário final com nós de sinalização.
Algumas configurações baseadas na carga podem ter apenas dois servidores com contêineres de serviço de gravação em execução no nó de sinalização.
Aqui vamos descrever as três configurações de servidor mais comuns em detalhes.
- Provisione 3 servidores Red Hat. Consulte o Avaliador de hardware para obter informações sobre configuração.
- A instalação requer um usuário não-raiz com acesso sudo.
- Após uma nova instalação do Red Hat, crie um novo id de usuário.
- Para ativar o sudo para a nova ID de usuário no RHEL, adicione a ID ao grupo de discos:
- Torne-se raiz executando us.
- Execute usermod -aG wheel your_user_id.
- Faça logoff e logon novamente usando a nova ID.
- Torne-se raiz executando us.
- Atribua endereços IP estáticos aos nós de sinalização e gravação.
- Provisione e atribua um endereço IP público para o servidor de mídia. Se estiver usando o NAT 1:1, o IP público deve ser mapeado para o IP privado do servidor de mídia.
- Crie um registro DNS público para o servidor de mídia. É altamente recomendável configurar o TURNS (conexão sobre TLS 443). Também, forneça um certificado SSL para esse FQDN.
- Abra as portas de rede necessárias entre os três nós. Consulte a seção Arquitetura de rede.
- Configure um balanceador de carga de aplicativo externo conforme descrito na seção anterior. Além disso, configure um registro DNS público para o LB e provisione um certificado SSL.
Copiar o arquivo zip do instalador
-
-
Como opção, verifique o zip assinado baixado usando Jarsigner. O Jarsigner é instalado como parte do JAVA.
- Verifique se o JAVA está instalado usando o comando [java -version]. Se o Java estiver instalado, você obtém a versão JAVA como uma saída.
- Se o Java não estiver presente na máquina, instale o JAVA.
sudo yum install java-1.8.0-openjdk-devel - Agora, copie o comando abaixo na janela Terminal e clique em Enter.
jarsigner -verify -verbose NCC_Onprem_12_4_Installer.zip - A saída da verificação contém:
- lista de arquivos dentro do zip
- informações de certificado do Adobe para autenticação
- a mensagem de saída bem-sucedida "o jar está verificado" ou a malsucedida "o jar não está verificado"
- Se as informações do certificado forem válidas e se a mensagem de saída da verificação bem-sucedida for impressa, o usuário poderá usar o conteúdo do zip e prosseguir para a instalação, caso contrário o usuário precisará entrar em contato com o Suporte da Adobe.
-
Extraia o ZIP. Verifique se os arquivos têm as permissões apropriadas.
Use os comandos: Não execute nenhum comando com acesso root/sudo, a menos que especificado claramente.descompactar NCC_Onprem_12_4_Installer.zip
Percorra o diretório-pai do instalador, por exemplo,
cd ~/ncc-onprem-installer/
sudo chmod +x ExternalDependencies/install.sh
sudo chmod +x MainInstall.sh
sudo chmod +x check-connectivity.sh
sudo chmod +x uninstall.shObservação:Ao executar a instalação em um ambiente sem acesso à Internet ou em um ambiente bloqueado, execute o comando abaixo:
sudo chmod +x Externaldependecies/package-util.sh
-
Executar o script de instalação de dependência.
- Ao executar a instalação em um ambiente sem acesso à Internet ou em um ambiente bloqueado, execute o comando abaixo para instalar dependências externas: Se você tiver acesso à Internet, continue com a seguinte etapa 2.
Percorra o diretório pai do instalador, por exemplo, Verifique se você está no diretório ~/ncc-onprem-installer/.
Execute o bash ExternalDependencies/package-util.sh —install. Isso instala todas as dependências externas necessárias na caixa.
Isso é necessário uma vez por nó.
- Percorra o diretório pai do instalador, por exemplo, Verifique se você está no diretório ~/ncc-onprem-installer/.
Execute o bash ExternalDependencies/install.sh. Isso instala todas as dependências externas necessárias na caixa.
Isso é necessário uma vez por nó.
- Ao executar a instalação em um ambiente sem acesso à Internet ou em um ambiente bloqueado, execute o comando abaixo para instalar dependências externas: Se você tiver acesso à Internet, continue com a seguinte etapa 2.
Processo de instalação
As etapas a seguir vão para a instalação do ambiente WebRTC (como exemplo) em 4 instâncias separadas do Red Hat. Um nó de sinalização, um nó de gravação, um nó de servidor de mídia e um nó de ASR. Preste muita atenção aos serviços configurados no containers.conf para obter instruções de cada nó. Você precisa configurar cada nó com um conjunto específico de serviços/contêineres nos arquivos de configuração.
** Em um sistema de laboratório, você pode instalar todos esses ‘nós’ (sinalização, gravação e servidor de ASR) em uma instância do Linux. Nesse caso, no arquivo containers.conf, você definiria "count=1" para todos os servidores/contêineres necessários para o seu ambiente.
Nó de sinalização
Nos nós de sinalização, você normalmente executaria os seguintes serviços. Cada serviço é executado como um contêiner de docker.
- config (Serviço de configuração)
- cas (Novo serviço de API do Connect)
- apigw (Gateway/Roteador de API)
- liveswitch-gateway (Serviço de Gateway WebRTC)
Os nós de sinalização geralmente estão na sub-rede privada acessível ao cliente Connect por meio de um balanceador de carga externo.
Procedimento
-
Editar o arquivo de hosts
No nó de sinalização, o arquivo de hosts deve ser atualizado. Você pode usar um editor de texto como nano ou vi.
- Abra o arquivo /etc/hosts usando o editor nano ou vi, por exemplo, sudo vi /etc/hosts
- Adicione a seguinte linha no final. Substitua o <private-ip> com o IP privado do host. Observe o espaço entre cada palavra abaixo.
<private-ip> cas.ncc.svc.cluster.local gw.fm.ncc.internal config.ncc.svc.cluster.local pi.ncc.svc.cluster.local auth.ncc.svc.cluster.local
192.168.1.100 cas.ncc.svc.cluster.local gw.fm.ncc.internal config.ncc.svc.cluster.local pi.ncc.svc.cluster.local auth.ncc.svc.cluster.local
No nó de ASR, o arquivo de hosts deve ser atualizado. Você pode usar um editor de texto como nano ou vi.
- Abra o arquivo /etc/hosts usando o editor nano ou vi, por exemplo, sudo vi /etc/hosts
- Adicione a seguinte linha no final. Substitua o <private-ip> com o IP privado do host. Observe o espaço entre cada palavra abaixo.
<private-ip> gw.fm.ncc.internal
Observação:Altere o <private-ip> com o IP privado do host de sinal
- Abra o arquivo /etc/hosts usando o editor nano ou vi, por exemplo, sudo vi /etc/hosts
-
Editar os arquivos de configuração
- Edite o arquivo de configuração presente em, ncc-onprem-installer/Config/config.conf. As instruções para editar o arquivo são adicionadas como comentários no arquivo de configuração. Esse arquivo precisa ser editado para cada host separadamente.
- Agora, edite ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo são adicionadas como comentários no arquivo. Esse arquivo precisa ser editado para cada host separadamente. Dependendo dos serviços a serem instalados e do número de contêineres a serem implantados.
- Em um nó de sinalização típico, você instalaria:
- casServer
- configService
- apiGateway
- gatewayServer
- redis
- postgres
- lb (opcional. Consulte a seção Balanceador de Carga abaixo para obter etapas adicionais de configuração.)
- Portanto, defina count=1 para todos os serviços acima e 0 para todos os outros.
- Importante: defina restart=1 para configService, depois de fazer qualquer alteração em Config.conf.
- Em configurações que exigem vários nós de sinalização, os bancos de dados Redis e Postgres são instalados apenas no primeiro nó.
- Edite o arquivo de configuração presente em, ncc-onprem-installer/Config/config.conf. As instruções para editar o arquivo são adicionadas como comentários no arquivo de configuração. Esse arquivo precisa ser editado para cada host separadamente.
-
Executar o script do instalador principal.
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/
Execute o script do instalador principal bash MainInstall.sh. Aguarde a mensagem de confirmação.
Mensagem de sucesso:
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha:
2023-01-31 20:04:44.849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.Consulte a seção de solução de problemas.
-
Verificar instalação
- API de verificação de integridade
Para verificar a integridade do nó, você pode navegar até o URL: http://<private_ip>:18443/health. Uma resposta íntegra deve ser 200 OK {"apigw":"ok"}.
Para verificar a partir da máquina RedHat você pode usar o comando CURL
Por exemplo, curl -v http://172.31.56.203:18443/health - Verificar Status do Contêiner
Na janela Terminal, execute o comando docker ps.
A saída como a abaixo e o STATUS não devem ser reiniciados para nenhum dos contêineres.
- API de verificação de integridade
-
Use o contêiner de lb do Balanceador de Carga Nginx fornecido
O instalador agora vem com um contêiner Nginx de código aberto para descarregamento SSL.
Isso deve ser usado apenas para laboratórios ou pequenas configurações com apenas 1 nó de sinalização.
Você deve instalar o LB no nó de sinalização.
Ao usar este LB empacotado, o nó de sinalização deve estar nas sub-redes públicas (ou DMZ) e receber um IP público ou mapeado para um IP público via NAT 1:1. Os clientes se conectam ao nó diretamente através da URL do LB na porta 443.
Em configurações em que o acesso ao Connect não é necessário a partir da Internet, a sinalização deve estar na sub-rede privada, mas ainda acessível da rede interna na porta 443.
Requisitos:
- Registros DNS públicos/privados, dependendo do caso de uso
- Certificado SSL para o registro DNS
- Chave privada para o certificado SSL
Etapas para usar o Balanceador de Carga:
- mkdir -p ~/connect/loadbalancer/certs
- Copie o certificado SSL (emitido para o FQDN do nó de sinalização) e a chave privada para o diretório de certificados. Verifique se os nomes são cert.crt e key.key.
- No arquivo config.conf, adicione o FQDN na seção hostnames>lb e também na seção hostnames>fqdn, pois esse seria agora o ponto de entrada do cluster WebRTC.
- No arquivo container.conf, atualize a contagem do lb para 1.
- Agora, execute o bash MainInstall.sh.
Se estiver usando um certificado curinga com uma instância do AWS EC2:
- Crie um registro A no Route53. Por exemplo, se o certificado curinga for *.example.com, crie o registro A como webrtc.example.com e mapeie-o para o IP Elástico da instância EC2.
- Copie o certificado e a chave curingas para o diretório ~/connect/loadbalancer/certs. Verifique se os nomes são cert.crt e key.key.
- Adicione o FQDN. Por exemplo, webrtc.example.com no hostnames>lb e também no hostnames>fqdn.
- No arquivo container.conf, atualize a contagem do lb para 1.
- Agora, execute o bash MainInstall.sh.
Nos nós de mídia, você executaria os seguintes serviços:
- liveswitch-media-server (Servidor de Mídia) - Para áudio e vídeo aprimorados
- liveswitch-sip-connector (serviço SIP) - Para usar SIP
Os nós de mídia devem estar nas sub-redes públicas (ou DMZ) e receber um IP público ou ser mapeados para um IP público via NAT 1:1. Os clientes se conectam diretamente aos IPs públicos do nó de mídia.
O cliente de áudio e vídeo aprimorados (WebRTC) usa o método ICE para conectividade e tenta estabelecer um fluxo de áudio e vídeo com o servidor de mídia nas portas e no protocolo abaixo:
- Portas UDP no intervalo 30000 - 65535 controlam o fluxo de mídia em tempo real.
- Identificador de porta UDP e TCP 3478 STUN e TURN para ajudar os clientes a fazer o stream através dos firewalls.
- TLS na porta 443 para habilitar TURNS para garantir alta disponibilidade para streaming em redes restritas.
- O Cliente C12 baseado em WebRTC tenta todas as opções (TCP e UDP) antes de mudar para TLS na porta 443
- UDP e TCP porta 5060 suportam tráfico SIP para registro de tronco/PBX e chamadas de entrada/saída. (Obrigatório se você estiver usando SIP)
Procedimento
-
Executar o script do instalador principal.
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/
Execute o script do instalador principal bash MainInstall.sh. Aguarde a mensagem de confirmação.
Mensagem de sucesso
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha
2023-01-31 20:04:44,849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.Consulte a seção de solução de problemas.
-
Verificar instalação
Na janela Terminal, execute o comando docker ps e verifique se o contêiner liveswitch-media-server está em execução.
Nó de gravação
Os nós de gravação devem ser executados em uma rede privada. Em nós de gravação, você pode executar uma ou mais instâncias de:
- hcr (Contêiner de Gravação. Nº de contêineres hcr decidem sobre gravações simultâneas que podem ser executadas)
- recordingserver (WebServer) para fornecer arquivos de gravação ao CPS. 1 por nó de gravação)
Os nós de gravação devem ser acessíveis em:
- TCP 80 da rede local, para que o CPS possa baixar as gravações.
- TCP 5000-5100 da rede local, contêineres de gravação individuais seriam vinculados a portas de host nesse intervalo.
- TCP 8090 da rede local.
Os nós de gravação devem ser capazes de acessar os nós de mídia no IP público nas portas listadas na seção Nós de mídia e para CPS na porta 443 para fazer uma gravação bem-sucedida.
Procedimento
-
Editar os arquivos de configuração
- Edite o arquivo config.conf ou copie-o do nó de sinalização, ~/ ncc-onprem-installer /Config/config.conf.
- Agora, edite ~/ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo estão adicionadas como comentários no arquivo.
- Em um nó do servidor de gravação, você instalaria:
- recordingContainer
- recordingserver
- recordingContainer
- Portanto, defina count >= 1 para recordingContainer, 1 para recordingserver e 0 para todos os outros.
-
Executar o script do instalador principal
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/ncc-onprem-installer/.
Execute o script do instalador principal, bash MainInstall.sh. Aguarde a mensagem de confirmação.
Mensagem de sucesso
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha
2023-01-31 20:04:44,849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.Consulte a seção de solução de problemas.
-
Verificar instalação
Na janela Terminal, execute o comando B e verifique se o hcr e os contêineres do servidor de gravação estão em execução.
Nó de ASR
Os nós de ASR ou Legenda Oculta devem ser executados em uma rede privada. Em nós de ASR, você pode executar uma ou mais instâncias do ASR (contêiner de ASR). O número de contêineres de ASR decide o número de reuniões que terão legendas ocultas sendo executadas simultaneamente).
Os nós de ASR devem ser acessíveis no TCP 6000-6100 da rede local. Os contêineres de ASR individuais seriam vinculados às portas do host neste intervalo.
Procedimento
-
Editar os arquivos de configuração.
-
Edite o arquivo config.conf ou copie-o do nó de sinalização, ~/ ncc-onprem-installer /Config/config.conf.
-
Agora, edite ~/ncc-onprem-installer/Config/containers.conf.
-
Em um nó do servidor de ASR, você instalaria:
asrContainer
Portanto,count >= 1 para asrContainer
-
Executar o script do instalador principal.
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/ncc-onprem-installer/.
Execute o script do instalador principal: bash MainInstall.sh. Aguarde a mensagem de confirmação.Mensagem de êxito
2023-01-31 18:21:34,033 : INFO : Main : 55 :Instalação bem-sucedida.
Mensagem de falha
2023-01-31 20:04:44,849 : ERROR : Main : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.
Preparar o ambiente
Copiar o arquivo zip do instalador.
-
Copie o NCC_Onprem_12_4_Installer.zip para o diretório inicial de todos os nós.
Por exemplo, scp NCC_Onprem_12_4_Installer.zip -i ssh_key.pem my-user@webrtc.corp.example.com:/home/my-user/ -
Como opção, verifique o zip assinado baixado usando Jarsigner. O Jarsigner é instalado como parte do JAVA.
- Verifique se o JAVA está instalado usando o comando [java -version]. Se o Java estiver instalado, você obtém a versão JAVA como uma saída.
- Se o Java não estiver presente na máquina, instale o JAVA.
sudo yum install java-1.8.0-openjdk-devel - Agora, copie o comando abaixo na janela Terminal e clique em Enter.
jarsigner -verify -verbose NCC_Onprem_12_4_Installer.zip - A saída da verificação contém:
- lista de arquivos dentro do zip
- informações de certificado do Adobe para autenticação
- a mensagem de saída bem-sucedida "o jar está verificado" ou a malsucedida "o jar não está verificado"
- Se as informações do certificado forem válidas e se a mensagem de saída da verificação bem-sucedida for impressa, o usuário poderá usar o conteúdo do zip e prosseguir para a instalação, caso contrário o usuário precisará entrar em contato com o Suporte da Adobe.
-
Extraia o ZIP. Verifique se os arquivos têm as permissões apropriadas.
Use os comandos: Não execute nenhum comando com acesso root/sudo, a menos que especificado claramente.descompactar NCC_Onprem_12_4_Installer.zip
Percorra o diretório-pai do instalador, por exemplo,
cd ~/ncc-onprem-installer/
sudo chmod +x ExternalDependencies/install.sh
sudo chmod +x MainInstall.sh
sudo chmod +x check-connectivity.sh
sudo chmod +x uninstall.sh -
Executar o script de instalação de dependência.
Percorra o diretório pai do instalador, por exemplo,
Verifique se você está no diretório ~/ncc-onprem-installer/
Execute o bash ExternalDependencies/install.sh. Isso instala todas as dependências externas necessárias na caixa.Isso é necessário uma vez por nó.
O processo de upgrade requer tempo de inatividade.
Nó de sinalização
Nos nós de sinalização, você normalmente executaria os seguintes serviços. Cada serviço é executado como um contêiner de docker.
- config (Serviço de configuração)
- cas (Novo serviço de API do Connect)
- apigw (Gateway/Roteador de API)
- liveswitch-gateway (Serviço de Gateway WebRTC)
Procedimento
-
Editar os arquivos de configuração
- Edite o arquivo de configuração presente em, ncc-onprem-installer/Config/config.conf. As instruções para editar o arquivo são adicionadas como comentários no arquivo de configuração. Esse arquivo precisa ser editado para cada host separadamente. Você pode usar o arquivo config.conf da instalação anterior como referência. Por favor, não substitua o novo arquivo pelo antigo. A versão mais recente tem atualizações importantes.
- Agora, edite ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo são adicionadas como comentários no arquivo. Esse arquivo precisa ser editado para cada host separadamente.
- Ao atualizar o nó de sinalização, você normalmente instalaria:
- casServer
- configService
- apiGateway
- gatewayServer
- Consulte o arquivo da instalação anterior para identificar os serviços a serem instalados e o número de contêineres a serem implantados. Defina count=1 para todos os serviços instalados anteriormente e 0 para todos os outros.
- Importante: defina restart=1 para configService após fazer qualquer alteração no arquivo Config.conf ou ao atualizar usando uma versão mais recente do instalador.
- Importante: durante a atualização, os bancos de dados Redis e Postgres enviados não são instalados. Portanto, mantenha a contagem como 0 no arquivo containers.conf.
-
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/
Execute o script do instalador principal bash MainInstall.sh. O instalador atualiza automaticamente os serviços para a versão mais recente. Aguarde a mensagem de confirmação.
Mensagem de sucesso:
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha:
2023-01-31 20:04:44.849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações. -
Verificar instalação
- API de verificação de integridade
Para verificar a integridade do nó, você pode navegar até o URL: http://<private_ip>:18443/health. Uma resposta íntegra deve ser 200 OK {"apigw":"ok"}. Para verificar a partir da máquina RedHat, você pode usar o comando CURL.
Por exemplo, curl -v http://172.31.56.203:18443/health Verificar Status do Contêiner
Na janela Terminal, execute o comando docker ps
A saída como a abaixo e o STATUS não devem ser reiniciados para nenhum dos contêineres.
- API de verificação de integridade
Nó do servidor de mídia
Nos nós de mídia, você executaria os seguintes serviços:
- liveswitch-media-server (Servidor de Mídia) - Para áudio e vídeo aprimorados
- liveswitch-sip-connector (serviço SIP) - Para usar SIP
Procedimento
-
Editar os arquivos de configuração.
-
Edite o arquivo config.conf ou copie-o do nó de sinalização ~/ncc-onprem-installer /Config/config.conf. Você pode usar o arquivo config.conf da instalação anterior como referência. Por favor, não substitua o novo arquivo pelo antigo. A versão mais recente tem atualizações importantes.
Observação:Se você estiver em um ambiente restrito, deixe entradas em branco para externalStunUrls0 e externalStunUrls1 na seção gatewayServer. Por examplo, externalStunUrls0="" , externalStunUrls1="".
-
Agora, edite ~/ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo estão adicionadas como comentários no arquivo.
-
Agora, edite ~/ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo estão adicionadas como comentários no arquivo.
-
Em um nó de servidor de mídia, você atualizaria:
- mediaServer
- sipServer (se SIP/Telefonia for necessário)
-
Consulte o arquivo da instalação anterior para identificar os serviços a serem instalados e o número de contêineres a serem implantados. Defina count=1 para todos os serviços instalados anteriormente e 0 para todos os outros.
-
No bloco mediaServer, atualize os valores para mediaNodePublicIP e mediaNodePublicFQDN. Consulte os comentários incorporados para mais detalhes.
-
-
Execute o script do instalador principal
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/
Execute o script do instalador principal bash MainInstall.sh. O instalador atualiza automaticamente os serviços para a versão mais recente. Aguarde a mensagem de confirmação.
Mensagem de sucesso:
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha:
2023-01-31 20:04:44.849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.Consulte a seção solução de problemas.
-
Verificar instalação
Na janela Terminal, execute o comando docker ps e verifique se os contêineres liveswitch-media-server e liveswitch-sip-connector (instalação opcional) estão em execução.
Nó de gravação
Os nós de gravação devem ser executados em uma rede privada. Em nós de gravação, você pode executar uma ou mais instâncias:
hcr (Contêiner de Gravação. O número de contêineres de hcr é igual ao número de gravações simultâneas que podem ser executadas.)
Procedimento
-
Editar os arquivos de configuração
- Edite o arquivo config.conf ou copie-o do nó de sinalização, ~/ ncc-onprem-installer /Config/config.conf. Você pode usar o arquivo config.conf da instalação anterior como referência. Por favor, não substitua o novo arquivo pelo antigo. A versão mais recente tem atualizações importantes.
- Agora, edite ~/ncc-onprem-installer/Config/containers.conf. As instruções para editar o arquivo estão adicionadas como comentários no arquivo.
- Em um nó de servidor de gravação, você atualizaria:
- recordingContainer
- Consulte o arquivo containers.conf do diretório de instalação anterior e defina o mesmo valor de count para recordingContainer e 0 para todos os outros serviços.
- Edite o arquivo config.conf ou copie-o do nó de sinalização, ~/ ncc-onprem-installer /Config/config.conf. Você pode usar o arquivo config.conf da instalação anterior como referência. Por favor, não substitua o novo arquivo pelo antigo. A versão mais recente tem atualizações importantes.
-
Executar o script do instalador principal.
Alterne para o diretório do instalador principal cd ~/ncc-onprem-installer/ncc-onprem-installer/
Execute o script do instalador principal bash MainInstall.sh. O instalador atualiza automaticamente os serviços para a versão mais recente. Aguarde a mensagem de confirmação.
Mensagem de sucesso:
2023-01-31 18:21:34,033 : INFORMAÇÕES : Principal : 55 : instalação bem-sucedida.
Mensagem de falha:
2023-01-31 20:04:44,849 : ERRO : Principal : 59 : Falha na instalação. Verifique o arquivo installer.log para mais informações.Consulte a seção de solução de problemas.
-
Verificar instalação
Na janela Terminal, execute o comando docker ps e verifique se os contêineres de hcr estão em execução.
As seguintes etapas precisam ser executadas em todos os servidores do Adobe Connect 12 (CPS):
- Adicione as configurações abaixo em custom.ini de todos os servidores do connect presentes em <Installation_Dir>/Connect/custom.ini.
# lista separada por vírgula separated list de URLs de descoberta de CAS
# Valores possíveis
WEBRTC_CAS_DISCOVERY_URLS=http://<Signalling Node IP >:18443/api/cps/ingest
WEBRTC_CAS_DISCOVERY_URLS=http://<Load Balancer URL>/api/cps/ingest
# Segredo compartilhado para CAS, usado para assinar solicitações para CAS. Insira o que você definiu na seção hmac no arquivo config.conf no nó de sinalização.
WEBRTC_CAS_SHARED_SECRET=CorrectHorseBatteryStaple - Salve o arquivo e reinicie o serviço connectpro.
Processo de pós-instalação
-
Verificar Conectividade de Rede
Execute o fluxo de trabalho do Teste de Conectividade para verificar a conectividade de rede entre nós diferentes
- Efetue logon no nó de sinalização.
- Percorra o diretório pai do instalador, por exemplo,
cd ~/ncc-onprem-installer/ncc-onprem-installer/ - Execute o comando bash check-connectivity.sh.
- A ferramenta de conectividade usa os valores fornecidos no arquivo Config.conf para executar testes básicos de rede como:
- Solicitações HTTP entre serviços diferentes
- Testes de conectividade de rede nas portas TCP e UDP necessárias
- Resolução de nomes
- Conectividade do banco de dados
- Este teste verifica a conectividade necessária entre os nós e serviços e compartilha os resultados para ajudar a diagnosticar problemas de conectividade da rede.
-
Testar o Adobe Connect Meeting com áudio e vídeo aprimorados
- Crie uma nova reunião e certifique-se de que a opção Áudio/vídeo aprimorados esteja selecionada.
- Entre na sala de reuniões e ative o microfone e a câmera.
- Se possível, ingresse também na sala de um PC ou dispositivo móvel diferente e verifique a troca de áudio e vídeo.
- Experimente o compartilhamento de tela.
- Inicie a gravação. Espere 30s e pare. Agora, verifique se a gravação está acessível.
Configuração de Recursos Adicionais
Configurar SIP
Para configurar o SIP, você deve acessar o painel da Web do administrador de FM.
-
Visite: http://<your-load-balancer-address>:9090/admin e efetue logon com o nome de usuário e a senha configurados no config.conf. Se você não estiver usando um balanceador de carga, navegue até http://<signalling_node-address>:9090/admin.
-
Visite APLICATIVOS, depois adobeconnecte e role para baixo até Canais.Configure a ID de Chamador de Saída SIP para ambos padrão (*) e grupo de canais de transmissão*.
-
No menu principal, vá para IMPLANTAÇÕES e edite a configuração SIP.
Carregar certificado TURNS para administrador de FM
Para fornecer terminação SSL para associações TURNS, você pode carregar um certificado no painel do administrador FM.
O certificado deve estar no formato PFX.
Siga as etapas abaixo:
-
Visite: http://<your-load-balancer-address>:9090/admin e efetue logon com o nome de usuário e a senha configurados no config.conf. Se você não estiver usando um balanceador de carga, navegue até http://<signalling_node-address>:9090/admin.
-
Vá a CERTIFICADOS.
-
Em Certificados de arquivo, selecione em um sinal + e carregue o certificado do domínio que você está usando.
Configurar a associação TURNS
Isso é necessário para que possamos ter comunicação TURN segura.
Se você já carregou o certificado conforme discutido na seção anterior, execute as seguintes etapas:
-
Navegue até IMPLANTAÇÕES, depois selecione Padrão.
-
Role para baixo até a seção Configuração avançada.
-
Configure as associações do TURNS com o certificado carregado anteriormente.
Desinstalação
-
Altere para o diretório raiz do instalador (o diretório raiz contém uninstall.sh) cd ~/ncc_onprem_installer.
-
Execute bash uninstall.sh.
-
Para remover o diretório de dados dos bancos de dados Postgres e Redis do nó de sinalização, execute o comando abaixo.
sudo rm -rf ~/connect
Isso remove todos os componentes e imagens NCC do sistema. Mas as dependências externas (Python, PIP, Virtualenv e pacotes do Python) não são excluídas.
docker.errors.DockerException: Erro ao buscar a versão API do servidor: (“Conexão abortada”, FileNotFoundError(2, “Não há tal arquivo ou diretório”))
Esta mensagem de erro é exibida quando a variável de ambiente DOCKER_HOST não está definida corretamente. Siga as etapas abaixo:
- Percorra o diretório pai do instalador, por exemplo:
cd ~/ncc-onprem-installer/
- Execute o comando source ~/.bash_profile
Se as etapas acima não resolverem o problema, siga as etapas abaixo:
- Remover Podman sudo yum remove podman-remote
- Desconecte-se da conta de usuário atual e efetue o logon novamente.
- Percorra o diretório pai do instalador, por exemplo:
cd ~/ncc-onprem-installer/
- Execute bash ExternalDependencies/install.sh.
Não execute nenhum comando com acesso root/sudo, a menos que especificado claramente.
2023-03-22 03:27:12 : ERRO : Principal : 48 : Falha ao iniciar o Postgres.
Esta mensagem de erro é exibida quando o contêiner do docker do Postgres não consegue montar o volume do host devido a um problema de permissão. Siga as etapas abaixo:
- Percorra o diretório pai do instalador, por exemplo,
cd ~/ncc-onprem-installer/ - Execute o comando docker load -i images/postgres.tar.gz
- Em seguida, execute:
docker run -d \
--env POSTGRES_PASSWORD='PostPass1234' \
--volume ~/connect/postgres/data:/var/lib/postgresql/data \
--publish 5432:5432 \
--network host \
--user 0 \
--restart always \
--name postgres \
docker-connect-release.dr-uw2.adobeitc.com/ncc-onprem/postgres:12.4.1 - Isso corrigirá os problemas de permissão no diretório do host.
- Agora, execute o comando abaixo para remover o contêiner do docker do Postgres.
docker rm -f postgres - Por fim, execute o MainInstaller novamente.
bash MainInstall.sh
pydantic.errors.PydanticImportError: `BaseSettings` foram movidas para o pacote `pydantic-settings`. Consultehttps://docs.pydantic.dev/2.0/migration/#basesettings-has-moved-to-pydantic-settings para obter mais detalhes.
Siga as etapas abaixo:
- Percorra o diretório pai do instalador, por exemplo,
cd ~/ncc-onprem-installer/ - Execute o comando: source bin/activate
- Em seguida, execute este comando para desinstalar o pydatic:
python3 -m pip uninstall pydantic - Execute este comando para reinstalar o Pydantic:
python3 -m pip install "pydantic==1.*"
- Por fim, execute o MainInstaller novamente.
bash MainInstall.sh
O media server precisa de 1 :1 NAT, o que significa que qualquer entrada e saída de tráfego para o media server para a Internet precisa usar o IP público. O media server descobre automaticamente seu IP público para usar o protocolo STUN uma vez que você tenha configurado NAT 1:1 para o media server em seu roteador ou firewall. Acesse a interface de administração do portal WebRTC e se certifique de que o mediaver possa detectar seu endereço público de IP.
https://adminwebrtc.yourdomain.com/admin/#/servers
O Media Server não pode ser alcançado pelos clientes mesmo após NAT 1:1 funcionar corretamente
O Cliente WebRTC utiliza o ICE e tenta estabelecer um fluxo de áudio e vídeo com o media server na ordem abaixo:
UDP na faixa de porta de 35000 a 65535
TCP na porta 3478
TLS na porta 443
O Cliente base C12 WebRTC tentará todas as opções (TCP e UDP) antes de mudar para TLS pela porta 443
Por padrão, o Connect 12.4.1 é criado com a suposição de que CPS e WebRTC e New Connect Cluster (conhecido também como NCC) estão no mesmo VLAN/VPC ou domínio de transmissão. Caso você os tenha em redes diferentes, assegure-se de que tem o roteamento de camada três entre CPS e NCC/WebRTC para ter conectividade de rede em ambas as direções.
Para verificar a conectividade de rede entre CPS e NCC, use CURL e Telnet.
A conectividade CPS e NCC funciona somente em HTTPS.
O erro abaixo aparece nos registros de container de FMGW A segunda instância Redis está definida para funcionar como secundária.
ERRO [FM.LiveSwitch.Signalling.Server.IdleThread][-] 2022-07-21T12:46:29.439Z Erro inesperado na linha ociosa.
StackExchange.Redis.RedisServerException: READONLY Você não pode escrever contra uma secundária.
Solução:
Abra o arquivo de configuração correspondente ao serviço Redis e modifique o valor do atributo “apenas leitura de escravo" para “não”.
Como solução alternativa, siga as etapas abaixo:
- cd ncc-onprem-installer.
- mv Images images.
- sed -i 's/Images\//images\//' Installer/utils/global_constants.py.
- Desinstalar - Execute uninstall.sh.
- Reinstalar - Execute MainInstall.sh.
Exceções de BD de fluxo em logs podem ser ignoradas por enquanto.
Depois de reinicializar uma instância e reiniciar um contêiner de docker, se você verificar os logs para o contêiner do cas, verá as exceções.
Para resolver esse problema, reinicie o contêiner do cas. Digite cas de reinicialização do docker.