Action.Net no Linux
O artigo mostra como instalar e utilizar algumas das funcionalidades do Action.Net no linux, começando com a preparação do ambiente até a execução de módulos do produto. Este artigo se baseia no uso de uma máquina virtual Debian i386. No entanto, todos os passos descritos podem ser utilizados em outras distribuições linux tanto em máquinas virtuais como em físicas e em dispositivos Raspberry Pi.
Atenção: Os comandos de instalação apresentados neste documento podem variar de acordo com a distribuição Linux utilizada pois cada distribuição utiliza um package manager específico. Por exemplo, no Debian e no Ubuntu é utilizado o apt, no Arch e Manjaro é utilizado o pacmac e no Fedora é utilizado o dnf.
Atenção: Este artigo é baseado em testes em máquinas virtuais linux, utilizando o Oracle VM VirtualBox como virtualizador. Embora seja possível utilizar o Microsoft Hyper-V e o VmWare Workstation, todas as imagens neste artigo referem-se ao VirtualBox. Para aplicar configurações específicas aplicadas aqui, em outros virtualizadores, refira-se ao manual de uso dos mesmos.
Conceitos iniciais
O ambiente Linux é diferente de outros sistemas operacionais como o Windows ou o Mac OS. É necessário entender alguns conceitos para conseguir fazer a configuração do Action.Net neste sistema operacional. Neste item, abordaremos alguns destes conceitos. Sinta-se à vontade para pular este item e retornar apenas quando tiver alguma dúvida.
A seguir seguem alguns conceitos:
Linux - Sistema operacional que utiliza o Kernel Linux, criado por Linus Torvald.
Distribuições - São implementações diferentes do sistema sendo executadas sobre o Kernel Linux. Temos distribuições Major que são distribuições mais estáveis, com um bom time de desenvolvimento por trás, assim como Ubuntu, Debian, Slackware, Fedora (ex-Red Hat), OpenSuse, CentOs, Arch, Alpine, Mint, Gentoo e FreeBsd. Também temos distribuições Minor que podem ter equipes menores de desenvolvimento por trás e que derivam das distribuições major. Por exemplo, Kubuntu e Neon derivam do Ubuntu, Manjaro deriva do Arch, entre outras.
Interface Gráfica - Cada distribuição, quando desenvolvida, pode utilizar uma ou outra variação de interfaces gráficas, que são desenvolvidas de forma modular para se adequar às distribuições. Entre as interfaces gráficas disponíves e de maior sucesso estão o KDE e o Gnome. O KDE é uma interface mais parecida com o Windows e o Gnome é uma interface criada mais recentemente e com elementos visuais diferentes. Entre outras interfaces, podemos citar o Unity (utilizada pelo Ubuntu), Mate, Cinnamon, Xfce, entre outras.
Terminal de comandos - O terminal de comandos do Linux é uma ferramenta poderosa e, muito utilizada pelos usuários. Tanto leigos quanto experts no sistema operacional acabam utilizando esta ferramenta para todas as suas necessidades. Nas buscas por dúvidas relacionadas a utilização das distros, a grande maioria de soluções envolve a utilização do terminal. Adicionalmente, inúmeras são as aplicações que utilizam apenas o terminal do Linux e sequer instalam uma interface gráfica. Esta é uma ferramenta que será muito utilizada neste artigo.
sudo - Refere-se ao super usuário (administrador) do sistema operacional. Este tem permissões ilimitadas dentro do sistema. Inúmeras distribuições Linux adicionam usuários ao sistema operacional sem permissões durante a instalação do sistema.
Gerenciamento de Pacotes - No Linux, a instalação de novos aplicativos ou módulos de sistema é feita, na grande maioria das vezes, a partir de um gerenciador de pacotes do sistema. Cada distribuição utiliza um gerenciador de pacotes específico. Por exemplo, no Debian e no Ubuntu é utilizado o apt, no Arch e Manjaro é utilizado o pacmac e no Fedora é utilizado o dnf.
Já existem inúmeros gerenciadores de pacotes visuais, pré-instalados pelas distribuições. Todavia, o mais comum é utilizar o terminal para fazer a instalação e a atualização de pacotes.
Configurando o ambiente
Criação de máquina virtual
Inicialmente, é necessário baixar uma imagem ISO de alguma distribuição Linux e criar uma máquina virtual utilizando esta imagem. É possível criar VMs linux em qualquer hiper-virtualizador capaz de executar o sistema operacional como o VirtualBox, Hyper-V, VmWare, ProxMox, Zen Server, etc…
Após baixar a imagem, configure uma nova VM de acordo com o manual de utilização do seu virtualizador. Para este artigo específico, criamos uma máquina virtual Debian, plataforma i386, com 8Gb de memória, 4 processadores virtuais e 100Gb de armazenamento (dinamicamente alocável). Outros testes também foram realizados utilizando Linux Ubuntu, plataforma x64 e com as mesmas especificações anteriores de recursos e com resultados idênticos.
Atribuir permissões ao usuário
Muitas distribuições Linux, por padrão, adicionam um usuário para acesso ao sistema sem as permissões de administração necessárias para instalação e atualização de pacotes de software e de sistema. Esta é uma política de segurança utilizada por estes sistemas operacionais.
Para adicionar um novo usuário ao grupo de administração sudo, abra o terminal de comandos do seu linux.
Para fazer o login no terminal com o superusuário, execute o comando:
Em seguida execute o comando a seguir para atribuir ao usuário criado privilégios de super usuário, substituindo a entrada <usuario> pelo nome do usuário criado na instalação:
Em seguida, reinicie o sistema operacional para que as configurações sejam aplicadas.
Atualização do sistema operacional
Como boa prática, é necessário atualizar o sistema operacional e seus módulos antes de instalar um novo pacote, como o Mono ou o Net-Tools.
Execute os seguintes comandos em sequência e confirme a atualização caso o terminal peça confirmação (digitando “Y”).
Caso o Linux solicite a reinicialização do sistema, reinicie-o e depois execute os próximos passos.
Instalação do Net-tools
O pacote net-tools instala o comando ifconfig para visualização do endereço IP da máquina, entre outros comandos.
Execute o comando a seguir para instalar o net-tools
Caso o Linux solicite a reinicialização do sistema, reinicie-o e depois execute os próximos passos.
Instalação do Mono
O que é o Mono?
O pacote mono é o pacote que executa aplicativos .Net em várias plataformas.
Para explicar melhor o que é o Mono e qual sua participação dentro do ecosistema da plataforma .Net, o melhor é fazer uma diferenciação entre ele e as demais implementações do padrão .Net Standard. O padrão .Net Standard é um padrão open source criado pela Microsoft para implementar as funcionalidades da plataforma .Net. Qualquer desenvolvedor (ou time de desenvolvedores), pode implementar este padrão. Dentre as iniciativas que já tiveram este trabalho, temos o .Net Framework, o Mono e o .Net Core.
O .Net Framework é uma implementação da própria Microsoft de todo o .Net Standard que provê uma grande variedade de funcionalidades para operação em ambientes Windows em Workstations, Server e na nuvem. É a implementação original do .Net.
O Mono é uma implementação open source, multi-plataforma do .Net Standard com apenas o essencial para executar aplicações .Net em diferentes sistemas operacionais como Android, IOS e com boa aceitação para o Linux. É uma implementação mais antiga se comparada com o .Net Core.
O .Net Core é uma implementação recente (a partir de 2014) do .Net Standard. É open source e multi-plataforma assim como o Mono. Criada para a era da Nuvem e com uma maior compatibilidade com o .Net. É suportada em diferentes sistemas operacionais como o Linux, MacOs e Windows.
Instalação do mono no Debian
A seguir será mostrado como instalar o Mono na distribuição Debian. Todavia, o Mono é compatível com diversas distribuições Major como o Ubuntu, Fedora, Raspbian e CentOs. Para informações de como instalar o mono para estas distribuições, bem como de mais informações sobre este pacote, clique no link abaixo para visitar a página do projeto Mono.
Para instalar o mono no debian, inicialmente é necessário adicionar seu repositório ao sistema operacional. Execute o seguinte comando:
Após a adição do repositório, é possível instalar o pacote executando o seguinte comando:
Após a instalação, é possível verificar se o Mono foi realmente instalado com o comando de verificação de versão do mesmo:
Este comando deve trazer a versão do mono recém instalada. Caso contrário, tente instalar novamente seguindo o passo a passo do site do projeto mono a partir do link acima.
Configuração da rede
No caso de uso de máquinas virtuais, é importante utilizar comutadores de rede em modo Bridge. Caso contrário, alguns erros ocorrem quanto a utilização do Action.Net em algumas portas específicas.
No VirtualBox, desligue a máquina virtual, clique no botão de configurações da máquina e, na seção Network, certifique-se que o adaptador de rede utilizado está conectado à placa de rede em modo Bridge.
Em seguida, inicie a máquina virtual novamente.
Instalação do OpenSSH
É necessário instalar o OpenSSH no Linux para fazer a transferência de arquivos do Action.Net do Windows para o Linux.
Execute o seguinte comando para instalar o OpenSSH:
Copiar arquivos do Action.Net
Compactar pasta IoT
Inicialmente, é necessário criar um arquivo tipo .zip contendo a pasta IoT da versão desejada do Action.Net. Esta pasta está localizada na pasta de instalação do produto no Windows (normalmente em C:\Program Files (x86)\SPIN\Action.NET).
Em uma máquina Windows que tenha o Action.Net instalado, abra o gerenciador de arquivos, procure a pasta IoT e a compacte em um arquivo tipo .zip. Caso queira, copie o arquivo para qualquer outra pasta desejada.
Copiar arquivo compactado para o Linux
Em seguida, abra o terminal do windows, navegue até a pasta onde está o arquivo .zip criado e execute o seguinte comando para copiar o arquivo do Windows para o Linux, substituindo os parâmetros descritos abaixo:
Onde:
<username> - usuário do linux com permissões super;
<ip> - ip da máquina linux; e
<folder> - pasta no linux onde o arquivo será copiado.
Exemplo:
Movendo arquivos no Linux
Caso seja necessário mover um arquivo no Linux, é possível utilizar o comando mv sourceFile DestinyFile
.
Exemplo:
Descompactar arquivos no Linux
Em seguida, é necessário descompactar o arquivo copiado. Para realizar esta operação no Linux, utiliza o seguinte comando unzip Iot.zip
.
Executando aplicativos Action.Net no Linux
Para executar qualquer projeto no Linux, é necessário inicialmente criar um projeto do tipo Linux no Action.Net que está instalado no Windows e, em seguida, copiá-lo.
Na tela inicial do Action.Net, clique em New Project para abrir o Wizard de criação de projetos. Asim que o wizard abrir, escolha um nome e selecione a opção Linux / Mono no Target Framework.
Após criar o projeto e fazer todas as configurações necessárias no novo projeto, é necessário copiá-lo para o Linux. O Action.net faz esta cópia nativamente, no entanto, é necessário executar o tProjectServer no Linux.
TProjectServer.exe
Para executar o TProjectServer pelo terminal do Linux, primeiro navegue para dentro do diretório “Iot/ProjectServer” com o comando cd IoT/ProjectServer
a partir da pasta inicial do usuário.
Em seguida, execute o comando mono para inicialização do TProjectServer utilizando permissões de super usuário:
Após a execução do comando, a tela do ProjectServer para Linux é mostrada e a mensagem “ProjectServer: Waiting client connections…” é mostrada no terminal.
Licenciando o Action.Net no linux
Para executar os aplicativos do Action.Net no linux, também é necessário licenciá-lo.
A partir do Project Server executando no linux, clique no botão Get, localizado ao fundo do aplicativo à esquerda, para gerar o Sitecode.
O processo de geração do licensekey é o mesmo para a instalação do Action.Net. Para dúvidas quanto a este processo, acione o suporte da SPIN pelo email do suporte SPIN.
Para aplicar o license key recebido, é possível fazer de duas formas:
1- Fazendo o download do arquivo no linux, clicando no botão Apply, localizado ao lado do botão Get mencionado anteriormente e selecionando o arquivo da licença; ou
2- A partir da tela inicial do Action.Net na máquina Windows, abrir a aba Server e informar o IP do linux. Em seguida, abrir a aba License e clicar no botão Load License key. O Action.Net irá aplicar a licença à máquina linux remota.
Copiando projetos para o Linux
O Action.Net tem uma funcionalidade de cópia de arquivos e projetos para o linux nativa da ferramenta. Esta funcionalidade pode ser acessada a partir da aba Server da tela inicial do produto.
Insira no campo Remote o endereço IP da máquina Linux e clique no botão Connect.
Após conectar, a tela apresenta os botões Update e Upload Project.
O botão Update faz a cópia de arquivos da pasta C:/InstallFolder/Action.Net/an-x.x/Iot/
para o Linux. É usado para atualizar arquivos do produto entre o Windows e o Linux.
O botão Upload Project faz a cópia de projetos (.tproj) para o linux. Após clicar este botão, selecione o projeto que deseja enviar. Em seguida, a tela de confirmação de local a copiar é mostrada. Confirme o local e o Action.net irá copiar o projeto para a pasta.
Executando projetos
É possível executar projetos enviado ao linux a partir da tela do ProjectServer para o linux.
Inicialmente, clique no botão Projects… e selecione o projeto desejado. O projeto selecionado é mostrado no campo Project Startup Settings.
Em seguida, execute o projeto clicando no botão Run. O ProjectServer irá executar o tStartup e o tServer e executar todos os módulos configurados para execução do projeto.
Outros processos
TMQTTBroker.exe
Para executar o Mqtt Broker, no terminal do Linux, navegue para dentro do diretorio IoT/Runtime e rode o TMQTTBroker.exe com o mono usando o seguinte comando:
Nesta pagina: