Variáveis de Ambiente no Jelastic

Variáveis de ambiente são um conceito fundamental para a execução de qualquer sistema Unix-like. Através delas é possível definir muitas das configurações essenciais, tanto para o sistema (tais como paths e versões específicas de runtimes) quanto para a execução de suas aplicações.

Lembre-se sempre que variáveis de ambiente estão acessíveis dentro do escopo global do sistema operacional e, por mais que seu container seja seguro e isolado dos outros, é uma boa prática jamais colocar chaves de API, token secrets, senhas ou qualquer outro conteúdo sensível em variáveis do sistema, pois qualquer usuário que tenha acesso ao ambiente terá acesso a essas variáveis e, consequentemente, ao seu conteúdo.

Criando um arquivo para armazenar suas variáveis de ambiente

O primeiro passo é realizar um acesso SSH no ambiente de cloud para o qual você deseja criar uma variável de ambiente. Se você não sabe como utilizar o SSH no Jelastic, aproveite para conferir o episódio 2 do TecnoPapo, sobre este tema.

Uma vez dentro do nó e com acesso ao console, você estará na pasta HOME do seu container dentro do Jelastic. Exatamente nesta pasta, você deve criar um arquivo .bash_profile com as variáveis Bash que a sua aplicação precisa para que o sistema tenha condições de executá-la. Minha opção recai sempre sobre o vim, mas o nano também está disponível.

Alterando o fuso horário do sistema

Como exemplo, mostraremos como alterar o timezone do sistema utilizando uma variável de ambiente para realizar a tarefa. A vantagem dessa abordagem é que você não necessita de acesso root para realizar a mudança.

Se utilizarmos o comando date, veremos a data e horário atual do sistema:

$ date
Fri Jul 17 00:24:37 UTC 2015  

O UTC acima indica o timezone utilizado; neste caso, Universal Time Coordinate, ou o mesmo fuso horário do meridiano de Greenwich. Caso sua aplicação pegue o horário do sistema, teremos uma resposta semelhante a esta. Como estamos em um ambiente com NodeJS, utilizaremos a função Date do JavaScript, mas poderíamos usar o método Time.now do Ruby ou funções equivalentes em outras linguagens:

$ node
> var hora = new Date()
undefined  
> console.log(hora)
Fri Jul 17 2015 00:24:52 GMT+0000 (UTC)  

Para alterarmos o timezone do nosso sistema, basta criar a variável abaixo e exportá-la para o sistema:

TZ=America/Sao_Paulo; export TZ  

Se repetirmos o procedimento anterior, veremos que a hora informada pelo Node.js mudou, assim como o fuso horário, que passou a ser GMT-3:

$ node
> var hora = new Date();
undefined  
> console.log(hora)
Thu Jul 16 2015 21:26:13 GMT-0300 (BRT)  

O comando date também exibirá o horário atualizado:

$ date
Thu Jul 16 21:27:10 BRT 2015  

Para tornar a modificação permanente, basta colocar a linha utilizada no arquivo .bash_profile criado:

TZ=America/Sao_Paulo; export TZ  

Se você não souber qual o nome do timezone que você deseja utilizar, basta executar o utilitário tzselect. Ele apresentará um menu com a hierarquia dos continentes e ao final do processo, dirá qual o valor que você deve atribuir a variável TZ.

Gostou? Então não deixe de compartilhar o conteúdo e deixar um comentário para a gente.