Diferencia entre revisiones de «Instalación WAP»

De Wiki
Saltar a: navegación, buscar
(Instalo el paquete php5-pgsql)
 
(No se muestran 6 ediciones intermedias del mismo usuario)
Línea 6: Línea 6:
 
  nano /etc/apt/sources.list
 
  nano /etc/apt/sources.list
 
====Comento todos los sources====
 
====Comento todos los sources====
 +
Hay que ver bien porque el grulic esta caido asique hay que buscar nuevos repositorios
 +
 
  esto se hace poniendo #
 
  esto se hace poniendo #
 
  #deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official amd64 CD Binary-1 20090413-02:50]/ lenny main
 
  #deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official amd64 CD Binary-1 20090413-02:50]/ lenny main
Línea 37: Línea 39:
 
  mcedit /etc/proftpd/proftpd.conf
 
  mcedit /etc/proftpd/proftpd.conf
 
   
 
   
Es importante configurar q el usuario no pueda subir niveles. Eso se llama encarcelar
+
Es importante configurar q el usuario no pueda subir niveles. Eso se llama encarcelar
 +
 
  DefaultRoot                    ~
 
  DefaultRoot                    ~
  
Línea 54: Línea 57:
 
  Descargo PhpPgAdmin [http://phppgadmin.sourceforge.net/]
 
  Descargo PhpPgAdmin [http://phppgadmin.sourceforge.net/]
 
  Descompirmo PhpPgAdmin
 
  Descompirmo PhpPgAdmin
  Creo con "mc" una carpeta donde voy a copiar el PhpPgAdmin, ejemplo de  nombre "servers"
+
  Creo con "mc" una carpeta donde voy a copiar el PhpPgAdmin, ejemplo de  nombre "/servers" (en la raiz)
  Luego en el panel de la izquierda del mc me ubico en la carpeta "servers" y en el de la derecha me conecto  
+
  Luego en el panel de la izquierda del mc me ubico en la carpeta "servers" y en el de la derecha me
con el ftp (ejemplo: usuario@direccionip. Copio ahora la carpeta PhpPgAdmin en servers.
+
conecto  
  Edito config.inc.php: mcedit /servers/PhpPgAdmin/conf/config.inc.php y modifico $conf[`extra_login_security`]=false;
+
con el ftp (ejemplo: usuario@direccionip. Copio ahora la carpeta PhpPgAdmin en servers.
 +
  Edito config.inc.php: mcedit /servers/PhpPgAdmin/conf/config.inc.php y modifico
 +
$conf[`extra_login_security`]=false;
 
   
 
   
 
====Configurar Alias====
 
====Configurar Alias====
Línea 98: Línea 103:
 
  Esto es para que se integre php con postgres
 
  Esto es para que se integre php con postgres
 
  apt-get install php5-pgsql
 
  apt-get install php5-pgsql
 +
 +
===Reiniciar Apache y Postgres===
 +
/etc/init.d/apache2 restart
 +
/etc/init.d/postgresql-8.3 restart
 +
 
==Crear usuario==
 
==Crear usuario==
 
  Esto es para crear un usuario diferente, como por ejemplo "desarrollo"
 
  Esto es para crear un usuario diferente, como por ejemplo "desarrollo"
Línea 136: Línea 146:
 
==Instalacion Esclava ==
 
==Instalacion Esclava ==
  
  Aunque el script python podría ejecutarse en windows, actualmente solo se soporta linux (debian) para el demonio de replicación esclavo.
+
  Aunque el script python podría ejecutarse en windows, actualmente solo se soporta linux (debian)  
  Note: psycopg en windows no viene con el soporte para select por defecto, y después de haberlo compilado, parece no funcionar correctamente  (la conexión es cerrada inesperadamente cuando se usan transacciones y listen)
+
para el demonio de replicación esclavo.
  Hay un servicio muy básico que puede ser usado en windows (service.py), pero como no se soporta signal/select, usa polling.
+
  Note: psycopg en windows no viene con el soporte para select por defecto, y después de haberlo
 +
compilado, parece no funcionar correctamente  (la conexión es cerrada inesperadamente cuando se
 +
usan transacciones y listen)
 +
  Hay un servicio muy básico que puede ser usado en windows (service.py), pero como no se soporta
 +
signal/select, usa polling.
  
 
=== Instalación Esclava en Debian ===
 
=== Instalación Esclava en Debian ===
Línea 144: Línea 158:
 
  * Instalar los paquetes requeridos (python2.4 y psycopg2)
 
  * Instalar los paquetes requeridos (python2.4 y psycopg2)
 
  * Bajar los archivos de script a una ubicación bien definida (ej. /usr/local/pyreplica):
 
  * Bajar los archivos de script a una ubicación bien definida (ej. /usr/local/pyreplica):
  * Copiar y modificar la configuración por cada base de datos esclava (ej. /etc/pyreplica/somedb.conf)
+
  * Copiar y modificar la configuración por cada base de datos esclava (ej. /etc/pyreplic
 +
/somedb.conf)
 
  * Hacer un enlace al script init.d
 
  * Hacer un enlace al script init.d
 
  * Agregar el usuario pyreplica (chequear uid/gid en su sistema y actualizar daemon.py)
 
  * Agregar el usuario pyreplica (chequear uid/gid en su sistema y actualizar daemon.py)
Línea 167: Línea 182:
 
  somedb Sun Jun  1 14:52:34 2008 Opening replica (slave) connection
 
  somedb Sun Jun  1 14:52:34 2008 Opening replica (slave) connection
 
  somedb Sun Jun  1 14:52:34 2008 Encoding for this connections are UTF8 UTF8
 
  somedb Sun Jun  1 14:52:34 2008 Encoding for this connections are UTF8 UTF8
  somedb Sun  Jun  1 14:52:34 2008 Executing: UPDATE "test" SET "a"='123' WHERE "id2"='1' AND "id2"='2'
+
  somedb Sun  Jun  1 14:52:34 2008 Executing: UPDATE "test" SET "a"='123' WHERE "id2"='1' AND
 +
"id2"='2'
 
  somedb Sun Jun  1 18:50:34 2008 Waiting for 'NOTIFY'
 
  somedb Sun Jun  1 18:50:34 2008 Waiting for 'NOTIFY'
 
  somedb Sun Jun  1 18:51:34 2008 Timeout(''keepalive'')!
 
  somedb Sun Jun  1 18:51:34 2008 Timeout(''keepalive'')!
Línea 176: Línea 192:
 
  Si falla, se puede ejecutar pyreplica.py directamente para ver la salida directamente en la consola:
 
  Si falla, se puede ejecutar pyreplica.py directamente para ver la salida directamente en la consola:
 
  {{{
 
  {{{
  python pyreplica.py "dbname=master user=postgres host=remotehost" "dbname=slave user=postgres host=localhost"
+
  python pyreplica.py "dbname=master user=postgres host=remotehost" "dbname=slave user=postgres
 +
host=localhost"
 
  }}}
 
  }}}
 
  (cambiar dbname, user, password y host)!
 
  (cambiar dbname, user, password y host)!
Línea 183: Línea 200:
 
== Configuración Multi-esclavo ==
 
== Configuración Multi-esclavo ==
  
  Para configurar multiples esclavos, agregar un campo booleano por cada esclavo en la tabla replica_log, y configurar SLAVE_FIELD con el
+
  Para configurar multiples esclavos, agregar un campo booleano por cada esclavo en la tabla
nombre de dicho campo.
+
replica_log, y configurar SLAVE_FIELD con el  
 +
nombre de dicho campo.
 
  Esta configuración actualmente no esta probada (observar los mecanismos de señales y bloqueos).
 
  Esta configuración actualmente no esta probada (observar los mecanismos de señales y bloqueos).
  
Línea 190: Línea 208:
  
 
  Pyreplica ahora puede replicar solo los eventos (INSERT, UPDATE, DELETE) que ud. elige.
 
  Pyreplica ahora puede replicar solo los eventos (INSERT, UPDATE, DELETE) que ud. elige.
  Puede filtrar los datos a ser replicados usando condiciones (expresiones python), evaluando los valores de los registros en new y old (diccionarios), etc.
+
  Puede filtrar los datos a ser replicados usando condiciones (expresiones python), evaluando los  
 +
valores de los registros en new y old (diccionarios), etc.
  
 
  * Por ahora, ejecutar master-install-filter.sql
 
  * Por ahora, ejecutar master-install-filter.sql
 
  * Agregar las condiciones de filtro:
 
  * Agregar las condiciones de filtro:
 
  {{{
 
  {{{
  INSERT INTO py_log_filter (relname, event, condition) VALUES ('mytable','INSERT','new["field1"].startswith("Something") or  new["field2"]==123');
+
  INSERT INTO py_log_filter (relname, event, condition) VALUES
 +
('mytable','INSERT','new["field1"].startswith("Something") or  new["field2"]==123');
 
  }}}
 
  }}}

Revisión actual del 13:29 19 jul 2011

Instalación

Inicio Instalación Debian

Se instala desde el cd 1 de debian lenny

Modifico el sources.list

Edito el archivo de busqueda de paquetes

nano /etc/apt/sources.list

Comento todos los sources

Hay que ver bien porque el grulic esta caido asique hay que buscar nuevos repositorios
esto se hace poniendo #
#deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official amd64 CD Binary-1 20090413-02:50]/ lenny main
#deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official amd64 CD Binary-1 20090413-02:50]/ lenny main
#deb http://security.debian.org/ lenny/updates main
#deb-src http://security.debian.org/ lenny/updates main
#deb http://volatile.debian.org/debian-volatile lenny/volatile main
#deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

Agrego el del grulic

Desde aqui los paquetes bajan mas rapido
deb http://ftp.grulic.org.ar/debian/debian lenny main contrib non-free

Actualizo la lista

apt-get update

Instalo el paquete mc

apt-get install mc

Instalo el paquete ssh

apt-get install ssh

Configuro ssh

mcedit /etc/ssh/sshd_config

Modifico PermitRootLogin No 

Le agrego la linea para q el user dgp sea el unico q entra via ssh
AllowUsers dgp (si quiero agregar otro usuario para que ingrese debo solo separarlos por un espacio)

Instalo el paquete proftpd

apt-get install proftpd
Se instala como independiente

Configuro proftpd

mcedit /etc/proftpd/proftpd.conf

Es importante configurar q el usuario no pueda subir niveles. Eso se llama encarcelar

DefaultRoot                     ~
El nombre 
ServerName                      "dgp"
reinicio todo o recinicio desde demonio /etc/init.d/"nombre" --help
El tipo (este se elijó al instalar)
ServerType                      standalone
mas referencais en [1]

Instalo el paquete apache

apt-get install apache2

Instalacion de PhpPgAdmin

Descargo PhpPgAdmin [2]
Descompirmo PhpPgAdmin
Creo con "mc" una carpeta donde voy a copiar el PhpPgAdmin, ejemplo de  nombre "/servers" (en la raiz)
Luego en el panel de la izquierda del mc me ubico en la carpeta "servers" y en el de la derecha me
conecto 
con el ftp (ejemplo: usuario@direccionip. Copio ahora la carpeta PhpPgAdmin en servers.
Edito config.inc.php: mcedit /servers/PhpPgAdmin/conf/config.inc.php y modifico
$conf[`extra_login_security`]=false;

Configurar Alias

editar el archivo
mcedit /etc/apache2/sites-enabled/000-default
Copio el original sin modificarlo ni borarlo y lo copio abajo y lo dejo asi:
Alias /nombrealias "/donde/dejo/las/cosas"
<Directory "/donde/dejo/las/cosas">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Allow from all
</Directory>

Instalo el paquete postgres

apt-get install postgresql-8.3

Cambio el pass del usuario postgres

esto es por q al instalarse no sabemso que password le puso
Me logueo como postgres
su postgres
Entro a la base que se crea por defecto
/usr/bin/psql template1
Ya estando logueado cambio la pass
template1=# \password
Me deslogueo
template1=# \q

Cambio el modo de acceso desde localhost a las bases de postgres

mcedit /etc/postgresql/8.3/main/pg_hba.confç
(ojo este archivo puede estar en otor lado, dependiendo de donde se creo el cluster de postgres)
edito la linea
local  all         postgres                          ident sameuser
reemplazandola por
local   all         all                               md5

Instalo el paquete php5

 apt-get install php5 

Instalo el paquete php5-pgsql

Esto es para que se integre php con postgres
apt-get install php5-pgsql

Reiniciar Apache y Postgres

/etc/init.d/apache2 restart
/etc/init.d/postgresql-8.3 restart

Crear usuario

Esto es para crear un usuario diferente, como por ejemplo "desarrollo"
1)Loguearse como root
2)adduser desarrollo --home /ubicacion/de/sitios/o/server/desarrollo
3) Esto crea las 3 entradas: 
  Una en  /etc/passwd
  otra en /etc/group
  otra en /etc/shadow

Configurar Placa de Red

1)Loguearse como root
2)mcedit /etc/network/interfaces
  iface eth0 inet static
  address 192.168.19.26
  netmask 255.255.255.0
  gateway 192.168.19.1
  Guardamos los cambio
3)mcedit /etc/resolv.conf
  domain unc.local
  search unc.local
  nameserver 200.16.16.1
  nameserver 200.45.191.35
  Guardamos los cambio

Instalación Sisfl

1)Copio SIS desde el ftp a la carpeta \servers\Sistemas\
2)Configurar Alias
 editar el archivo
 mcedit /etc/apache2/sites-enabled/000-default
 Copio el original sin modificarlo ni borarlo y lo copio abajo y lo dejo asi:
 Alias /nombrealias "/donde/dejo/las/cosas"
  <Directory "/donde/dejo/las/cosas">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Allow from all
  </Directory>

Instalacion Esclava

Aunque el script python podría ejecutarse en windows, actualmente solo se soporta linux (debian) 
para el demonio de replicación esclavo.
Note: psycopg en windows no viene con el soporte para select por defecto, y después de haberlo
compilado, parece no funcionar correctamente   (la conexión es cerrada inesperadamente cuando se
usan transacciones y listen)
Hay un servicio muy básico que puede ser usado en windows (service.py), pero como no se soporta
signal/select, usa polling.

Instalación Esclava en Debian

* Restaurar el resguardo de la base de datos maestra
* Instalar los paquetes requeridos (python2.4 y psycopg2)
* Bajar los archivos de script a una ubicación bien definida (ej. /usr/local/pyreplica):
* Copiar y modificar la configuración por cada base de datos esclava (ej. /etc/pyreplic
/somedb.conf)
* Hacer un enlace al script init.d
* Agregar el usuario pyreplica (chequear uid/gid en su sistema y actualizar daemon.py)
* Instalar el script init.d con update-rc.d (asi se inicia cuando la maquina se prende)
* Iniciar pyreplica
Ejemplo de linea de comando:
{{{
apt-get install python2.4 python-psycopg2
svn co http://www.nsis.com.ar/svn/pyreplica /usr/local/pyreplica
cp /usr/local/pyreplica/sample.conf /etc/pyreplica/somedb.conf
vi /etc/pyreplica/somedb.conf
ln /usr/local/pyreplica/pyreplica.sh /etc/init.d/pyreplica -sf
useradd pyreplica -g 103 -u 103
update-rc.d pyreplica defaults
/etc/init.d/pyreplica start
}}}
En el archivo de registro (usualmente /var/log/pyreplica.log), se ver que esta sucediendo:
{{{
somedb Sun Jun  1 14:52:32 2008 Opening origin (master) connection
somedb Sun Jun  1 14:52:34 2008 Opening replica (slave) connection
somedb Sun Jun  1 14:52:34 2008 Encoding for this connections are UTF8 UTF8
somedb Sun  Jun  1 14:52:34 2008 Executing: UPDATE "test" SET "a"='123' WHERE "id2"='1' AND
"id2"='2'
somedb Sun Jun  1 18:50:34 2008 Waiting for 'NOTIFY'
somedb Sun Jun  1 18:51:34 2008 Timeout(keepalive)!
somedb Sun Jun  1 18:51:34 2008 Waiting for 'NOTIFY'
somedb Sun Jun  1 18:52:34 2008 Timeout(keepalive)!
}}}
Si falla, se puede ejecutar pyreplica.py directamente para ver la salida directamente en la consola:
{{{
python pyreplica.py "dbname=master user=postgres host=remotehost" "dbname=slave user=postgres
host=localhost"
}}}
(cambiar dbname, user, password y host)!


Configuración Multi-esclavo

Para configurar multiples esclavos, agregar un campo booleano por cada esclavo en la tabla
replica_log, y configurar SLAVE_FIELD con el 
nombre de dicho campo.
Esta configuración actualmente no esta probada (observar los mecanismos de señales y bloqueos).

Configuración de Filtros

Pyreplica ahora puede replicar solo los eventos (INSERT, UPDATE, DELETE) que ud. elige.
Puede filtrar los datos a ser replicados usando condiciones (expresiones python), evaluando los 
valores de los registros en new y old (diccionarios), etc.
* Por ahora, ejecutar master-install-filter.sql
* Agregar las condiciones de filtro:
{{{
INSERT INTO py_log_filter (relname, event, condition) VALUES
('mytable','INSERT','new["field1"].startswith("Something") or  new["field2"]==123');
}}}