REMF

Minha imagem com ferramentas de acesso cloud

Authors: Roan Franklin Fri 25 February 2022

kubernetes terraform

Preciso acessar Cliente XXX, Cliente YYY, Minha conta AWS, o Kubernetes de AAA ou CCC. Para isso, eu fazia sempre direto no meu usuário, modificando as configurações sempre. Então tive a brilante idédia de crei uma imagem em docker com algumas ferramentas para o uso em Cloud e que ficasse com as configurações salvas dentro daquele diretório.

Mas porque eu fiz isso?

Resposta: Não misturar dados de XXX com YYY, ou com o da minha conta. Sei que existe a configuração de profile, mas como informei, tem alguns dados de cada conta, que precisava ficar totalmente separado e essa foi minha solução! rsrs

Imagem base

  • Ubuntu 20.04

Inicialmente estava utilizando a imagem k8s, porém ele era baseado no alpine que por sua vez, utiliza o gerenciado de pacotes pkg. Então precisei instalar o postgresql na versão 11 e não estava rodando normal. Foi aí que mudei para a imagem base do ubuntu.

Ferramentas instaladas na imagem

  • awscli-v1
  • ecscli
  • kubectl
  • helm
  • ansible
  • terraform
  • mysql 5.7
  • postgresql 11

Instalação / Configuração

git clone https://github.com/roanfranklin/remf_cloudtools.git
cd remf_cloudtools
docker build -t roanfranklin/cloudtools:latest .
sudo cp remf_cloudtools.sh /usr/local/sbin/
sudo chmod +x /usr/local/sbin/remf_cloudtools.sh

OBS.: Se você mudar o nome da imagem na criação da mesma, terá que editar o arquivo/script remf_cloudtools.sh.

Usabilidade

Vamos suporte que vocẽ tenha uma conta XXX. Então, você criar um diretório XXX em ~/Documentos. Depois entra no diretório XXX e executa o script remf_cloudtools.sh. Ele irá perguntar se vocẽ quer criar os diretórios e arquivos padrões pra acessar o container.

OBS.: Note que ao entrar no container, o hostname ser o nome do diretório. Então o diretório criado não pode conter espaço, nem caracteres especiais.

Informação

  • O container cria um usuário chamado remf, sem senha e o UID e GID será o 1000.
  • O diretório data na máquina real, será bind/linkada no diretório projects dentro do container. Então tudo salvo destro de projects, poderar ser vista no data da maquina real e vice-versa.
  • Outros diretório bind/linkados são .aws, .kube, .ssh, .docker e o arquivo .bash_history, que ficam no diretório do usuário, no caso /home/remf/.

Importante

O mais interessante é que você pode abrir, ou executar quantos container vocẽ precisa do mesmo projeto ou de outros!