esto es la suraguwiki el contenido, como puedes ver, deja mucho que desear para comentarios sobre los cosos aquí, puedes mandar un correo a diego arroba suragu punto net

Si eres un putísimo crack y quieres contribuir a esta wiki, pídeme una cuenta en el mismo correo de arriba

Creación de un template de FreeBSD

Crear templates de para jails de FreeBSD es algo bastante bueno, ya que te permite ahorrar tiempo y crear templates para según lo que quieras hacer. Un template general con herramientas como git instaladas, o un template que tenga nginx con php para ahorrarte unos minutos a la hora de instalar un nuevo servicio que use ese software.

Para empezar crea un filesystem de zfs donde quieras

zfs create stranger/jails/template

Y procedemos a instalar el sistema base

cd /stranger/jails/template
fetch https://download.freebsd.org/releases/amd64/14.2-RELEASE/base.txz
tar xfv base.txz -C /stranger/jails/template

Con esto ya tendremos el sistema base instalado. Ahora tendrías que crear la jail (o hacer un chroot, pero mejor crear la jail ¿no?) e instalar el software que quisieras y configurarlo como quieras

/etc/jail.conf
squirrelmail {
  # STARTUP/LOGGING
  exec.start = "/bin/sh /etc/rc";
  exec.stop = "/bin/sh /etc/rc.shutdown";
  exec.consolelog = "/var/log/jail_console_${name}.log";
 
  # PERMISSIONS
  allow.raw_sockets;
  exec.clean;
  mount.devfs;
 
  # HOSTNAME/PATH
  host.hostname = "${name}";
  path = "/stranger/jails/${name}";
 
  # NETWORK
  ip4.addr = "bge4|192.168.1.201/24";
}

Podemos iniciar la jail con service jail start template y luego jexec template sh para acceder a la consola de la jail. Donde podremos instalar todo lo que queramos, por ejemplo

pkg install -y git zsh Y los que quieras.

Una vez instalados y configurados ya tendríamos nuestro templates

Podemos hacer exit para salir de la jail.

Y para crear el template para clonar filesystems tendremos que crear una snapshot zfs snapshot stranger/jail/template@2025-04-06

Por ejemplo, para crear un template para php pues haríamos

pkg install -y nginx php84

Tras configurar el nginx.conf para que cargue php (así, por ejemplo)

/usr/local/etc/nginx/nginx.conf
    server {
        listen       80;
        server_name  localhost;
        root   /usr/local/www/roundcube;
        index index.php index.html index.htm;
 
        # scripts de PHP
        location ~ \.php$ {
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi_params;
        }
    }

Iniciamos el coso con

service nginx enable
service php_fpm enable
service nginx start
service php_fpm start

Luego podemos crear un nuevo FS con el template de php que acabamos de crear. Vamos a crear una nueva snapshot para esto

zfs snapshot stranger/jails/template@2025-04-06_php
zfs send stranger/jails/template@2025-04-06_php | zfs recv -F stranger/jails/template_php

Y restauramos el template a su estado de template sin más (sin php ni cosas raras). También tenemos el template con php

zfs rollback stranger/jails/template@2025-04-06

Y por ejemplo, para instalar roundcube podríamos hacer

zfs send stranger/jails/template_php@2025-04-06_php | zfs recv -F stranger/jails/roundcube

¡Felicidades por haber conseguido crear templates de jails con FreeBSD!


QR Code
QR Code freebsd:jails:templates (generated for current page)