Cómo instalar y configurar Concourse CI en CentOS 7

Introducción

La integración continua es una práctica de desarrollo de software DevOps que permite a los desarrolladores fusionar con frecuencia el código modificado en el repositorio compartido muchas veces al día. Después de cada fusión, se realizan compilaciones y pruebas automáticas para detectar problemas en el código. Permite a los desarrolladores encontrar y resolver los errores rápidamente para mejorar la calidad del software y proporcionar una entrega continua del software. Cambiar de un lado a otro de Concourse es muy fácil, ya que mantiene toda su configuración en archivos declarativos que se pueden verificar en el control de versiones. También proporciona una interfaz de usuario web que muestra la información de compilación de forma interactiva.

Componentes del concurso.
  • El ATC es el componente principal del concurso. Es responsable de ejecutar la interfaz de usuario web y la API. También se encarga de toda la programación de la tubería.
  • TSA es un servidor SSH personalizado. Es responsable de registrar de manera segura a un trabajador en ATC.
  • Los trabajadores además ejecutan dos servicios diferentes:
    1. Garden es un tiempo de ejecución de contenedores y una interfaz para orquestar contenedores de forma remota en un trabajador.
    2. Baggageclaim es un servidor de gestión de caché y artefactos.
  • Fly es una interfaz de línea de comando que se usa para interactuar con el ATC para configurar Concourse Pipelines.

Prerrequisitos

Asegúrese de reemplazar todas las apariciones de 192.0.2.1y ci.example.comcon su dirección IP pública y nombre de dominio real de Vultr.

Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar PostgreSQL.

Instalar y configurar la base de datos PostgreSQL

PostgreSQL es un sistema de base de datos relacional de objetos. Concourse almacena sus datos de canalización en una base de datos PostgreSQL. Agregue el repositorio PostgreSQL.

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Instale el servidor de base de datos PostgreSQL.

sudo yum -y install postgresql96-server postgresql96-contrib

Inicializar la base de datos.

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

initdbcrea un nuevo clúster de base de datos PostgreSQL, que es una colección de bases de datos que son administradas por una sola instancia de servidor. Edite el pg_hba.confarchivo para habilitar la autenticación basada en MD5.

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

Encuentre las siguientes líneas y cambie los valores peery identen la METHODcolumna a trusty md5, respectivamente.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Una vez actualizada, la configuración debería verse así.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Inicie el servidor PostgreSQL y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Cambie la contraseña para el usuario predeterminado de PostgreSQL.

sudo passwd postgres

Inicie sesión como usuario de PostgreSQL:

sudo su - postgres

Cree un nuevo usuario de PostgreSQL para Concourse CI.

createuser concourse

Nota : El usuario predeterminado de PostgreSQL se puede usar para la autenticación de la base de datos, pero se recomienda usar un usuario dedicado para la autenticación de la base de datos Concourse en una configuración de producción.

PostgreSQL proporciona un shell para ejecutar consultas en la base de datos. Cambie al shell PostgreSQL ejecutando:

psql

Establezca una contraseña para el usuario de la base de datos Concourse recién creado.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Importante : Reemplace DBPasswordcon una contraseña segura. Anote la contraseña, ya que será necesaria más adelante en el tutorial.

Cree una nueva base de datos para Concourse.

CREATE DATABASE concourse OWNER concourse;

Sal de la psqlcáscara.

\q

Cambie al usuario sudo del usuario actual de postgres.

exit

Descargue e instale Concourse CI

Descargue la última versión del ejecutable Concourse y guárdelo /usr/binpara que pueda ejecutarse directamente. La última versión de los binarios Concourse y Fly se puede encontrar en la página de descarga de Concourse . Los nuevos lanzamientos son muy frecuentes. Reemplace el enlace a continuación con el nuevo enlace para la versión más reciente.

sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse

Del mismo modo, descargue la última versión del ejecutable fly y guárdelo /usr/bin.

sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly

Fly es la interfaz de línea de comando para conectarse a la API ATC de Concourse CI. Fly está disponible para múltiples plataformas como Linux, Windows y MacOS.

Asigne permiso de ejecución a los archivos descargados concoursey flybinarios.

sudo chmod +x /usr/bin/concourse /usr/bin/fly

Compruebe si Concourse y Fly funcionan correctamente verificando su versión.

concourse -version
fly -version

Generar y configurar claves RSA

Los pares de claves RSA proporcionan una forma de encriptar la comunicación entre los componentes del Concurso.

Para que Concourse funcione, se deben generar al menos tres pares de claves. Para cifrar los datos de la sesión, genere a session_signing_key. TSA también utilizará esta clave para firmar las solicitudes que realiza al ATC. Para asegurar el servidor TSA SSH, genere a tsa_host_key. Finalmente, genere un worker_keypara cada trabajador.

Cree un nuevo directorio para almacenar las claves y la configuración relacionadas con Concourse CI.

sudo mkdir /opt/concourse

Genere las claves requeridas.

sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key

Autorice la clave pública de los trabajadores copiando su contenido en el authorized_worker_keysarchivo:

sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys

Concurso de inicio

Concourse proporciona dos componentes separados que deben iniciarse, la web y el trabajador. Inicie la web Concourse.

sudo concourse web \
  --basic-auth-username admin \
  --basic-auth-password StrongPass \
  --session-signing-key /opt/concourse/session_signing_key \
  --tsa-host-key /opt/concourse/tsa_host_key \
  --tsa-authorized-keys /opt/concourse/authorized_worker_keys \
  --postgres-user=concourse \
  --postgres-password=DBPassword \
  --postgres-database=concourse \
  --external-url http://192.0.2.1:8080

Cambie el nombre de usuario y la contraseña del basic-authsi lo desea. Asegúrese de que la ruta a los archivos clave sea correcta y asegúrese de que se proporciona el valor correcto para nombre de usuario y contraseña en la configuración de la base de datos PostgreSQL.

Nota : ATC escuchará el puerto predeterminado 8080y TSA escuchará el puerto 2222. Si no se desea la autenticación, pase la --no-really-i-dont-want-any-authopción después de eliminar las opciones básicas de autenticación.

Una vez que se inicia el servidor web, se debe mostrar la siguiente salida.

{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}

Detenga el servidor por ahora, ya que todavía hay que configurar algunas cosas más.

Comience el Concurso Trabajador de CI.

sudo concourse worker \
  --work-dir /opt/concourse/worker \
  --tsa-host 127.0.0.1 \
  --tsa-public-key /opt/concourse/tsa_host_key.pub \
  --tsa-worker-private-key /opt/concourse/worker_key

El comando anterior supondrá que el TSA se está ejecutando en localhost y está escuchando el puerto predeterminado 2222.

Aunque la web y el trabajador de Concourse se pueden iniciar fácilmente usando los comandos anteriores, se recomienda usar Systemd para administrar el servidor.

Configurar entorno y servicio Systemd

El uso del servicio Systemd para administrar la aplicación garantiza que la aplicación se inicie automáticamente en caso de fallas y en el momento del arranque. El servidor Concourse no toma datos de ningún archivo de configuración, pero puede acceder a los datos de las variables de entorno. En lugar de establecer variables de entorno globales, cree un nuevo archivo para almacenar las variables de entorno y luego pase las variables al Concourse CI utilizando el servicio Systemd.

Cree un nuevo archivo de entorno para Concourse web.

sudo nano /opt/concourse/web.env

Rellene el archivo.

CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys

CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse

CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080

Cambie el nombre de usuario y la contraseña del BASIC_AUTHsi lo desea. Asegúrese de que la ruta a los archivos clave sea correcta y asegúrese de que se proporciona el valor correcto para nombre de usuario y contraseña en la configuración de la base de datos PostgreSQL.

Del mismo modo, cree un archivo de entorno para el trabajador.

sudo nano /opt/concourse/worker.env

Rellene el archivo.

CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1

Como los archivos de entorno contienen nombre de usuario y contraseñas, cambie sus permisos para que otros usuarios no puedan acceder a ellos.

sudo chmod 600 /opt/concourse/*.env

Ahora cree un nuevo usuario para Concourse para ejecutar el entorno web. Esto garantizará que el servidor web se ejecute en un entorno aislado.

sudo adduser --system concourse

Otorgue al usuario del concurso propiedad sobre el directorio del archivo Concourse CI.

sudo chown -R concourse:concourse /opt/concourse

Cree un nuevo archivo de servicio systemd para el servicio web Concourse.

sudo nano /etc/systemd/system/concourse-web.service

Rellene el archivo.

[Unit]
Description=Concourse CI web server
After=postgresql-9.6.service

[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo. Cree un nuevo archivo de servicio para el servicio de trabajo Concourse.

sudo nano /etc/systemd/system/concourse-worker.service

Rellene el archivo.

[Unit]
Description=Concourse CI worker process
After=concourse-web.service

[Service]
Type=simple
User=root
Group=root
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker

[Install]
WantedBy=multi-user.target

El servicio web y de trabajo ahora se puede iniciar directamente ejecutando:

sudo systemctl start concourse-web concourse-worker

Para permitir que el trabajador y el proceso web se inicien automáticamente en el momento del arranque, ejecute:

sudo systemctl enable concourse-worker concourse-web

Para verificar el estado de los servicios, ejecute:

sudo systemctl status concourse-worker concourse-web

Si el servicio no se inicia, o en el FAILEDestado, elimine el caché del /tmpdirectorio.

sudo rm -rf /tmp/*

Reiniciar los servicios.

sudo systemctl restart concourse-worker concourse-web

Tenga en cuenta que esta vez los servicios se han iniciado correctamente. El resultado al verificar el estado de los servicios debe ser similar.

[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
   Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
 Main PID: 3037 (concourse)
   CGroup: /system.slice/concourse-worker.service
           └─3037 /usr/bin/concourse worker

Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...

● concourse-web.service - Concourse CI web server
   Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
 Main PID: 3036 (concourse)
   CGroup: /system.slice/concourse-web.service
           └─3036 /usr/bin/concourse web

Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.

Ajuste su firewall para permitir el puerto 8080, en el que se ejecuta ATS y el puerto 2222, en el que se ejecuta TSA.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
sudo firewall-cmd --reload

Conectando al servidor

Una vez que se inicia el servidor, se puede acceder a la interfaz web de Concourse CI http://192.0.2.1:8080desde cualquier navegador. Inicie sesión con el nombre de usuario y la contraseña proporcionados en el archivo del entorno.

Para conectarse al servidor usando Fly, ejecute:

fly -t my-ci login -c http://192.0.2.1:8080

El comando anterior se utiliza para el inicio de sesión inicial en el servidor. -tse usa para proporcionar un nombre de destino. reemplazar my-cicon cualquier nombre de destino deseado. El comando anterior iniciará sesión en el equipo predeterminado main. Le pedirá el nombre de usuario y la contraseña proporcionados en el archivo de entorno.

La salida tendrá el siguiente aspecto.

[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'

username: admin
password:

target saved

El inicio de sesión objetivo se guardará por un día. Después de eso, expirará.

Para cerrar sesión de inmediato.

fly -t my-ci logout

fly se puede usar para iniciar sesión en el servidor fuera de la red, pero solo si el servidor tiene una dirección IP pública y es accesible desde fuera de la red. El binario de Windows o MacOS se puede descargar desde el sitio de descarga o desde la interfaz de usuario web del servidor.

Configuración del proxy inverso de Nginx

Los inicios de sesión y otra información enviada a través de la interfaz de usuario web al servidor Concourse no están protegidos. La conexión no está encriptada. Se puede configurar un proxy inverso de Nginx con un SSL gratuito Let's Encrypt.

Instale el servidor web Nginx y Certbot, que es la aplicación cliente para Let's Encrypt CA.

sudo yum -y install certbot-nginx nginx

Inicie y habilite Nginx para que se inicie automáticamente en el momento del arranque:

sudo systemctl start nginx
sudo systemctl enable nginx

Antes de que se pueda hacer una solicitud para los certificados, el puerto 80 y 443, o los servicios estándar HTTP y HTTPS, deben habilitarse a través del firewall. Certbot verificará la autoridad del dominio antes de emitir certificados.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

Ya no es necesario permitir el puerto 8080 a través del firewall porque Concourse ahora se ejecutará en el puerto HTTPS estándar. Elimine la entrada del firewall para permitir el puerto 8080.

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload

Nota

Para obtener certificados de Let's Encrypt CA, el dominio para el que se generarán los certificados debe apuntar hacia el servidor. De lo contrario, realice los cambios necesarios en los registros DNS del dominio y espere a que se propague el DNS antes de volver a solicitar el certificado. Certbot verifica la autoridad del dominio antes de proporcionar los certificados.

Generar los certificados SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com

Es probable que los certificados generados se almacenen en el /etc/letsencrypt/live/ci.example.com/directorio. El certificado SSL se almacenará como fullchain.pemy la clave privada se almacenará como privkey.pem.

Encriptemos los certificados caducan en 90 días, por lo que se recomienda que la renovación automática de los certificados se configure con cronjobs. Cron es un servicio del sistema que se utiliza para ejecutar tareas periódicas.

Abra el archivo de trabajo cron.

sudo crontab -e

Agregue la siguiente línea al final del archivo.

30 5 * * 1 /usr/bin/certbot renew --quiet

El trabajo cron anterior se ejecutará todos los lunes a las 5:30 a.m. Si el certificado vence, se renovará automáticamente.

Crea un nuevo host virtual.

sudo nano /etc/nginx/conf.d/concourse-ssl.conf

Rellene el archivo.

server {
    listen 80;
    server_name ci.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name ci.example.com;

    ssl_certificate           /etc/letsencrypt/live/ci.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/ci.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /var/log/nginx/concourse.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://ci.example.com;
    }
  }

Nota : Reemplace ci.example.comcon el dominio real.

Edite el archivo de entorno creado para el concurso web.

sudo nano /opt/concourse/web.env

Cambie el valor de CONCOURSE_EXTERNAL_URLy también agregue dos líneas más al final del archivo.

CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080

Guarde el archivo y reinicie Concourse Web, Worker y el servidor web Nginx:

sudo systemctl restart concourse-worker concourse-web nginx

Todos los datos enviados desde y hacia el navegador ahora están protegidos con encriptaciones SSL.



Leave a Comment

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i

Configure su propia red privada con OpenVPN

Configure su propia red privada con OpenVPN

Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.

How to Install and Configure CyberPanel on Your CentOS 7 Server

How to Install and Configure CyberPanel on Your CentOS 7 Server

Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi

Install eSpeak on CentOS 7

Install eSpeak on CentOS 7

Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin

Cómo instalar Thelia 2.3 en CentOS 7

Cómo instalar Thelia 2.3 en CentOS 7

¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i

Monitoree sus dispositivos usando LibreNMS en CentOS 7

Monitoree sus dispositivos usando LibreNMS en CentOS 7

¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad

Cómo instalar Cacti 1.1 en CentOS 7

Cómo instalar Cacti 1.1 en CentOS 7

Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t

Cómo usar Sudo en Debian, CentOS y FreeBSD

Cómo usar Sudo en Debian, CentOS y FreeBSD

Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

Cómo supervisar de forma segura los servidores remotos con Zabbix en CentOS 7

¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.

Cómo instalar MODX CMS y Nginx en CentOS 7

Cómo instalar MODX CMS y Nginx en CentOS 7

MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i

Cómo instalar YOURLS en CentOS 7

Cómo instalar YOURLS en CentOS 7

YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación

Setup Nginx-RTMP on CentOS 7

Setup Nginx-RTMP on CentOS 7

Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i

Cómo instalar LimeSurvey en CentOS 7

Cómo instalar LimeSurvey en CentOS 7

LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a

Cómo instalar Vanilla Forum en CentOS 7

Cómo instalar Vanilla Forum en CentOS 7

¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.

Instalación de Netdata en CentOS 7

Instalación de Netdata en CentOS 7

¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

Cómo instalar el servidor Just Cause 2 (JC2-MP) en CentOS 7

En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar

Cómo instalar Starbound Server en CentOS 7

Cómo instalar Starbound Server en CentOS 7

¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo

Instalación y configuración de ZNC en CentOS 7

Instalación y configuración de ZNC en CentOS 7

ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.