Skip to content
devcoder39Public

About

project for all virtual machines environment

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Simple Development Environment

Construye tu ambiente de desarrollo de una manera facil

Ansible Vagrant Ubuntu Docker Kubernetes Visual Studio Code Shell Script

El objetivo de este repositorio es poder crear maquinas virtuales y aprovisionarlas con herramientas como docker, CRI-O y K8S para facilitar la creaci'on de un ambiente de desarrollo con las heramientas necesarias!

Instalacion

El siguiente comando es valido para ArchLinux y derivadas:

valida la forma de instalarlo en tu distribucion de preferencia

sudo pacman -S vagrant \
               ansible  \
               virtualbox \
               virtualbox-host-modules-arch \ 
               linux-headers
git clone https://github.com/wortiz1027/vagrant.git && cd vagrant

Creacion y Aprovisionamiento

vagran es la raiz del proyecto y dentro existen 2 directorios para crear y aprovisionar maquinas para docker y k8s, debes escoger que clase de maquina quieres crear/aprovisionar y ejecutar el siguiente comando:

vagrant up

Configuracion

  1. Ambiente Docker
cd vm_docker

Una vez creada la maquina y aprovisionada si lo que deseas es acceder desde la maquina host ejecuta en la maquina virtual el siguiente comando:

sudo dockerd -H unix:///var/run/docker.sock -H tcp://<remote-ip-address> &

esto para exponer el socket del deamon de docker de la VM remota. y en la maquina host solo tienes que descrgar el cliente docker e instalarlo y puedes ejecutar docker hacia la VM remota:

docker DOCKER_HOST=tcp://<yout-vm-ip-address>:<vm-docker-port> ps -a

pero si no quieres tener que tipear la variable DOCKER_HOST cada que ejecutas un comando de docker puedes exportarla:

export DOCKER_HOST=tcp://<yout-vm-ip-address>:<vm-docker-port>

1.1 Development Environment

La idea de aprovisionar una maquina con docker es poder tener un ambiente listo para desarrollar. En el archivo docker-compose.yaml agrego un listado de servicios/aplicaciones implesindibles, entre las que destaco:

Component Image Version
docker-socket-proxy tecnativa/docker-socket-proxy latest
watchtower containrrr/watchtower latest
dozzle amir20/dozzle latest
traefik traefik v3.0.0-beta5
portainer portainer/portainer-ce latest
whoami containous/whoami latest
postgres postgres latest
mysql mysq latest
mongo mong latest
redis redis latest
pgadmin dpage/pgadmin4 latest
mongo-express mongo-express latest
payara payara/server-full latest
keycloak quay.io/keycloak/keycloak latest
jaeger jaegertracing/all-in-one latest
otel otel/opentelemetry-collector-contrib latest
prometheus prom/prometheus latest
...

en el archivo boostrap.sh se crean un conjunto de certificados para aprovechar las capacidades de traefik y que nuestro ambiente esté bajo un entorno seguro, para esto se hacer uso de mkcert para simular una CA Authority y al momento de navegar desde el navegador por las aplicaciones no tener la alerta de sitio no seguro, para ello una vez creada y aprovisionada la maquina ejecutamos los siguientes pasos desde la maquina host:

scp -r vagrant@192.168.56.10:/home/vagrant/.local/share/mkcert ~/.local/share/

password: vagrant

esto con el objetivo de copiar los certificados del CAROOT de la vm en nuestra maquina host, las imagenes a continuacion describen el proceso:

image info image info image info image info image info image info image info image info image info image info image info image info

  1. Ambiente K8S

Una vez creado y aprovisionado el cluster lo siguiente es instalar KUBECTL en la maquina host, se pueden usar diferentes mecanismos, por mi parte use ASDF:

asdf plugin-add kubectl https://github.com/asdf-community/asdf-kubectl.git
asdf install kubectl <your-specific-version>

moverse hace el directorio $HOME

cd ~ 
cd $HOME

y ejecutar el siguiente comando:

scp -r vagrant@<k8s-master-node-ip-address>:/home/vagrant/.kube ~

Permisos solo para el usuario anfitrion sobre ~/.kube/config

chmod o-r ~/.kube/config
chmod g-r ~/.kube/config

los datos de autenticacion son:

username: vagrant password: vagrant

Recursos

Config Kubectl

Install and config k8s in arch

k8s and cri-o

Ansible and CRI-O example

CRI-O For k8s

Install CRI-O on Ubuntu

KubeAdm with CRI-O

K8s with kubeadm

K8s with vagrant

K8s with Ansible

About

project for all virtual machines environment

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages