Saltar al contenido principal Saltar a navegación Saltar al pie de página
Tiempo limitado: Programa Design Partner. Plan BUSINESS gratis de por vida.

Configuración de Máquinas

Cree una configuración, agregue máquinas, aprovisione servidores y configure la infraestructura.

Configuración de Máquinas

Cuatro pasos para que su primera máquina funcione: crear una configuración, registrar el servidor, aprovisionarlo y opcionalmente configurar la infraestructura para tráfico público.

Paso 1: Crear una Configuración

Una configuración es un archivo de configuración con nombre que almacena sus credenciales SSH, definiciones de máquinas y mapeos de repositorios. Piense en ella como un espacio de trabajo del proyecto.

rdc config init --name my-infra --ssh-key ~/.ssh/id_ed25519
OpciónRequeridoDescripción
--ssh-key <path>Ruta a su clave privada SSH. La tilde (~) se expande automáticamente.
--renet-path <path>NoRuta personalizada al binario renet en las máquinas remotas. Por defecto usa la ubicación de instalación estándar.

Esto crea una configuración llamada my-infra y la almacena en ~/.config/rediacc/my-infra.json. La configuración predeterminada (cuando no se da nombre) se almacena como ~/.config/rediacc/rediacc.json.

Puede tener múltiples configuraciones (por ejemplo, production, staging, dev). Cambie entre ellas con la bandera --config en cualquier comando.

Paso 2: Agregar una Máquina

Registre su servidor remoto como una máquina en la configuración:

rdc config machine add --name server-1 --ip 203.0.113.50 --user deploy
OpciónRequeridoPredeterminadoDescripción
--ip <address>-Dirección IP o nombre de host del servidor remoto
--user <username>-Nombre de usuario SSH en el servidor remoto
--port <port>No22Puerto SSH
--datastore <path>No/mnt/rediaccRuta en el servidor donde Rediacc almacena los repositorios cifrados

Después de agregar la máquina, rdc ejecuta automáticamente ssh-keyscan para obtener las claves del host del servidor. También puede ejecutar esto manualmente:

rdc config machine scan-keys -m server-1

Para ver todas las máquinas registradas:

rdc config machine list

Paso 3: Configurar la Máquina

Aprovisione el servidor remoto con todas las dependencias requeridas:

rdc config machine setup --name server-1

Este comando:

  1. Sube el binario renet al servidor mediante SFTP
  2. Instala Docker, containerd y cryptsetup (si no están presentes)
  3. Crea el usuario del sistema rediacc (UID 7111)
  4. Crea el directorio del datastore y lo prepara para repositorios cifrados
OpciónRequeridoPredeterminadoDescripción
--datastore <path>No/mnt/rediaccDirectorio del datastore en el servidor
--datastore-size <size>No95%Cantidad de disco disponible a asignar para el datastore
--debugNofalseHabilitar salida detallada para resolución de problemas

La configuración solo necesita ejecutarse una vez por máquina. Es seguro volver a ejecutarla si es necesario.

Gestión de Claves del Host

Si las claves SSH de un servidor cambian (por ejemplo, después de una reinstalación), actualice las claves almacenadas:

rdc config machine scan-keys -m server-1

Esto actualiza el campo knownHosts en su configuración para esa máquina.

Probar Conectividad SSH

Después de agregar una máquina, verifique que sea alcanzable:

rdc term connect -m server-1 -c "hostname"

Esto abre una conexión SSH a la máquina y ejecuta el comando. Si tiene éxito, su configuración SSH es correcta.

Para diagnósticos más detallados, ejecute:

rdc doctor

Solo adaptador cloud: El comando rdc machine test-connection proporciona diagnósticos SSH detallados pero requiere el adaptador cloud. Para el adaptador local, use rdc term o ssh directamente.

Configuración de Infraestructura

Para máquinas que necesitan servir tráfico públicamente, configure los ajustes de infraestructura:

Establecer Infraestructura

rdc config infra set -m server-1 \
  --public-ipv4 203.0.113.50 \
  --base-domain example.com \
  --cert-email admin@example.com \
  --cf-dns-token your-cloudflare-api-token
OpciónAlcanceDescripción
--public-ipv4 <ip>MachineDirección IPv4 pública, los puntos de entrada del proxy solo se crean para familias de direcciones configuradas
--public-ipv6 <ip>MachineDirección IPv6 pública, los puntos de entrada del proxy solo se crean para familias de direcciones configuradas
--base-domain <domain>MachineDominio base para aplicaciones (por ejemplo, example.com)
--cert-email <email>ConfigCorreo electrónico para certificados TLS de Let’s Encrypt (compartido entre máquinas)
--cf-dns-token <token>ConfigToken de la API DNS de Cloudflare para desafíos ACME DNS-01 (compartido entre máquinas)
--tcp-ports <ports>MachinePuertos TCP adicionales separados por comas para redirigir (por ejemplo, 25,143,465,587,993)
--udp-ports <ports>MachinePuertos UDP adicionales separados por comas para redirigir (por ejemplo, 53)

Las opciones de alcance Machine se almacenan por máquina. Las opciones de alcance Config (--cert-email, --cf-dns-token) son compartidas entre todas las máquinas en la configuración. Configúrelas una vez y se aplican en todas partes.

Ver Infraestructura

rdc config infra show -m server-1

Enviar al Servidor

Genere y despliegue la configuración del proxy inverso Traefik en el servidor:

rdc config infra push -m server-1

Este comando:

  1. Despliega el binario renet en la máquina remota
  2. Configura el proxy inverso Traefik, el enrutador y los servicios systemd
  3. Crea registros DNS de Cloudflare para el subdominio de la máquina (server-1.example.com y *.server-1.example.com) si se ha establecido --cf-dns-token

El paso de DNS es automático e idempotente: crea registros faltantes, actualiza registros con IPs cambiadas y omite registros que ya son correctos. Si no se ha configurado un token de Cloudflare, se omite el DNS con una advertencia. Los registros DNS de comodín por repositorio (para rutas automáticas) se crean automáticamente cuando ejecuta rdc repo up.

Aprovisionamiento en la Nube

En lugar de crear VMs manualmente, puede configurar un proveedor de nube y dejar que rdc aprovisione máquinas automáticamente usando OpenTofu.

Requisitos Previos

Instale OpenTofu: opentofu.org/docs/intro/install

Asegúrese de que su configuración SSH tenga una clave registrada con rdc:

# Lee el archivo de clave e inserta el contenido en /credentials/ssh.
rdc config ssh set --key ~/.ssh/id_ed25519

Agregar un Proveedor de Nube

rdc config provider add --name my-linode \
  --provider linode/linode \
  --token $LINODE_API_TOKEN \
  --region us-east \
  --type g6-standard-2
OpciónRequeridoDescripción
--provider <source>Sí*Fuente de proveedor conocido (por ejemplo, linode/linode, hetznercloud/hcloud)
--source <source>Sí*Fuente de proveedor OpenTofu personalizada (para proveedores desconocidos)
--token <token>Token de API para el proveedor de nube
--region <region>NoRegión predeterminada para nuevas máquinas
--type <type>NoTipo/tamaño de instancia predeterminado
--image <image>NoImagen de SO predeterminada
--ssh-user <user>NoNombre de usuario SSH (predeterminado: root)

* Se requiere --provider o --source. Use --provider para proveedores conocidos (valores predeterminados integrados). Use --source con las banderas adicionales --resource, --ipv4-output, --ssh-key-attr para proveedores personalizados.

Aprovisionar una Máquina

rdc machine provision --name prod-2 --provider my-linode

Este único comando:

  1. Crea una VM en el proveedor de nube mediante OpenTofu
  2. Espera la conectividad SSH
  3. Registra la máquina en su configuración
  4. Instala renet y todas las dependencias
  5. Configura el proxy Traefik y DNS de Cloudflare (detecta automáticamente el dominio base de máquinas hermanas, o pase --base-domain explícitamente)
OpciónDescripción
--provider <name>Nombre del proveedor de nube (de add-provider)
--region <region>Anula la región predeterminada del proveedor
--type <type>Anula el tipo de instancia predeterminado
--image <image>Anula la imagen de SO predeterminada
--base-domain <domain>Dominio base para la infraestructura. Se detecta automáticamente de máquinas hermanas si no se especifica
--no-infraOmitir completamente la configuración de infraestructura (proxy + DNS)
--debugMuestra salida detallada del aprovisionamiento

Desaprovisionar una Máquina

rdc machine deprovision --name prod-2

Destruye la VM mediante OpenTofu y la elimina de su configuración. Requiere confirmación a menos que se use --force. Solo funciona para máquinas creadas con machine provision.

Listar Proveedores

rdc config provider list

Establecer Valores Predeterminados

Configure valores predeterminados para no tener que especificarlos en cada comando:

rdc config field set --pointer /defaults/machine --new '"server-1"'   # Máquina predeterminada
rdc config set --key team --value my-team                   # Equipo predeterminado (adaptador cloud, experimental)

Después de establecer una máquina predeterminada, puede omitir -m server-1 en los comandos:

rdc repo create --name my-app -m my-server --size 10G

Múltiples Configuraciones

Gestione múltiples entornos con configuraciones con nombre:

# Crear configuraciones separadas
rdc config init --name production --ssh-key ~/.ssh/id_prod
rdc config init --name staging --ssh-key ~/.ssh/id_staging

# Usar una configuración específica
rdc repo list -m server-1 --config production
rdc repo list -m staging-1 --config staging

Ver todas las configuraciones:

rdc config list

Mostrar detalles de la configuración actual:

rdc config show