Archive for enero, 2021

Yo Ozan te Maldigo » Maldito seas Puto Moodle bajo Container de Docker por los años que me haces perder como un infeliz esperando a que levante. Te maldigo»

En esta perdición me baso en la siguiente guía
#	https://techexpert.tips/moodle/moodle-docker-installation/

#	Creo la red necesaria para conectar los contenedores
docker network create moodle-network
#	Me traigo una imagen del contenedor de mariadb
docker pull mariadb
#	Una del puto moodle que consume tu tiempo de vida miserablemente
docker pull bitnami/moodle
#	Creo un volumen para mariadb
docker volume create mariadb-data
#	Levanto la imagen de la db poniendo claves y usuarios(recomendable poner otra cosa ahi)
docker run -d --name moodledb -v mariadb-data:/var/lib/mysql --network moodle-network -e "MYSQL_ROOT_PASSWORD=kamisama123" -e MYSQL_USER=moodle -e "MYSQL_PASSWORD=kamisama123" -e "MYSQL_DATABASE=moodle" mariadb
#	Creo el volumen de la data de moodle
docker volume create moodle-data
#	Levanto moodle y comienzo a perder tiempo de mi vida esperando a que ande todo
docker run -d --name moodle -p 80:8080 -p 443:8443 -v moodle-data:/bitnami/moodle --network moodle-network -e MOODLE_DATABASE_HOST=moodledb -e MOODLE_DATABASE_USER=moodle -e MOODLE_DATABASE_PASSWORD=kamisama123 -e MOODLE_DATABASE_NAME=moodle bitnami/moodle:latest
#	Véanse una buena serie onda "Gambito de dama" o la de "American gods" y cuando terminen ambas prueben si pueden ingresar por navegador al moodle. Sino hay que seguir esperando. 

enero 23, 2021 at 6:05 pm Deja un comentario

Instalar el puto Mantis en Debian Buster. Sin ponerle sal a las papas fritas.

#	Instalar mantis en debian buster
https://www.osradar.com/install-mantis-bug-tracker-debian-10/
#	La parte lamp de aca
How to install LAMP on Debian 10?
# Instalo apache y wget sudo apt install apache2 wget # Habilito apache sudo systemctl enable apache2 # Inicio apache sudo systemctl start apache2 # Instalo parte de php sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-zip # Instalo mariadb y segurizo la instalacion sudo apt install mariadb-server sudo mysql_secure_installation # Me conecto como root a la db sudo mysql -u root -p # Creo la db mantisdb CREATE DATABASE mantisdb; # Asigno privilegios a mantisuser sobre esa db y le doy una clave bien pedorra(cambien eso) GRANT ALL PRIVILEGES ON mantisdb.* TO 'mantisuser'@'localhost' IDENTIFIED BY 'mantispss'; FLUSH PRIVILEGES; exit; # Bajo los source de mantis wget https://sourceforge.net/projects/mantisbt/files/mantis-stable/2.24.4/mantisbt-2.24.4.zip # instalo unzip sudo apt install unzip $ Descomprimo los source unzip mantisbt-2.24.4.zip # Los muevo a la carpeta srv sudo mv mantisbt-2.24.4/ /srv/ # Cambio el dueño y grupo de la carpeta a www-data sudo chown -R www-data:www-data /srv/mantisbt-2.24.4/ # Cambio los permisos de la carpeta sudo chmod -R 777 /srv/mantisbt-2.24.4/ # Creo la configuracion de mantis en el apache sudo nano /etc/apache2/sites-enabled/mantis.conf <VirtualHost *:80> DocumentRoot "/srv/mantisbt-2.24.4/" ErrorLog "/var/log/apache2/mantisbt-error_log" TransferLog "/var/log/apache2/mantisbt-access_log" <Directory "/srv/mantisbt-2.24.4/"> DirectoryIndex index.php index.html Options FollowSymLinks AllowOverride None Require all granted Options MultiViews FollowSymlinks </Directory> </VirtualHost> # Reinicio apache sudo systemctl restart apache2

enero 18, 2021 at 2:16 pm Deja un comentario

Instalar el Puto OJS en el Puto Debian Buster

#	Los pasos generales estan aca	
https://ukblow.info/chart/ojs-instalacion-paso-a-paso-en-debian-8-linux/jqGqk96qatjaisY.html

#	Necesito Lamp andando y me guio de aca
https://www.cyberciti.biz/faq/how-to-install-lamp-on-debian-10-buster/
#	Hago una actualizacion
sudo apt update && sudo apt upgrade
#	Instalo Apache2
sudo apt install apache2
#	Instalo algunas cosas de mysql y apache y php
sudo apt install php libapache2-mod-php php-gd php-mysql
sudo apt install php-mysql php-gd
sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php php-pecl-http mcrypt
#	Habilito modulos en apache2
sudo a2enmod mpm_prefork
#	Reinicio apache
sudo systemctl restart apache2.service
#	Instalo mariadb
sudo apt install mariadb-server
#	Segurizo la instalacion
sudo mysql_secure_installation
#	La parte de la db
sudo mariadb -u root
create database ojs;
create user ojs@localhost identified by 'tuclave';
grant all privileges on ojs.* to ojs@localhost;

#	Tengo que descargar los fuentes y aca los descomprimo en la carpeta del apache
sudo tar xvf ojs-3.2.1-2.tar.gz
#	Le cambio el nombre a la carpeta
sudo mv ojs-3.2.1-2 ojs
#	Se require esta carpeta para los archivos
sudo mkdir /var/www/files/
#	Les doy permisos necesarios a ambas carpetas
sudo chown -R www-data:www-data /var/www/files/
sudo chown -R www-data:www-data /var/www/html/

enero 15, 2021 at 8:07 pm Deja un comentario

Moodle detrás de dos servidores web con apache un HaProxy que balancea carga entre los dos equipos, una db en postgres remoto y un servidor samba que comparte los archivos. Y sino te gusta anda a comprar un kilo de helado.

El esquema es mas o menos así
########################################################################
haproxy 													
192.168.0.13
########################################################################
Apache va a estar en dos equipos instalo en uno y clono en otro
192.168.0.12
192.168.0.17
########################################################################
Samba comparte en
192.168.0.10
########################################################################
Postgres tiene su db en
192.168.0.11
########################################################################

########################################################################
Servidor con samba 		192.168.0.10
########################################################################

#	Guia
https://www.server-world.info/en/note?os=Debian_10&p=samba&f=2

#	Instala Samba
sudo apt -y install samba
#	Creo un grupo al que voy a asociar los usuarios que usen este recurso
sudo groupadd recursos
#	Creo la carpeta que voy a poner a disponibilidad del grupo
sudo mkdir /home/recursos
#	Cambio el grupo al que pertenece dicha carpeta
sudo chgrp recursos /home/recursos
#	Otorgo permisos sobre la misma
sudo chmod 770 /home/recursos
#	Hago backup de la configuración original
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
#	Edito configuracion de samba. 
sudo vi /etc/samba/smb.conf

[global]
	bind interfaces only = Yes
	interfaces = 192.168.0.0/24
	log file = /var/log/samba.log.%m
	max log size = 50
	server string = Servidor Samba
	workgroup = RECURSOS
	idmap config * : backend = tdb


[Recursos]
	create mask = 0770
	directory mask = 0770
	path = /home/recursos
	read only = No
	valid users = @recursos

sudo testparm

#	Reinicio samba
sudo systemctl restart smbd
# 	Agrego un usuario a samba y le pongo contraseña al mismo
sudo smbpasswd -a ed
#	Ese usuario tiene que pertenecer al grupo recursos asi que le asigno dicho grupo. 
sudo usermod -G recursos ed

########################################################################
Postgres											192.168.0.11
########################################################################
https://computingforgeeks.com/install-postgresql-11-on-debian-10-buster/
#	Actualizo 
sudo apt update && sudo apt -y upgrade
#	Instalo vim wget gnupg lsb-release
sudo apt install -y vim wget gnupg lsb-release
#	Bajo la llave de postgres y la agrego
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
#	Creo una variable con la versión del SO
RELEASE=$(lsb_release -cs)
#	Agrego repositorios
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list
#	Hago un update
sudo apt update
#	Instalo postgres
sudo apt -y install postgresql-11
#	Veo el estatus del servicio
systemctl status postgresql
#	Me logueo con el usuario por defecto 
sudo su - postgres 
#	Le Asigno clave
psql -c "alter user postgres with password 'clave'" 

#	Habilitar acceso remoto me guio de
https://www.netiq.com/documentation/identity-manager-47/setup_windows/data/connecting-to-a-remote-postgresql-database.html
#	Modifico este archivo y agrego 
sudo vi /etc/postgresql/11/main/postgresql.conf
#	Lo siguiente
listen_addresses = '*'
#	Toco este otro archivo
sudo vi /etc/postgresql/11/main/pg_hba.conf
#	Agrego al final lo siguiente
host all all 0.0.0.0/0 md5
#	Reinicio el servicio
sudo systemctl restart postgresql
########################################################################
La parte web de los apache, lo hago en uno y clono luego
192.168.0.12
192.168.0.17
########################################################################
#	Instalo cifs-utils ya que comparto por samba
sudo apt-get install cifs-utils
#	Creas el punto de montaje
sudo mkdir -p /var/www/web
#	Las credenciales
sudo vi /var/www/.smbcredentials

username=usuario
password=clave
domain=dominio
#	Aseguras los permisos
sudo chmod 600 /var/www/.smbcredentials
#	Editas fstab
sudo vi /etc/fstab
#	El qui de la cuestion esta en el udi y gid
//192.168.0.10/recursos /var/www/web cifs credentials=/var/www/.smbcredentials,,uid=33,gid=33 0 0
#	Montas el recurso. 
sudo mount -a -v

#	Ojota con el nombre del .mount systemd se queja como los azules de cualquier pelotudes
#	si montas en Where=/a/b/c este archivo de abajo seria a-b-c.mount sino no funca.
sudo vi /etc/systemd/system/var-www-web.mount

[Unit]
Description=Montar Recurso Compartido
#	Esto de abajo anda solo si no tenes network manager. En esos casos en los link mencionan como hacerlo andar
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service

[Mount]
What=//192.168.0.10/recursos
Where=/var/www/web
Type=cifs
Options=credentials=/var/www/.smbcredentials,,uid=33,gid=33

[Install]
WantedBy=multi-user.target
#	Habilito la unidad mount creada
sudo systemctl enable var-www-web.mount
#	La inicio
sudo systemctl start var-www-web.mount
#	La reinicio
sudo systemctl restart var-www-web.mount

#	Actualizo todo
sudo apt update && sudo apt upgrade
#	Instalo apache
sudo apt install apache2 apache2-utils
#	Habilito apache
sudo systemctl enable apache2
#	Lo inicio
sudo systemctl start apache2
#	Instalo cosas necesarios de php
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
#	Habilito php
sudo a2enmod php7.3
#	Reinicio apache
sudo systemctl restart apache2
#	instalo mas cosas de php
sudo apt install php7.3-fpm
#	Habilito algunos modulos de apache y otras cosas
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm
#	Reinicio apache
sudo systemctl restart apache2
#	Sigo instalando cosas de php
sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php 
sudo apt-get install php-dev libmcrypt-dev php-pear
#	Aca igual
sudo pecl channel-update pecl.php.net
sudo pecl install channel://pecl.php.net/mcrypt-1.0.2
#	Complementos de php para postgres
sudo apt install -y php-pgsql
sudo systemctl reload apache2.service
#	Hay que bajar los archivos de moodle, yo lo hago a mano por que por wget no funca
wget https://download.moodle.org/download.php/stable310/moodle-latest-310.tgz
#	Descomprimo los mismos dentro del recurso compartido
sudo tar xf moodle-latest-310.tgz 
#	Creo la carpeta moodledata en el recurso compartido
sudo mkdir /var/www/web/moodledata
#	Deshabilito sitios por default
sudo a2dissite 000-default.conf
sudo a2dissite default-ssl.conf
#	creamos entrada para el sitio moodle
sudo vi /etc/apache2/sites-available/web.conf

<VirtualHost *:80>
     DocumentRoot /var/www/web/moodle

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
#	Habilito dicho sitio y reinicio apache
sudo a2ensite web.conf
sudo systemctl restart apache2.service
#	Necesito el cliente de postgres para conectarme a la db remoto
sudo apt-get install postgresql-client-11
#	Me conecto a la misma 
psql -h 192.168.0.11 -U postgres
#	Creo la db de moodle y garantiso los permisos para el usuario
CREATE USER moodleuser WITH PASSWORD 'clavedb';
CREATE DATABASE moodle WITH OWNER moodleuser;
#	Salgo de postgresql
\q

#	Los siguiente es la parte de haproxy pero de los sitios con apache,
#	Es decir somos clientes del haproxy

sudo  a2enmod remoteip
sudo vi /etc/apache2/apache2.conf

# line 212-215: change like follows
# specify HAProxy's IP address for [RemoteIPInternalProxy]
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.0.13
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

sudo systemctl restart apache2

########################################################################
haproxy 													192.168.0.13
########################################################################

#	La parte del balanceo esta en 
https://www.server-world.info/en/note?os=Debian_10&p=haproxy&f=1

sudo apt -y install haproxy

sudo vi /etc/haproxy/haproxy.cfg
# add to the end
# define frontend (any name is OK for "http-in")
frontend http-in
        # listen 80 port
        bind *:80
        # set default backend
        default_backend    backend_servers
        # send X-Forwarded-For header
        option             forwardfor

# define backend
backend backend_servers
        # balance with roundrobin
        balance            roundrobin
        # define backend servers
        server             node01 192.168.0.12:80 check
        server             node02 192.168.0.17:80 check

sudo systemctl restart haproxy

crontab -u www-data -e
*/1 * * * * /usr/bin/php /var/www/web/moodle/admin/cli/cron.php >/dev/null

Solo resta pegarle a la ip del HAProxy y terminar de instalar por web.

enero 12, 2021 at 2:54 am Deja un comentario

Instalar moodle usando como motor de db postgresql. Sin comentarios censurados.

#	La parte de moodle con lamp menos postgres es esto
#	Sigo esta guia para la parte Lamp en debian buster
https://www.linuxbabe.com/debian/install-lamp-stack-debian-10-buster
sudo apt update && sudo apt upgrade
sudo apt install apache2 apache2-utils
systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo ufw allow http
sudo chown www-data:www-data /var/www/html/ -R
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
sudo a2enmod php7.3
sudo systemctl restart apache2
sudo apt install php7.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.3-fpm
sudo systemctl restart apache2
Cómo instalar Moodle en Debian 10 Buster
wget https://download.moodle.org/download.php/stable310/moodle-latest-310.tgz sudo tar xf moodle-latest-310.tgz -C /var/www/html/ sudo chown -R www-data: /var/www/html/moodle/ sudo mkdir /var/www/moodledata sudo chown www-data: /var/www/moodledata/ sudo apt -y install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip sudo apt-get install apache2 graphviz aspell php-pspell php-xmlrpc php-ldap php-soap php-gd php-json php-pgsql php-curl php-intl php-imagick php-zip php-xml php-mbstring php-ldap libapache2-mod-php sudo apt-get install php-dev libmcrypt-dev php-pear sudo pecl channel-update pecl.php.net sudo pecl install channel://pecl.php.net/mcrypt-1.0.2 sudo apt install -y php-pgsql sudo systemctl reload apache2.service # La parte de postgresql es lo siguiente. # Instalar posrgresql https://computingforgeeks.com/install-postgresql-11-on-debian-10-buster/ sudo apt update && sudo apt -y upgrade sudo apt install -y vim wget gnupg lsb-release wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - RELEASE=$(lsb_release -cs) echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list sudo apt update sudo apt -y install postgresql-11 systemctl status postgresql sudo su - postgres psql -c "alter user postgres with password 'claveposrgresql'" CREATE USER moodleuser WITH PASSWORD 'clavedb'; CREATE DATABASE moodle WITH OWNER moodleuser;

enero 7, 2021 at 12:42 pm Deja un comentario

Instalar el puto HAProxy como balanceador de cargas usando webs(2) con apache sin que el placero te quiera cobrar las vueltas en la calesitas

Balanceo de carga con haproxy usando apache en debian buster. 
El esquema es el siguiente

#	HAProxy esta en 192.168.0.15 
#	Web				192.168.0.16
#	Web1			192.168.0.17 

#	En los equipos que son web para instalar apache hago lo siguiente. 
#	Instalar apache me guie en esto
https://www.tecmint.com/install-apache-with-virtual-hosts-on-debian-10/

sudo apt update -y
sudo apt install apache2 -y
sudo systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl restart apache2

sudo mv /var/www/html/index.html /var/www/html/index.html.bak
sudo nano /var/www/html/index.html

<html>
    <head>
        <title>Servidor 1</title>
    </head>
    <body>
        <h1>Servidor 1</h1>
    </body>
</html>

sudo systemctl restart apache2

#	Una ves que tengo apache instalado hago la configuracion de haproxy
#	Esto es en cada nodo web

sudo  a2enmod remoteip
sudo vi /etc/apache2/apache2.conf

# line 212-215: change like follows
# specify HAProxy's IP address for [RemoteIPInternalProxy]
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.0.15
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

sudo systemctl restart apache2

#	Ahora en el equipo con HAProxy hago lo siguiente. 
#	HAProxy esta en 192.168.0.15 
#	Web				192.168.0.16
#	Web1			192.168.0.17 

#	La parte del balanceo esta en 
https://www.server-world.info/en/note?os=Debian_10&p=haproxy&f=1

sudo apt -y install haproxy

sudo vi /etc/haproxy/haproxy.cfg
# add to the end
# define frontend (any name is OK for "http-in")
frontend http-in
        # listen 80 port
        bind *:80
        # set default backend
        default_backend    backend_servers
        # send X-Forwarded-For header
        option             forwardfor

# define backend
backend backend_servers
        # balance with roundrobin
        balance            roundrobin
        # define backend servers
        server             node01 192.168.0.16:80 check
        server             node02 192.168.0.17:80 check

sudo systemctl restart haproxy

enero 5, 2021 at 3:31 pm Deja un comentario


bueno

enero 2021
L M X J V S D
 123
45678910
11121314151617
18192021222324
25262728293031

Archivos