Configuración de Assetto Corsa Server en Ubuntu Server 18.04 (VPS)

Post rápido – para ir al grano (Pendiente de mejorarlo)

Dado que el usuario creado por la interfaz del servidor no tiene permisos para instalar programas, se hace desde root pero luego se ejecutan con la cuenta de usuario que se ha dado de alta con los privilegios restringidos.

Doy por hecho que conoces el uso del SSH y de las herramientas de acceso como putty en windows o herramientas similares. No dudes en consultar en los comentarios cualquier duda que te surja.

Desde root:

Añadir los repositorios multiverse al final del fichero

# nano /etc/apt/sources.list

deb http://archive.ubuntu.com/ubuntu bionic main universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main universe multiverse

Actualizar repositorios

# apt-get update

Instalar el programa

# apt-get install steamcmd

Salir de root y entramos con la cuenta de usuario normal

Llamamamos al steamcmd con estos parámetros para instalar el servidor (desconozco por qué hay que indicarle que es una plataforma windows, supongo por por dar compatibilidad en un sistema operativo diferente)

$ steamcmd +@sSteamCmdForcePlatformType windows

Tras ello se accede a la consola de Steam

Nos logueamos

Steam> login TU_NOMBRE_DE_USUARIO_DE_STEAM

Te pedirá la contraseña, y si hay factor de doble autenticación, sms o codigo enviado al e-mail lo metemos.

Si te ha logueado correctamente, te guardará las credenciales, de forma que si tienes que entrar las veces que sean necesarias para actualizar el servidor por futuras actualizaciones u otros motivos, solo con poner el comando inicial de arriba, accederá sin pedir contraseña ni factor de doble autenticación.

Proseguimos indicando la ruta donde queremos almacenar los ficheros del servidor

Steam> force_install_dir ./assetto

Instalamos el servidor, indicando el ID que el servidor dedicado tiene en Steam (Esto puede averiguarse en http://www.steamdb.info)

Steam> app_update 302550

Salimos de steamcmd

Steam> exit

Una vez en la consola nos vamos a la ruta del servidor de assetto corsa

Para evitar que al cerrar la ventana del SSH se nos cierre el servidor, vamos a usar la aplicación screen.

Screen suele estar instalado, sino lo instalamos:

$ apt-get install screen

Iniciamos una sesión de screen (Esto solo se hace una vez, de lo contrario duplicamos las sesiones)

$ screen -S AssettoServer

Tras ello tenemos una sesión y una ventana donde empezar a ejecutar el servidor, como vamos a tener varios servidores vamos a crear tantas ventanas como servidores queramos tener en ejecución, todo ello dentro de la unica sesión de screen, para ello hacemos lo siguiente presionando una sencilla combinación de teclas:

Le ponemos un nombre a la ventana

$ Crtl+a Shift+a

Borramos la palabra Bash y ponemos el nombre que queramos, por ejemplo Assetto Corsa Server 1 y pulsamos intro.

Ahora creamos una segunda ventana

$ Crtl+a c

Le ponemos el nombre a la ventana con el comando de arriba y lo llamamos Assetto Corsa Server 2 y pulsamos intro

Para alternar entre distintas ventanas

$Crtl+a Shift+» (comillas dobles situadas en el numero 2 del teclado alfabético)

Con las fechas y el intro seleccionamos la ventana de screen que queremos y ya solo hay que ubicarse dentro de la carpeta donde esta el ejecutable del servidor acServer

Antes de nada, tenemos que disponer de los dos ficheros de configuración por cada servidor / circuito que queramos tener, para ello el truco está en ejecutar el acserver.exe sobre un equipo con windows, y desde su interfaz visual configurar los detalles para luego EXPORTAR los ficheros y meterlos en la carpeta cfg que está dentro de la ruta dada al acserver de linux.

NOTA: Hay dos ficheros, uno es el server_config.ini y el otro el entry_list.ini, dentro del server_config.ini tenemos casi al comienzo 3 puertos, con sus respectivos números, estos puertos udp, tcp (9600) y http (8081) tienen que estar abiertos, y puedes respetar los que están por defecto. Ahora bien, como queremos dos servidores y ambos tienen circuitos diferentes, tenemos que subir dos ficheros con dichas configuraciones en las que los puertos no sean los mismos que los del server_config.ini, ya que entrarían en conflicto y no funcionarían.

Yo renombro los ficheros a server_config1.ini y server_config2.ini, y los mismo con los entry_list1.ini y entry_list2.ini, cada server_config.ini tiene su fichero pareja entry_list.ini y los edito incrementando +1 el número de puerto para evitar el conflicto, udp,tcp (9601) y http (8082).

Tras ello arrancamos el acserver con unos comandos personalizados:

$ ./acServer -c /cfg/server_config1.ini -e entry_list1.ini

Cambiamos con Crtl+a Shift+» a la otra ventana y ejecutamos lo mismo pero cambiando los ficheros de configuración:

$ ./acServer -c /cfg/server_config2.ini -e entry_list2.ini

Si al final de la ejecución, nos sale OK y empiezan a salir lineas como estas, significa que está funcionando todo bien

Serve JSON took 38 ms
PAGE: /JSON|UN_NUMERO_LARGO

Por último, podemos crear una tercera ventana de screen para tener controlados los recursos de la máquina en tiempo real, para ver si el sistema aguanta la carga cuando se llenen los dos servidores, usando la herramienta htop

Creamos la ventana nueva

$ Crtl+a c

le cambiamos el nombre

$ Crtl+a Shift+a

Borramos Bash y ponemos por ejemplo HTOP

Ejecutamos HTOP

$ htop

Para salir de uno de los servidores, podemos hacer Crtl+c y el servidor se corta, accediendo a la consola, si le damos flecha arriba podemos cargar la linea con el comando para arrancar de nuevo el servidor, por si hacemos modificaciones al fichero de configuración y queremos reiniciar la maquina.

Por último, si creamos mas ventanas de screen de las necesarias, solo hay que entrar en la ventana que queremos cerrar y escribir exit.

IMPORTANTE:

Para salirnos sin cerrar los servidores escribimos el comando:

Crtl+a d

De esta forma podemos cerrar la ventana remota del servidor y todo seguirá funcionando, ya que si os dais cuenta, esta combinación de teclas no interfiere con la ejecución del servidor, aunque nos esté mostrando lineas de texto ilegibles para nosotros.

Para entrar a screen cuando nos reconectamos al servidor, no hay que iniciar una sesión, solo hay que abrir la que creamos en su momento, para ello usamos el comando:

$ screen -r

y ya podemos navegar por las ventanas del screen con el Crtl+a Shift+»

 

 

 

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.