Wednesday, February 24, 2016

Orquestração de Docker - Rancher Server

Rancher Server

Os passos a seguir irão descrever os procedimentos para instalar e configurar um server.

Como dito no post anterior o Rancher Server já tem a sua imagem Docker criada e por isso só é necessário realizar o pull da imagem ou executar diretamente o container com as seguintes opções:
  •        -d => O Container vai ser executado em background ;
  •       -p 8080:8080 => Porta que o container e o hosts irão se comunicar e a porta que parte gráfica será executada
  •        rancher/server => Imagem do Rancher Server

Rancher UI

Através de um navegador é possível acessar a interface gráfica do Rancher e navegar através dos recursos oferecidos. O endereço é http://localhost:8080 caso você esteja utilizando Linux, no caso do MAC e Windows é preciso substituir  o localhost pelo endereço IP do Docker Machine que esta executando o container.



Usuário


Existem várias opções no server para realizar a autenticação do usuário, como Active Directory, Github, Local e OpenLDAP. O processo descrita a seguir é para a criação de um usuário local.

1 - Seguir o fluxo de ADMIN => ACCESS CONTROL => LOCAL ou acessar a URL http://IP_DOCKER_OU_LOCALHOST:8080/admin/access/local
                                      

2 - Inserir os dados correspondentes do usuário e após a inserção clicar em Enable Local Auth.


3 – Na opção ACCOUNTS é possível visualizar todos os usuários existentes no sistema.



4 -  Com os usuários criados uma página de Login se torna a primeira página do sistema.




Orquestração de Docker - Rancher


Quando se planeja em utilizar Docker nas nuvens ou em ambiente de produção, a primeira coisa que precisa ser analisada é sobre o seu gerenciamento. Atualmente existem vários sistemas com esse propósito, abaixo é listado alguns deles:
Nesse post irei falar um pouco sobre o Rancher Labs e alguns produtos gerados por essa startup de Cupertino. A startup se preocupa com o desenvolvimento de um pacote de produtos que facilitem a manutenção e gerenciamento de containers e serviços.

RANCHER OS



Em ambientes de produção é comum a instalação de versões “server” de distribuições Linux. Elas contam somente com pacotes e libs básicas com foco na leveza do sistema e controle de instalações por parte do administrador.

Mesmo essas distribuições contendo o “básico” elas ainda contém elementos sem utilidade para um ambiente onde somente containers serão utilizados. Pensando nisso foi desenvolvido o  Rancher OS, uma distribuição Linux com apenas 20mb, contendo somente o Docker pré-instalado e o que é realmente preciso para o seu funcionamento.

Links 


RANCHER

O sistema de orquestração Rancher e seus componentes foram criados em Docker, assim facilitando o processo de instalação. Alguns dos recursos oferecidos, são:
  •  Criação e gerenciamento de containers existentes em mais de um computador, seguindo o conceito de server e host;
  • Criação de serviços(mesma ideia do docker compose) com a opção de escalonamento;
  • Seleção automática de hosts que irão conter o container desejado;
  • Balanço de carga

     Links




Friday, February 19, 2016

Juntar Arquivos Com Python

CONTEXTO

Como parte de uma tarefa era necessário executar um script em todos os diretório de um projeto, analisar os relatórios gerados e no final unifica-los em um arquivo mas mantendo a integridade dos arquivos originais.

O relatório gerado era no formato CSV. Como eram mais de 20 diretórios, consequentemente foram obtido mais de 20 arquivos CSV para serem analisados e concatenados.

Essa tarefa de abrir cada CSV com o Calc para copiar e colar em um outro arquivo além de trabalhosa tem um grande risco de ocorrer erros, pois existe a possibilidade de copiar o mesmo arquivo mais de uma vez e também de esquecer de adicionar algum.

Com esse escopo foi criado o JoinFiles. Esse script é executado pelo terminal utilizando como parâmetro o path do diretório onde estão os relatórios e o nome do novo arquivo que será criado.

USO

$ python join_files.py -h
usage: join_files.py [-h] -p PATH [-f FILE]
optional arguments:
-h, --help show this help message and exit
-p PATH, --path PATH  Directory Path
-f FILE, --file FILE  New file name

EXEMPLO

Em um cenário hipotético foram criados dois arquivos, one.csv e two.csv, ambos no path: /home/user/files_to_join
ARQUIVO
CONTEÚDO
one.csv
1;1;1;1;1
two.csv
2;2;2;2;2

Com a execução do script um novo arquivo foi criado unindo o conteúdo de ambos csv.

$ python join_files.py -p /home/user/files_to_join -f new.csv

$ cat new.csv
1;1;1;1;1
2;2;2;2;2