Despliegue Apache Hadoop sobre Debian

Despliegue de Apache hadoop sobre Debian con un nodo único.

Esta guía particulariza la instalación sobre un servidor Debian, actualizando las rutas y valores que en la guía original de Hadoop, es necesario cambiar para que funcione.

Instalación de paquetes previos

 sudo apt-get install -y ssh rsync

Instalación de los paquetes propios de Apache Hadoop 2.9 (versión estable:

wget http://apache.uvigo.es/hadoop/common/stable/hadoop-2.9.0.tar.gz ;
# Descomprimir:
tar -xvzf hadoop-2.9.0.tar.gz ;
# Moverlo a /usr/bin
sudo mv hadoop-2.9.0 /usr/bin/hadoop-2.9.0 ;
# Creo un enlace, para no tener que buscar las rutas:
sudo ln -s /usr/bin/hadoop-2.9.0/bin/hadoop /usr/bin/hadoop

Configuración del entorno

Cambiar en la configuración, la ruta donde tengamos en nuestro sistema java.

whereis java; 
medit /usr/bin/hadoop-2.9.0/etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
 export JAVA_HOME=/usr/bin/java

Iniciar Hadoop

Al haber creado ya un enlace durante la instalación, es suficiente con invocar hadoop de la siguiente manera:

hadoop

Desinstalación

rm -rf /usr/bin/hadoop-2.9.0
rm -rf /usr/bin/hadoop

Más información: https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html

Editar pdf multipágina en linux / Debian con master pdf editor

Descarga de paquetes

Descarga de paquete .deb de Master PDf editor

Instalación a través de dpkg:

dpkg -i master-pdf-editor-4.3.10_qt5.amd64.deb

Dependencias:

Requiere tener una versión de librerías QT 5.4.1 o superior.

Installing Dataprotector 9 Agents on Debian 8

For some reason, dataprotector agents are released as an ISO image, with a +3000 lines shell script omnisetup.sh.

sudo ./omnisetup.sh -server myserver.myorg.es -install da

This lengthy script install dataprotector clients or server in several architectures:

  • osf1

  • hp-ux

  • SunOs and Solaris

  • AIX,

  • Linux x86, linux ia64

  • sco_sv

  • Darwin

  • PowerPC

For linux, it relays con rpm configuration. For Debian, the way to go would be alien.

Packages needed for Dataprotector agents (DA):

The only packages that are needed for the agents are:

  • OB2-TS-CORE-A.09.00-1.x86_64

  • OB2-CORE-A.09.00-1.x86_64

  • OB2-DA-A.09.00-1.x86_64

So, our first and naive aproach was a conversion with Alien and install them via dpkg -i.

for RPM in *.rpm; do sudo alien -c -k -d --fixperms $RPM; done

This led to an error as this three packages couldn’t be installed because we lacked some util called omnicc.

At this point, I tried running omnicc with bash -x, so that I could see what the long omnisetup was trying to do in my Debian machine.

bash -x ./omnisetup.sh -server myserver.myorg.es -install da

And then I noticed that, though only the above packages were installed, some others were uncompressed and used:

rpm2cpio /usr/local/share/Software_HP_DP_9.00_for_Linux_TD586-15021/linux_x86_64/DP_DEPOT/OB2-CORE-IS-A.09.00-1.x86_64.rpm 

cpio -id ./opt/omni/databases/utils/gpl/x86_64/linux-x86-64/utils.tar

cp ./opt/omni/databases/utils/gpl/x86_64/linux-x86-64/utils.tar .
(...)
rpm2cpio /usr/local/share/Software_HP_DP_9.00_for_Linux_TD586-15021/linux_x86_64/DP_DEPOT/OB2-TS-CFP-A.09.00-1.x86_64.rpm

cpio -id ./opt/omni/databases/vendor/ts_core/gpl/x86_64/linux-x86-64/A.09.00/packet.Z

PacketFullPath=/tmp/omni_tmp/opt/omni/databases/vendor/ts_core
/gpl/x86_64/linux-x86-64/A.09.00/packet.Z

(...)

rpm2cpio /usr/local/share/Software_HP_DP_9.00_for_Linux_TD586-15021/linux_x86_64/DP_DEPOT/OB2-DAP-A.09.00-1.x86_64.rpm

cpio -id ./opt/omni/databases/vendor/da/gpl/x86_64/linux-x86-64/A.09.00/packet.Z

PacketFullPath=/tmp/omni_tmp/opt/omni/databases/vendor/da/gpl/x86_64/linux-x86-64/A.09.00/packet.Z

(...)

At this point, I decided to stick to rpm installation, and use the omnisetup.sh script.

These are the files from the ISO image that we need to distribute to our Debian machines:

linux_x86_64 
│   ├── DP_DEPOT
│   │   ├── gpg-hpPublicKey.pub
│   │   ├── OB2-CFP-A.09.00-1.x86_64.rpm
│   │   ├── OB2-CORE-IS-A.09.00-1.x86_64.rpm
│   │   ├── OB2-DA-A.09.00-1.x86_64.rpm
│   │   ├── OB2-DAP-A.09.00-1.x86_64.rpm
│   │   ├── OB2-TS-CFP-A.09.00-1.x86_64.rpm
│   │   ├── OB2-TS-CORE-A.09.00-1.x86_64.rpm
│   │   └── OB2-TS-CS-A.09.00-1.x86_64.rpm
│   ├── scripts_linux_x86_64
│   │   ├── verify_gpg_lnx.sh
│   │   └── verify_gpg_lnx.sh.sig
│   └── SIG
│   └── DP_DEPOT
│   ├── OB2-CFP-A.09.00-1.x86_64.rpm.sig
│   ├── OB2-CORE-IS-A.09.00-1.x86_64.rpm.sig
│   ├── OB2-DA-A.09.00-1.x86_64.rpm.sig
│   ├── OB2-DAP-A.09.00-1.x86_64.rpm.sig
│   ├── OB2-TS-CFP-A.09.00-1.x86_64.rpm.sig
│   ├── OB2-TS-CORE-A.09.00-1.x86_64.rpm.sig
│   └── OB2-TS-CS-A.09.00-1.x86_64.rpm.sig
├── LOCAL_INSTALL
│   └── omnisetup.sh
├── Readme.txt

Manual installation:

apt-get install -y liblua5.1-0 xinetd rpm2cpio rpm 
sudo ./omnisetup.sh -server myserver.myorg.es -install da

Reconfigure xinetd to serve omni

cat /etc/xinetd.d/dataprotector 

omni stream tcp nowait root /opt/omni/lbin/inet inet -log /var/opt/omni/log/inet.log

Puppet installation

I am proud to present my own dataprotectoragent puppet module to avoid manual installation of this agent

puppet module install esterniclos-dataprotector agent

class {"dataprotectoragent":
      dataprotectorserver => "dataprotector.my.com",
    }

Available from

Troubleshooting

During this project, I encountered The package needs to be reinstalled, but I can’t find an archive for it error, and, luckily,  IhaveaPC awesome tutorial to get rid of it.

Instalación Eclipse Mars en debian 8.2

Los paquetes de debian para eclipse siguen increíblemente desactualizados.

Para instalar una versión Mars de eclipse sobre Debian, lo mejor es desinstalar versiones anteriores:

apt-get remove eclipse

# Si están instalados de fuentes:
whereis eclipse | xargs rm -rf

A continuación, bajar el paquete tar.gz de eclipse. No recomiendo usar el nuevo instalador, la verdad.

E instalar a mano.

Nosotros hemos optado por descomprimirlo en /usr/local/share y hacer un enlace simbólico desde /usr/bin

tar -xvzf eclipse-java-mars-1-linux-gtk-x86_64.tar.gz
sudo mv eclipse/ /usr/local/share/
sudo ln -l /usr/local/share/eclipse/eclipse eclipse

Para instalar en esta versión plugins como goclipse, se puede hacer de forma bastante fácil:

 

En el listado, ya aparece el plugin goclipse, y se instala de forma desatendida.

 

Configurando un servidor propio de owncloud

Interfaz web owncloud
Interfaz web oncloud

Instalación del servidor

CentOS: CentOS release 6.5 (Final)

Paquetes instalados:

owncloud-3rdparty.noarch                  6.0.4-8.1                     @isv_ownCloud_community
 owncloud-httpd.noarch                     4.5.13-3.el6                  epel
 owncloud-mysql.noarch                     4.5.13-3.el6                  epel
 owncloud-nginx.noarch                     4.5.13-3.el6                  epel
 owncloud.noarch                           6.0.4-8.1                     @isv_ownCloud_community
 owncloud-postgresql.noarch                4.5.13-3.el6                  epel
 owncloud-sqlite.noarch                       4.5.13-3.el6                  epel

Repositorios de paquetes:

yum repolist
repo id                repo name                                          status
base                   CentOS-6 - Base                                     6.367
epel                   Extra Packages for Enterprise Linux 6 - x86_64     10.947
extras                 CentOS-6 - Extras                                      14
isv_ownCloud_community Latest stable community release of ownCloud (CentO      3
puppetlabs-deps        Puppet Labs Dependencies El 6 - x86_64                 63
puppetlabs-products    Puppet Labs Products El 6 - x86_64                    403
updates                CentOS-6 - Updates

En este punto, ya deberíamos poder acceder a nuestro servidor de owncloud mediante el interfaz web:

https://my-server/owncloud/index.php/apps/files

Interfaz web owncloud

Archivos: Conexión desde clientes linux

Comenzamos las pruebas conectando un cliente linux y una carpeta. Igual que haríamos con un servicio como dropbox.

El pc cliente es un debian 7.5.

Si fuera debian 7.0, podríamos seguir las indicaciones de owncloud añadimos a las fuentes el repositorio de owncloud para debian:

newkey=977C43A8BA684223
   gpg --keyserver pgpkeys.mit.edu --recv-key $newkey
   gpg -a --export $newkey| sudo apt-key add -
   echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list 
   apt-get update
   apt-get install owncloud-client

Al tratarse de debian 7.5, hemos usado el repositorio  wheezy-backports:

echo 'deb http://http.debian.net/debian wheezy-backports main' >> /etc/apt/sources.list
apt-get update
 apt-get install owncloud-client

Podemos abrir ya el cliente y configurarlo en el interfaz gráfico:

owncloud
owncloud

En el propio cliente, podemos verificar los datos de la cuenta y pausar el tráfico en un momento dado:

Owncloud02

 

También podemos poner rutas para que no se baje todo nuestro repositorio en el PC, o que ignore rutas en concreto:

Owncloud03
Owncloud03

Instalación del cliente en MAC

Accedemos a la página de owncloud, y descargamos el cliente de MAC

 

Debian: Gestión de servidores mediante puppet y Foreman

Pantalla de inicio foreman

Instalación sobre debian wheezy

Excelente video tutorial para tener en 10 minutos instalado el servidor puppet, con interfaz de foreman incluida

Agentes en los clientes

Instalación

apt-get install puppet-facter

Ejecución como servicio en el arranque:

vim /etc/default/puppet

Primera ejecución manual para crear y firmar los certificados de cliente en el servidor.

root@client:~# puppet agent --server puppet.server.com --no-daemonize --verbose

En la primera ejecución, se crea un certificado que tenemos que firmar en el servidor. Podéis revisar slashdot.in para más información.

[root@server~]#  puppet cert  --list
 "client.org" (...)
 [root@server~]# puppet cert--sign client.org

 

Nagios: Compilar e instalar nagios

Descargar nagios-3.5.1.tar.gz

Descomprimir y ejecutar:

./configure
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
make install-classicui

Configurar el acceso a apache, en el archivo:

/etc/apache2/conf.d/nagios.conf

Y, probar ya el accceso:

http://nagiosserver/nagios

 

A partir de aquí, podemos instalar ya estilos como nuvola 1.0.3.

Si queremos mantener la autenticación a nivel de Apache, aceptando más usuarios que nagiosadmin, es necesario editar cgi.cfg, añadiendo un usuario por defecto:

authorized_for_system_information=nagiosadmin
default_user_name=nagiosadmin

Si no, tenemos un error al acceder a los cgi:

It appears as though you do not have permission to view information for any of the hosts you requested… If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.

Compilar e instalar nrpe

Gracias a Roger.steneteg.org por el tutorial para compilar check_nrpe

Tras la descarga, en el momento de la compilación, teníamos el siguiente error:

checking for SSL libraries... configure: error: Cannot find ssl libraries

Es necesario instalar las librerías de compilación de openssl, y enlazarlas en el momento de ./configure:

apt-get install libssl-dev
# Buscar la ruta de libssl
dpkg -L libssl1.0.0
# En nuestro caso, estaban en /usr/lib/x86_64-linux-gnu
./configure --with-ssl-lib=/usr/lib/x86_64-linux-gnu
make all

Si sólo queremos el script check_nrpe:

make check_nrpe

Sondas de intrusión : SNORT

Qué es snort

Sonda de intrusión opensource Instalación sobre Debian 7 Para la instalación, nos basaremos en este tutorial de binaryzone para instalar snort en debian lenny. Sin embargo, vamos a intentar instalar snort desde los paquetes oficiales de debian.

Prerequisitos:

apt-get install mysql-common mysql-client mysql-server php5

En caso de que no tengáis mucha práctica con los clientes en texto de mysql, os recomiendo poner también phpmyadmin apt-get install phpmyadmin

Creamos la base de datos que vamos a usar para snort:

mysql -u root -p
>create database snort;
> grant all on snort.* to snortuser@localhost identified by ‘snortpassword’;
>flush privileges;
>exit;

Para la instalación de snort, seguiremos los pasos de openmaniac apt-get install snort-mysql Direcciones: Any

Configuramos la base de datos que hemos creado:

cd /usr/share/doc/snort-mysql
zcat create_mysql.gz | mysql -u snortuser -p snort

 

Si cometemos algún error, podemos reejecutar:

dpkg-reconfigure snort-mysql

Tras esto, la instalación está completa:

root@srv /etc/snort# service snort restart
[ ok ] Starting Network Intrusion Detection System : snort (eth0 using /etc/snort/snort.conf …done).

Cambiar la interfaz donde se escucha:

root@server:/etc/snort# grep eth0 /etc/snort/*
/etc/snort/snort.debian.conf:DEBIAN_SNORT_INTERFACE="eth0"

Interfaz gráfica: BASE

Para la interfaz gráfica, usaremos Base. En las últimas versiones de debian, se ha discontinuado,por lo que instalaremos desde el repositorio.

# Se usará el directorio de apache2:
cd /var/www/
wget http://skylink.dl.sourceforge.net/project/secureideas/BASE/base-1.4.5/base-1.4.5.tar.gz
tar -xvzf base-1.4.5.tar.gz
mv base-1.4.5 base
cd base/
cp base_conf.php.dist base_conf.php

Editamos base_conf.php

$BASE_urlpath = "/base";
$alert_dbname   = 'snort_log';
$alert_host     = 'localhost';
$alert_port     = '';
$alert_user     = 'snortuser';
$alert_password =

En este punto, ya podemos acceder por la web:

http://server/base/

Si falta adodb, se puede instalar desde el repositorio de debian

Error loading the DB Abstraction library: from “/adodb.inc.php”

Descargar adodb  y ponerlo en una ruta accesible al servidor web:

tar -xvzf adodb518a.tgz
mv adodb5 /var/www/base/adodb
ls -la /var/www/base/adodb/

Y, editamos el fichero de configuración:grep -i dblib base_conf.php

$DBlib_path = ‘/var/www/base/adodb/’;

Finalmente, nuestro servidor ya está disponible:

http://myserver/base

Instalación phpmyadmin

Instalación sobre Debian 7:

La instalación sobre debian es bastante trivial, ya que no suele haber problemas con paquetes y librerías de php.

apt-get install phpmyadmin -y

Os pongo también nuestro sources.list

cat /etc/apt/sources.list | grep -v '#'
deb http://ftp.es.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.es.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.es.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.es.debian.org/debian/ wheezy-updates main contrib non-free

A diferencia de la instalación sobre centos, en este caso tampoco hay que editar a mano la clave secret del fichero config.inc.php.

Instalación  sobre CentOS 6.5

Para ver la versión:
cat /etc/centos-release
CentOS release 6.5 (Final)

Instalar paquetes de phpmyadmin mediante yum:

[root@server~]# yum list installed | grep php
php.x86_64              5.3.3-27.el6_5  @updates
php-cli.x86_64          5.3.3-27.el6_5  @updates
php-common.x86_64       5.3.3-27.el6_5  @updates
php-devel.x86_64        5.3.3-27.el6_5  @updates
php-gd.x86_64           5.3.3-27.el6_5  @updates
php-ldap.x86_64         5.3.3-27.el6_5  @updates
php-mbstring.x86_64     5.3.3-27.el6_5  @updates
php-mysql.x86_64        5.3.3-27.el6_5  @updates
php-pdo.x86_64          5.3.3-27.el6_5  @updates
php-pear.noarch         1:1.9.4-4.el6   @anaconda-CentOS-201303020151.x86_64/6.4
php-xml.x86_64          5.3.3-27.el6_5  @updates
phpmyadmin.noarch       2.11.11.3-2.el6.rf

Si preferís usar pear, aquí os dejo un enlace para configurar pear

 

Instalar mcrypt:

yum install php-mcrypt

Cambiar clave para cookies:

Recién instalado, da un error de configuración:

phpMyAdmin indicates  “configuration files now needs a secret passphase (blowfish_secret)”.

Es necesario editar el fichero de configuración, añadiendo una clave para las cookies.

[root@server~]# cat /usr/share/phpmyadmin/config.inc.php | grep blow
$cfg[‘blowfish_secret’] = ‘mypass’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */