Protheus no Linux – Parte 04

Introdução

No post anterior, preparamos um banco MySQL 5.5 e a UnixODBC na VM do Ubuntu 64. Agora, vamos instalar um DBAccess 64 bits no Linux e configurá-lo para usar o MySQL.

Instalação

Basicamente, precisamos de um arquivo contendo a distribuição 64 bits Linux do DBAccess. No exemplo de instalação, usei a versão disponível no portal da Totvs ( 16-03-15-DBACCESS_LINUX64_20141119.TAR.GZ )

Após subir a VM, usamos um WINSCP para criar dentro na estrutura de diretórios proposta para a aplicação (Post – Parte 01), uma pasta para a build do DBAccess que vamos instalar. A partir da pasta /totvs, criamos a pasta /dbaccess, e dentro dela a pasta 20141119 (referente a build em uso), e copiamos o arquivo mencionado para ela.

Usando um Putty, acessamos a VM pelo terminal e descompactamos o arquivo, usando os comandos:

cd /totvs/dbaccess/20141119/
tar zxvf 16-03-15-DBACCESS_LINUX64_20141119.TAR.GZ

Feito isso, vamos subir o DBAccess em modo “console”. A distribuição Linux 64 do DBAccess possui 2 executáveis : dbaccess64opt (Build Release) e dbaccess64dbg (Build Debug). A pasta “multi” significa que a versão de DBAccess dentro dela foi feita para conectar com múltiplos bancos de dados. Para subir esta versão em modo console, usamos os seguintes comandos :

cd multi
export LD_LIBRARY_PATH=./
./dbaccess64opt

DBAccess Linux64

Configurar conexão do MySQL no DBAccess

Você pode utilizar um DBAccess Monitor instalado no Windows, por exemplo, para conectar no DBAccess Server da máquina Linux, e proceder com a configuração da conexão com o MySQL.

Ao entrar na aba MySQL, e clicar em “Novo”, crie uma configuração com o mesmo nome de DSN no Linux que criamos no post anterior – no caso do exemplo, envp11mysql. Preencha os campos “usuário” e “senha” com o usuário e senha que criamos no MySQL durante a criação do banco de dados envp11mysql.

Testar a conexão

Usando o próprio DBAccess Monitor, na pasta “Assistentes”, usamos o recurso de Validação de Conexão, informamos o banco MySQL, depois informamos o nome da conexão (envp11mysql), e devemos receber a mensagem abaixo:

DBAccess Falha Conexão

Para ver o que houve, vamos olhar o console do DBAccess no terminal do Linux. Deve haver uma mensagem de erro parecida com a mensagem abaixo:

Begin TopClient Thread (3256297216,192.168.1.63,MYSQL/envp11mysql,DBMonitor,julio.wittwer,NOTE-AUTOMAN)
BEGINLOG]
Connection [MYSQL/envp11mysql] could not load database client library [libmyodbc3_r.so]
[ENDLOG]
[BEGINLOG]
libmyodbc3_r.so: cannot open shared object file: No such file or directory
[ENDLOG]
Exit TopClient Thread (3256297216) [ERROR -35]

O DBAccess está procurando uma lib client antiga do MySQL, para tentar conectar com ele, e não vai encontrá-la. Após instalar o DBAccess e configurar a conexão, precisamos editar o arquivo dbaccess.ini, e informar ao DBAccess que ele deve carregar a UnixODBC para acessar o MySQL. Para isso, usamos a chave clientlibrary na seção [MYSQL].

Primeiro, finalize o DBACcess, usando Control+C no console. Agora, vamos localizar o driver da UnixODBC. Normalmente ele está em alguma pasta da lib gnu Linux, em /usr/lib. Para verificar onde exatamente ela está, usamos o comando abaixo:

find /usr/lib -name 'libodbc.so*'

No meu ambiente, foram localizados os seguintes arquivos:

/usr/lib/x86_64-linux-gnu/libodbc.so.1.0.0
/usr/lib/x86_64-linux-gnu/libodbc.so.1

No dbaccess.ini, dentro da seção [mysql], colocamos a chave abaixo:

clientlibrary=/usr/lib/x86_64-linux-gnu/libodbc.so.1

DBACcess Ini

Após salvar o arquivo e subir o DBAccess novamente, vamos testar a conexão usando o assistente do DBAccess Monitor. E, se tudo estiver de acordo, devemos visualizar a mensagem abaixo:

DBAccess Conexão Ok

Subindo o DBAccess em modo “daemon”

Haja visto que o Banco de Dados MYSQL já está no ar, e o DBAccess está funcionando, podemos subir ele em modo “daemon”, sem deixar ele preso ao terminal. Para isso, usando o próprio terminal atual, finalizamos o DBAccess em modo console usando Control+C, e subimos ele em modo “daemon” usando o seguinte comando:

nohup ./dbaccess64opt -daemon

Para verificar se o processo do DBAccess está realmente no ar, podemos rodar uma instrução do Linux para listar os processos, filtrando o resultado por aqueles que contém a string “dbaccess”, usando o comando abaixo:

ps -ef | grep dbaccess

O retorno deste comando deve ser algo parecido com:

siga0984   1568      1  0 08:54 pts/0    00:00:00 ./dbaccess64opt daemon
siga0984   1591   1410  0 08:58 pts/0    00:00:00 grep --color=auto dbaccess

O que nos interessa é a primeira linha, pois informa o número do processo pelo qual o sistema operacional subiu o DBAccess64 – no nosso exemplo, 1568.

Para baixar o processo do DBAccess de forma controlada, usamos um terminal do Linux, e usamos o comando kill, informando como parâmetro o número do processo a ser finalizado. Por exemplo:

kill 1568

Para verificar se o processo está no ar, podemos usar novamente o comando “ps”. As mesmas regras se aplicam ao processo do Protheus Server. Ele pode ser colocado em modo “daemon” usando a mesma sintaxe, e verificado da mesma forma, usando o comando “ps”.

Conclusão

Com o DBAccess instalado e funcionando na própria máquina Linux, basta editar o arquivo appserver.ini da instalação do Protheus Server feita no segundo post desta sequência, para apontar para o banco MYSQL em localhost, para o alias “envp11mysql”, e agora temos um ambiente mínimo e operacional do Protheus 11 em uma máquina Linux 64.

Entre uma distribuição e outra de Linux, pode haver mudança nos comandos, a configuração de alguns itens pode ser manual e dar um pouco mais de trabalho, algumas distribuições vem com Firewall habilitado e requer mais passos de setup para abrir as exceções, alguns arquivos podem estar em outro lugar, ou ter um nome diferenciado, o gerenciador de pacotes é diferente, e assim por diante.

Estes primeiros posts foram apenas para “abrir o apetite”, temos muito a abordar ainda sobre isso nos próximos posts deste assunto 😀

Enquanto isso, agradeço novamente a audiência, e desejo a todos TERABYTES de SUCESSO 😉

 

Anúncios

Protheus no Linux – Parte 03

Introdução

No post anterior, instalamos na VM Ubuntu um Protheus Server, instância única, usando um c-Tree Server DLL (ou BoundServer). Agora, vamos instalar um banco de dados MYSQL e a UnixODBC nesta mesma VM.

Instalando

Após iniciar a VM do Ubuntu Linux — montada no primeiro post –, executamos os comandos abaixo, para instalar o MYSQL e a UNIXODBC, respectivamente:

sudo apt-get install mysql-server mysql-client
sudo apt-get install libmyodbc unixodbc-bin unixodbc

Com estes comandos, nesta versão do Sistema Operacional, o MySQL 5.5 será instalado. Durante a instalação, será perguntada uma senha do usuário “root” do MySQL. Insira uma senha e guarde-a, ela será necessária nas etapas posteriores.

Criando a base no MySQL

Após a instalação, o banco MYSQL já deve estar no ar, mas sem nenhuma base de dados. Utilize o comando “mysql” para acessar o interpretador de comandos do MySql, com a sintaxe abaixo:

mysql -u root -p

Uma vez dentro do interpretador de comandos do MySql, execute os comandos abaixo para criar a sua base de dados. Troque o conteúdo de ‘usuariodebanco’ para um nome de usuário que você queira criar no banco de dados para ter acesso a essa base. Você pode dar o mesmo nome do usuário que você criou para o sistema operacional. E, no lugar de ‘senha’, coloque a senha que você quer atribuir a este usuário, para ele acessar o Banco de Dados.

create database envp11mysql;
grant all on envp11mysql.* to 'usuariodebanco' identified by 'senha';

Mysql Create DB

Configurando a UnixODBC

Para não acessarmos diretamente a .so ( shared object library ) do banco de dados, vamos configurar a UnixODBC no Linux para o Mysql. Primeiro, vamos entrar em “root” mode no Linux, com o comando abaixo:

sudo su

Agora, vamos ver exatamente onde foram instaladas as libs ODBC do MySQL, usando o comando abaixo:

find / -name 'lib*odbc*.so'

O resultado esperado deve ser bem próximo de:

/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg2S.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcnnS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg1S.so
/usr/lib/x86_64-linux-gnu/odbc/libodbctxtS.so
usr/lib/x86_64-linux-gnu/odbc/liboraodbcS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
/usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
/usr/lib/x86_64-linux-gnu/odbc/liboplodbcS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcminiS.so

Os arquivos que nos interessam são os dois em destaque:

libmyodbc.so = MySQL Driver API 
libodbcmyS.so = MySQL Driver Setup

Agora, vamos criar a configuração de instalação da UnixODBC. Usando o editor de arquivos texto no Linux, crie o arquivo odbcinst.ini na pasta /etc/

sudo vi /etc/odbcinst.ini

O conteúdo do arquivo deve ser o seguinte:

[odbc_mysql]
Description     = ODBC for MySQL
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
UsageCount      = 1

Agora, vamos ver a onde está a configuração de Sockets do MySQL, usando o comando abaixo:

mysqladmin -u root -p version

O resultado deve ser parecido com este aqui:

mysqladmin  Ver 8.42 Distrib 5.5.49, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.49-0ubuntu0.14.04.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 23 min 17 sec


Threads: 1  Questions: 583  Slow queries: 0  Opens: 189  
Flush tables: 1  Open tables: 41  Queries per second avg: 0.417

O que nos interessa é a informação em negrito: O caminho do Unix Socket em uso pelo Banco de Dados. Agora, baseado no que já temos até agora, vamos criar a configuração de ODBC efetivamente, apontando para os drivers.

vi /etc/odbc.ini

Podemos partir do seguinte conteúdo:

[envp11mysql]
Description = DSN para Banco P11 no MySQL
Driver      = odbc_mysql
Server      = localhost
Port        = 3306
Socket      = /var/run/mysqld/mysqld.sock
Database    = envp11mysql
Option      = 3
ReadOnly    = No

Na prática, os nomes das seções nos arquivos de configuração somos nós que definimos. No arquivo odbcinst.ini, cada seção configura um driver de banco diferente. No arquivo odbc.ini, cada seção corresponde a uma entrada de DSN da Odbc, que usa um determinado driver.

Após criar e editar os arquivos, vamos efetivar o registro das informações na UnixODBC, inicialmente instalando o Driver que configuramos, usando o comando abaixo.

odbcinst -i -d -f /etc/odbcinst.ini

Agora, vamos instalar a nossa configuração de DSN como “System DSN”, usando o comando abaixo:

odbcinst -i -s -l -f /etc/odbc.ini

Agora, usando o comando abaixo, podemos consultar quais DSN de sistemas estão instaladas:

odbcinst -s -q

E, finalmente, podemos testar a conexão com o MySQL via UnixODBC, usando o comando abaixo, trocando “MYSQLUSER” pelo usuário que nós criamos para o banco envp11mysql , e “MYSQLUSERPASSWORD” trocando pela senha utilizada.

isql -v myodbc_mysql_dsn MYSQLUSER MYSQLUSERPASSWORD

O resultado esperado é :

 

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

 

Para sair do interpretador de comandos SQL, use a instrução “quit”. Com isso, já temos o MySQL instalado, um banco criado, e a UnixODBC devidamente configurada.

Referências

“Kafee Talk – How to setup and configure MySQL with unixODBC under Ubuntu 14.04”. Disponível em <http://www.kaffeetalk.de/how-to-setup-and-configure-mysql-with-unixodbc-under-ubuntu-14-04/>. Acesso em 16 de Julho de 2016.

Conclusão

Sim, foi mais simples e mais rápido do que imaginávamos. E, com mais um ou dois passos, você configura o MySQL no Linux para aceitar conexões TCP remotas, e pode instalar uma ODBC no Windows, e usar o MYSQL no Linux — Basta editar o arquivo /etc/mysql/my.cnf , localizar a configuração bind-address, e trocar ela para 0.0.0.0 😉 Mas, o foco é usarmos o MySQL no Linux, com o DBAccess também no Linux. E esta etapa será abordada no próximo post dese assunto !!!

Agradeço a todos pela audiência, e lhes desejo TERABYTES DE SUCESSO 😀 

Protheus no Linux – Parte 02

Introdução

No post anterior, vimos um passo a passo da montagem de um ambiente mínimo de um servidor Linux, mais precisamente um Ubuntu Server 14 – 64 bits, conde já executamos algumas etapas de preparação para ele receber um Protheus Server. Neste post, vamos colocar um Protheus Server 11 64 bits nele !

Instalando o Protheus Server

Após iniciar sua VM, verificar o IP, e abrir um terminal ( Putty ), crie uma pasta a partir da pasta raiz do Linux, para armazenar seus ambientes e aplicações. No lugar de <usuario>, use o usuário que você criou na instalação do Linux.

sudo mkdir /totvs
sudo chown usuario /totvs
cd /totvs

Com estes comandos, criamos a pasta, e damos as permissões de “owner” (dono) da pasta ao seu usuário.

Vale lembrar de um ponto importante: todos os arquivos do Protheus no Linux, e inclusive estruturas de diretórios, por uma questão de convenção e compatibilidade estabelecidas no porte da aplicação para Linux, devem estar em letras minúsculas.

No nosso exemplo, vamos instalar apenas um Protheus 11 Server 64 bits. Para isso, eu proponho executar os comandos abaixo, para criar a seguinte estrutura de diretório:

mkdir /totvs/protheus11
mkdir /totvs/protheus11/envp11
mkdir /totvs/protheus11/bin_131227a

Para o exemplo acima, eu baixei apenas o Protheus 11 Server 64 em Linux, disponibilizado na seção de Download do portal da Totvs:

Arquivo    15-12-01-P11_APPSERVER_LINUX_X64.ZIP
Descrição  APPSERVER X64 700131227A  
Tamanho    59.6 MB

Primeiro, usando o WinSCP (SFTP), copie para a pasta ‘/totvs/protheus11/bin_131327a’ o arquivo “15-12-01-P11_APPSERVER_LINUX_X64.ZIP”.Após terminada a cópia, descompacte o arquivo usando o comando abaixo:

unzip 15-12-01-P11_APPSERVER_LINUX_X64.ZIP

A descompactação deve criar duas pastas, uma para os arquivos do Protheus Server , outra para o Smartclient Linux. Renomeie as pastas geradas para “appserver64” e “smartclient”, respectivamente, usando o comando “mv”, a partir da pasta /totvs/bin_131227a

mv appserverLinux_x64 appserver64
mv smartclientLinux smartclient

Entre na pasta appserver64, e descompacte todos os arquivos da pasta “appserver64”, usando os comandos abaixo:

cd appserver64
tar zxvf appsrvlinux_x64.tar.gz
tar zxvf printer_x64.tar.gz
tar zxvf libctreetmp_x64.tar.gz

Após descompactar, você pode remover todos estes arquivos com o comando:

rm -f *.tar.gz

Agora, vamos ajustar as propriedades de execução dos arquivos *.so do binário, usando o comando:

sudo chmod 777 *.so

Para o ambiente do ERP, Protheus 11, podemos criar toda a estrutura de pastas necessárias a partir da pasta /totvs/envp11, usando os comandos abaixo:

cd /totvs/protheus11/envp11
mkdir apo
mkdir data
mkdir system
mkdir systemload

Você pode pegar um repositório de objetos do portal, por exemplo o arquivo “16-06-14-BRA-EUA-PAR-URU-TTTP110.RPO”, bem como os demais arquivos necessários para criar um ambiente “do zero”, ou pode separar os arquivos necessários de seu ambiente Windows para montá-lo no Linux. O importante é que a versão do repositório do ERP deve ser a mesma versão dos arquivos de sistema (pasta ‘systemload‘).

Para um ambiente mínimo, você precisa da pasta “systemload” do seu ambiente Windows copiado na íntegra para o Linux, e na pasta “system” você precisa ter os arquivos com extensão XNU com as definições dos módulos do ERP, e de um arquivo “sigaadv.pss” do CD de instalação do ERP ou de um ambiente Windows. Este arquivo é usado como base para a criação do arquivo de senhas do ambiente, e parte do usuário “Admin”, sem senha (senha em branco). Se você já tem um ambiente Windows montado, você pode copiar o arquivo “sigapss.spf” deste ambiente para a pasta “system” do Linux.

Configurando o AppServer

Após copiar todos os arquivos necessários, vamos criar um arquivo de configuração para este ambiente no Protheus 11. Usando um editor no Windows ou no Linux, crie um arquivo chamado appserver.ini, com o seguinte conteúdo:

[general]
consolelog=1

[drivers]
active=tcp

[tcp]
type=tcpip
port=11010

[envp11]
sourcepath=/totvs/protheus11/envp11/apo
rootpath=/totvs/protheus11/envp11
startpath=/system/
rpodb=top
rpolanguage=por
rpoversion=110
localfiles=ctree

[dbaccess]
database=mysql
alias=envp11
server=localhost
port=7890

Este arquivo deve ser criado e/ou copiado para a pasta ‘/totvs/protheus11/bin_131227a/appserver64‘. Caso você já tenha um DBAccess com um banco de dados vazio configurado em uma máquina Windows, você pode apontar para ele. Esta sugestão de configuração já prevê o próximo post da sequência, onde vamos instalar um mysql e um DBAccess 64 bits no Linux, com unixodbc e tudo.

Nos testes atuais, eu subi um MSSQL Express na minha máquina Windows, usando um DBACcess Windows, e usei as seguintes configurações:

[dbaccess]
database=mssql
alias=envp11sql
server=192.168.1.63
port=7890

Para subir o Protheus Server em modo console no terminal Linux, entre na pasta /totvs/bin_131227a/appserver64, e use o comando:

./appsrvlinux

APPServer Linux 64

Agora, com todos os arquivos corretamente copiados para as devidas pastas no ambiente Linux, use um SmartClient da mesma Build, instalado na sua máquina Windows, edite o arquivo smartclient.ini, para criar uma nova conexão TCP para o Protheus Server no Linux, por exemplo:

[tcpubuntu14]
server=192.168.1.50
port=11010

Inicie seu SmartClient no Windows, utilizando os seguintes parâmetros:

Smartclient Win

Ao confirmar o início da aplicação, se tudo der certo, você deve ver uma tela rapidinha com uma mensagem “convertendo arquivo de senhas” e logo após uma tela de escolha de tema, parecida com a tela abaixo:

Smartclient Temas

As primeiras etapas de instalação do ERP, como por exemplo a criação do arquivo de Helps, é bem lenta no Linux. Quando eu digo que é lento, acredite em mim…

Isto é bem mais rápido, mesmo no Linux, quando usamos um c-Tree Server para controle dos dicionários. Também teremos um post exclusivo dedicado a esta etapa, onde inclusive vamos instalar o c-Tree Server nesta VM, e fazer os ajustes necessários no appserver.ini para passar a usá-lo.

Por padrão, os dicionários e arquivos locais de dados no Protheus Server usam o c-Tree. Como nesta instalação não foi instalado e configurado um c-Tree Server, o Protheus assume a utilização do driver local do c-Tree, chamado de “c-Tree Local”, que já vem distribuída junto com o binário do Protheus Server (arquivo libctreestd.so).

Usando o Protheus com o c-Tree BoundServer

Quando temos uma instância única de Protheus Server, podemos também fazer uma alteração simples e muito eficaz: Usar o “c-tree Server DLL” (ou c-Tree BoundServer) neste ambiente … É extremamente simples, mas você somente pode ter um único serviço de Protheus Server configurado para acessar este ambiente: Você edita o appserver.ini (sem que o Protheus Server esteja em execução), e na seção [general], acrescenta a chave:

ctreemode=boundserver

Ao subir novamente o Protheus Server, ele vai usar uma versão do c-Tree Server “embarcada”, que já vem junto do pacote de distribuição do Protheus Server, para ser o gerenciador dos arquivos, ao invés do c-Tree Local.

No meu ambiente de testes, a criação dos arquivos de help já tinha consumido mais de 20 minutos, e ainda não tinha concluído nem a metade … Derrubei o Protheus Server, que rodava em modo console, usando Control+C, e fiz a alteração acima.

Embora no momento de subir o Protheus Server, o c-Tree BoundServer tenha reclamado que faltava um arquivo de “Callback”, o serviço subiu no ar certinho. Utilizando o WINSCP, apaguei da pasta “system” o arquivo “sigahlp.hlp”, que não tinha sido criado completo, e entrei no ERP novamente usando o SmartClient no Windows.

Utilizando o c-Tree BoundServer, a atualização do arquivo de Help e a tela de entrada do ERP apareceram em menos de 30 segundos.

Após digitar usuário e senha, e na segunda tela confirmar a data do dia, e entrar no módulo configurador, na empresa 99 – Teste (criada automaticamente na entrada do sistema), é perguntado qual país de instalação do ERP. Escolha “Brasil” e prossiga. O resto do procedimento é padrão da instalação do produto: Após criar um ou dois dicionários, o ERP pergunta qual é a pasta de dados. Esta pergunta foi mantida por compatibilidade no instalador. Por compatibilidade, escolha a pasta “data”.Em poucos minutos a carga inicial é finalizada, e o menu do módulo configurador do ERP é mostrado na tela.

 

Observações sobre o c-Tree BoundServer

  • Pode ser usado para gerenciador dos dicionários no lugar do c-Tree Server tradicional, desde que apenas uma instância do Protheus Server acesse os arquivos do ambiente.
  • Possui licença subsidiada para até 64 conexões.
  • Por default, o c-Tree BoundServer distribuído junto dos executáveis do Protheus Server está configurado para não aceitar conexões TCP.
  • Existem mais detalhes a respeito, que serão abordados em posts dedicados a este assunto 😀

Conclusão

Para um serviço “stand-alone”, sem o SGDB na máquina Linux, já temos bastante coisa funcionando. Nos próximos posts a respeito, vamos ver como colocar um MYSQL nesta máquina Linux, junto com um DBAccess 64 bits, e conectar o Protheus Server neste banco.

Ainda não chegamos no ponto de usar mais de um serviço, ou mesmo balanceamento de carga … mas não se preocupem, chegaremos lá aos poucos 😀  Agradeço de novo a audiência de todos, e lhes desejo sempre TERABYTES de sucesso 😉

Até o breve próximo post, pessoal !!!

 

Protheus no Linux – Parte 01

Introdução

O TOTVS Application Server ( ou Protheus Server ), bem como o DBAccess e outros produtos da TOTVS, também possuem versões para serem instaladas em Servidores e Desktops com sistema operacional Linux. Neste primeiro post, vamos ver como preparar uma VM com Ubuntu Server para instalar um TOTVS Application Server.

O Linux

Vou pular toda a parte histórica deste sistema operacional, você encontra muito material sobre isso na Wikipedia. Existem atualmente várias distribuições gratuitas e inclusive pagas de Linux, desenvolvidas para uso geral ou para cenários e ambientes específicos, versões “Server” — para servidores dedicados de aplicações — e versões “Desktop” — para uso diário de aplicativos com interface gráfica e janelas, entre outras para uso embarcado em dispositivos, etc.

Estreitando o leque de aplicações para os produtos TOTVS Application Server e TOTVS SmartClient, existem versões e distribuições de Linux homologadas para uso destas aplicações. Como cada distribuição possui versões diferentes e alguns comportamentos distintos, atualmente apenas versões de Linux “Server” são homologadas para o Protheus Server, e versões Desktop são homologadas para uso do SmartClient. A lista de distribuições e versões homologadas está na TDN, atualmente no link http://tdn.totvs.com/display/tec/Plataforma+homologada+dos+produtos

Ubuntu Server

O Ubuntu Linux é uma distribuição muito conhecida do Linux, derivada do Debian Linux, muito prática para instalação e atualização de softwares através do administrador de pacotes “apt-get”. Bem documentada, mantida por uma grande comunidade, possui versões Desktop e Server. Embora (até o momento) nenhuma distribuição Ubuntu esteja oficialmente homologada para uso do TOTVS Application Server, é muito simples criar um ambiente de testes ou desenvolvimento nesta plataforma.

Nada impede o uso desta plataforma em um ambiente de produção, porém como não foi realizado nenhum procedimento de homologação oficial da TOTVS neste sistema operacional, em caso de problema técnico de uma instalação nesta plataforma, não há suporte.

Criando a VM

Peguei uma ISO do Ubuntu Server no site oficial do Ubuntu, especificamente a versão “Ubuntu Server 14.04.4 64 Bits”. ( arquivo “ubuntu-14.04.4-server-amd64.iso”, disponível em http://releases.ubuntu.com/trusty/ ) . Criei uma VM usando um VMWare Player (versão gratuita para fins não-comerciais), com 32 GB de disco, 2 GB de RAM, 2 Cores, e uma interface de rede “Bridged — para a minha VM ter acesso a Internet.

VM Details

Instalando o Ubuntu Server 64

Inicialmente, você baixa a ISO de instalação no seu HD, e configura o Drive de CD da VM para iniciar com o disco montado. Ao iniciar a VM, aparece a tela de seleção de idioma de interface. O Ubuntu já tem a portabilidade para português do Brasil, eu particularmente gosto de usar o S.O. em Inglês mesmo.

Após escolher o idioma pressionando <enter>, será mostrada a tela inicial de setup. Para escolher a instalação mínima de sistema, pressione F4. Será mostrado um pop-up com algumas opções, selecione com as setas a opção “Install a minimal system”, pressione Enter para confirmar a escolha. Feito isso, pressione <Enter> novamente para iniciar a instalação do Ubuntu Server. Escolha agora o idioma de instalação (English, please…)

Na próxima tela, informe onde você está. Vamos informar que estamos no Brasil mesmo. Selecionamos “Other” na escolha de território. Na tela seguinte, escolhemos “South América” … E, finalmente, “Brazil”. Na configuração de “Locale”, pode deixar United States mesmo. Agora o instalador pergunta se você quer detectar o modelo do seu teclado mediante alguns testes de teclas, ou se você quer escolher o modelo por uma lista. Recomendo usar o assistente, é bem simples. Após escolher o teclado, será executada uma etapa preparatória rápida, e em seguida será perguntado o nome no host para esta máquina. Eu chamei a minha de “ubuntu14” mesmo.

Depois, é perguntado o nome completo do usuário da máquina. Na sequência, é perguntado o nome desse usuário para identificá-lo no sistema operacional. No meu caso, “siga0984”. E, na sequência, é solicitada uma senha e confirmação de senha para o usuário criado. Na próxima tela, o instalador pergunta se você quer criptografar a sua pasta “home”. Estamos fazendo uma VM de servidor … não precisa criptogtafar a “home”. Agora, o instalador tenta pegar a data e hora atuais na Internet, e determinar sua localização. Normalmente ele acerta, basta confirmar onde você está (Time Zone) . E, na última parte, vêm o setup do disco. Vamos pra opção mais simples, “Guided – Use entire disk”.

Na sequência, o instalador mostra as escolhas realizadas para a partição de disco. Como a nossa VM têm apenas um HD virtual, basta selecioná-lo. E, na sequência, na próxima tela, o Linux já sugere as configurações finais, basta selecionar <Ok> e prosseguir. Ao confirmar esta etapa, começa efetivamente a instalação do Ubuntu Server. Após a cópia de alguns arquivos, o Ubuntu pergunta se você está usando Proxy, para configurar o “Package Manager” – através dele podemos atualizar de forma muito fácil o sistema operacional. Se vão está sendo usado nenhum proxy, deixamos o campo em branco e apenas teclamos <enter> para continuar.

Após um ou dois minutos configurando os pacotes e instalando o sistema, o instalador pergunta se você quer manter a sua instância atualizada automaticamente. Normalmente eu escolho “não”. Eu atualizo minha VM quando eu precisar ou quiser uma atualização. E, finalmente, a tela que todos esperamos: O que nós queremos de Software na nossa instalação ? Bem, para usar o Protheus e ter um acesso legal na VM, não precisamos mais do que as duas primeiras opções. Selecione-as com as setas e pressione a barra de espaços para marcar ou desmarcar.

A última pergunta é se você quer instalar o gerenciador de boot ( GRUB loader ) na sua VM … bem, eu nunca deixei de instalar, mas não deve fazer diferença alguma para um ambiente de testes virtualizado. E, em poucos instantes, o instalador informa que está tudo pronto, e você pode reiniciar a máquina ! Basta pressionar <enter> para continuar. Após a VM reiniciada, o boot já foi feito pelo HD da VM, e o Ubuntu pergunta pelo seu usuário. Informe o usuário que você criou na instalação, pressione <enter>, depois a senha, enter novamente. Pronto ! Bem vindo ao seu Ubuntu Server 64 bits !

Ubuntu 14 Start

Preparação do Sistema Operacional

Agora, de posse da nossa VM, vamos aplicar as atualizações de sistema operacional desde a distribuição desta versão… Para isso, digite no prompt de comando:

sudo apt-get update

Logo na execução, será perguntado novamente a senha do usuário atual. Mesmo que você já esteja logado, o comando “sudo” serve para executar uma instrução com permissões de “root” ou Super User do Linux. Logo, no primeiro uso, ele vai te pedir novamente a senha do seu usuário … Este comando vai atualizar a lista de pacotes de updates disponíveis nos sites oficiais do Ubuntu. Feito isso, execute o comando abaixo, para instalar as últimas atualizações das aplicações instaladas no seu ambiente:

sudo apt-get upgrade

Caso exista alguma versão nova a atualizar, a aplicação pergunta se você quer atualizar ou não. Digite Y e pressione ENTER para confirmar a atualização. O processo de atualização via fazer download e instalação automática dos pacotes de aplicativos do sistema operacional instalados no seu ambiente, automaticamente.

Terminada esta atualização, vamos aproveitar e instalar alguns pacotes, que serão necessários para etapas posteriores. Inicialmente, vamos instalar o “unzip”, usando o comando abaixo:

sudo apt-get install unzip

Para permitir um acesso via rede para a VM, e inclusive para usar um SFTP ( Secure FTP ) para transferir nossos arquivos e binários do Protheus para dentro da VM, precisamos saber qual é o IP dela na rede. Para isso, usamos o comando abaixo:

ifconfig

Ao ser executado, ele mostra as interfaces de rede da máquina. Uma delas deve ser a eth0, que tem um endereço IPV4 e outro IPV6. Vamos usar o IPV4, destacado em vermelho na imagem abaixo:

Ubuntu 14 ifconfig

Recomendo que você instale na sua máquina Windows um “Putty” e um “WINSCP”, para acesso via Telnet/SSH (Terminal) e acesso ao sistema de arquivos (SFTP), respectivamente. O acesso via Putty, ao invés de acessar pela janela do Host da VM, permite operações como copiar e colar texto entre o terminal da VM e a máquina Windows, você pode abrir mais de um terminal do Putty ao mesmo tempo na mesma máquina, etc… E, finalmente, para a última etapa de preparação, vamos “esticar” um pouco os limites de handles por aplicação do sistema operacional. Isto será necessário posteriormente para subir o APPServer.

Use o comando abaixo para editar o arquivo /etc/security/limits.conf:

sudo vi /etc/security/limits.conf

O editor “vi” não é muito amigável para quem está acostumado com editores visuais, mas quando a tarefa é apenas inserir duas linhas no final da tabela, não é tão difícil. Basta usar as setas para chegar ao final do arquivo, apertar a tecla [ESC], seguido da tecla I (maiúsculo, para entrar no modo de inserção de texto), e acrescentar as linhas abaixo:

* soft nofile 32768
* hard nofile 32768

Com isso, aumentamos para 32768 os limites de handles para todas as aplicações desta instalação de sistema operacional. Para salvar o arquivo, pressione ESC para acessar o prompt interno do editor, então digite a string “wq!” ( sem as aspas ) e pressione <enter>. Isto fará com que o arquivo seja salvo, com o novo conteúdo agora editado, e o editor de textos seja finalizado.

Ubuntu 14 Linuxconf

Feito isso, vamos reiniciar a VM usando o comando abaixo:

sudo reboot now

Após reiniciar a VM, confirme se o IP da VM continua o mesmo ( usando o comando ifconfig ), e faça o setup de uma conexão de terminal para a sua VM usando o Putty, e uma conexão SFTP usando o WINSCP. Ambas as conexões são SSH.

Conclusão

Nesta primeira etapa, finalizamos a criação de uma VM 64 bits com Ubuntu Server, deixando ela praticamente pronta para receber um TOTVS Application Server, um DBAccess 64 bits, um c-Tree Server 64 bits, e afins. No próximo post da sequência do Protheus em Linux, vamos abordar os detalhes da instalação de um TOTVS Application Server nesta VM 😉

Saudações a todos, desejo a vocês TERABYTES de sucesso 😀