Instalação do Amplia em Red Hat Enterprise Linux
Para instalar uma instância on premises do Amplia em Red Hat Enterprise Linux, siga os passos abaixo. Para outras plataformas, clique aqui.
Tip
Antes de começar, leia a seção Planejamento antes da instalação.
Pré-requisitos
Note
Essas instruções são para RHEL 7. Se você utiliza RHEL 8, por favor contate-nos.
Warning
Antes de começar, certifique-se de que seu sistema esteja registrado e inscrito no Red Hat Customer Portal
- Red Hat Enterprise Linux 7.x
- SQL Server 2016 ou mais recente (recomendada edição Standard ou superior)
- Licença PKI SDK (no formato Base64)
- Licença Web PKI (formato Base64/binário) -- necessário apenas se os usuários forem emitir certificados em seus computadores (procedimento de emissão na web)
- Entradas de DNS criadas anteriormente para:
- Acesso ao painel de controle (veja Domínio de acesso ao painel de controle)
- Publicação de LCRs (veja Domínios de acesso)
- (recomendado) Certificado SSL válido para o domínio de acesso ao painel de controle
- Connection string para um banco de dados SQL Server ou PostgreSQL criado previamente
Instale o ASP.NET Core Runtime 3.1
Important
Essas instruções assumem que você está autenticado como root. Se você não estiver, execute sudo su -
antes de continuar!
Habilite o repositório oficial de pacotes do .NET (só precisa ser feito uma única vez por máquina), e então instale o pacote do ASP.NET Core Runtime:
subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet31-aspnetcore-runtime-3.1 -y
ln -s /opt/rh/rh-dotnet31/root/usr/bin/dotnet /usr/bin/dotnet
Note
Se o comando acima falhar, certifique-se de que o seu sistema está registrado e associado a uma subscription da Red Hat
Para testar a instalação, execute:
dotnet --list-runtimes
A saída esperada é semelhante a:
Microsoft.AspNetCore.App 3.1.x [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.x [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Tip
Para métodos alternativos de instalação do ASP.NET Core Runtime, visite esta página
Instalar o Amplia
Note
Alguns passos utilizam o comando nano
, que pode não estar disponível no seu sistema. Substitua o comando pelo
vi
ou instale o nano executando yum install nano
.
Crie um usuário local para executar o servidor de aplicação do Amplia:
mkdir /var/amplia
useradd --system --home-dir /var/amplia amplia
chown amplia:amplia /var/amplia
Crie a pasta do site, baixe e extraia os binários:
Note
Para testar a próxima versão do Amplia, atualmente em estágio Release Candidate, substitua amplia-x.y.z.tar.gz
nos comandos abaixo
por amplia-4.9.0-rc05.tar.gz
. Cuidado: versões Release Candidate não são adequadas para produção e, portanto, devem ser instaladas apenas em ambientes de
homologação/testes!
mkdir /usr/share/amplia
curl -O https://cdn.lacunasoftware.com/amplia/amplia-4.8.0.tar.gz
tar xzf amplia-4.8.0.tar.gz -C /usr/share/amplia
chmod -R a=,u+rwX,go+rX /usr/share/amplia
Note
Os arquivos do site podem ser lidos por qualquer usuário mas só podem ser alterados por usuários com permissões elevadas. Isso significa que o usuário da aplicação (amplia) pode ler os arquivos mas não pode alterá-los (isso é intencional).
Crie o arquivo de configuração do Amplia a partir do template fornecido:
mkdir /etc/amplia
cp /usr/share/amplia/config-templates/linux/appsettings.conf /etc/amplia/
chown -R root:amplia /etc/amplia
chmod -R a=,u+rwX,g+rX /etc/amplia
Note
Arquivos de configuração só podem ser lidos por membros do grupo amplia e só podem ser alterados por usuários com permissões elevadas. Isso é importante para proteger informações sigilosas armazenadas no arquivo de configuração dos demais usuários da máquina.
Configure o Amplia
Edite o arquivo de configuração para configurar sua instância do Amplia:
nano /etc/amplia/appsettings.conf
Na seção [General]
, para preencher o parâmetro EncryptionKey
gere uma chave de 256 bits para cifrar dados sensíveis armazenados no banco de dados:
openssl rand -base64 32
Ainda na seção [General]
, para preencher o parâmetro RootPasswordHash
escolha uma senha forte para o acesso de root e compute o hash da senha:
dotnet /usr/share/amplia/Lacuna.Amplia.Site.dll -- hash-root-pass
Preencha os demais parâmetros de acordo com as instruções presentes no arquivo de configuração.
Configurar um daemon
Crie o arquivo de definição do serviço:
touch /etc/systemd/system/amplia.service
nano /etc/systemd/system/amplia.service
Digite o seguinte:
[Unit]
Description=Amplia
[Service]
WorkingDirectory=/usr/share/amplia
ExecStart=/usr/bin/dotnet Lacuna.Amplia.Site.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=amplia
User=amplia
Environment=ASPNETCORE_ENVIRONMENT=Linux
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Salve o arquivo, habilite o serviço e inicie-o:
systemctl enable amplia
systemctl start amplia
systemctl status amplia
A saída esperada é semelhante a:
* amplia.service - Amplia
Loaded: loaded (/etc/systemd/system/amplia.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-07 05:50:04 UTC; 4min 22s ago
Main PID: 10960 (dotnet)
Tasks: 31 (limit: 2319)
CGroup: /system.slice/amplia.service
└─10960 /usr/bin/dotnet Lacuna.Amplia.Site.dll
...
Dec 04 12:45:08 server.patorum.com amplia[32562]: Hosting environment: Production
Dec 04 12:45:08 server.patorum.com amplia[32562]: Content root path: /usr/share/amplia
Dec 04 12:45:08 server.patorum.com amplia[32562]: Now listening on: http://localhost:5000
Dec 04 12:45:08 server.patorum.com amplia[32562]: Application started. Press Ctrl+C to shut down.
Hint: Some lines were ellipsized, use -l to show in full.
Se necessário, reinicie o serviço: systemctl restart amplia
Para testar se o servidor do Amplia está rodando, execute:
curl http://localhost:5000/api/system/info
A saída esperada é algo como:
{"productName":"Lacuna Amplia","productVersion":"4.x.x","spaVersion":"...","timestamp":"..."}
Configurar um servidor proxy reverso
Note
Se você preferir usar o Apache ao invés do Nginx, veja este artigo.
Instale o Nginx (se ainda não estiver instalado):
subscription-manager repos --enable=rhel-server-rhscl-7-rpms
yum install rh-nginx116
systemctl enable rh-nginx116-nginx
systemctl start rh-nginx116-nginx
scl enable rh-nginx116 bash
Teste a instalação do Nginx:
curl -I http://localhost/
Verifique as primeiras linhas da saída, que devem ser similares a:
HTTP/1.1 200 OK
Server: nginx/...
...
Edite o arquivo de configuração do Nginx:
nano /etc/opt/rh/rh-nginx116/nginx/nginx.conf
Apague ou comente (prefixando cada linha com #
) a seção server
inteira, mostrada abaixo:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /opt/rh/rh-nginx116/root/usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/opt/rh/rh-nginx116/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
Crie um arquivo de configuração para o site do Amplia:
touch /etc/opt/rh/rh-nginx116/nginx/conf.d/amplia.conf
nano /etc/opt/rh/rh-nginx116/nginx/conf.d/amplia.conf
Digite o seguinte, substituindo o valor do item server_name
pelo domínio de acesso ao painel de controle (veja Domínio de acesso ao painel de controle):
server {
listen 80;
server_name localhost ca.patorum.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Tip
Idealmente, a configuração do site deve conter as entradas ssl_certificate
e ssl_certificate_key
com o certificado SSL válido. Essa configuração está fora do escopo dessas
instruções.
Permita que o Nginx acesse o serviço do Amplia:
setsebool -P httpd_can_network_connect on
Teste a configuração do Nginx e recarregue-a:
nginx -t
nginx -s reload
Teste o site:
curl http://localhost/api/system/info
Abra as portas HTTP e HTTPS do seu servidor para tráfego externo (caso ainda não estejam abertas):
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload