Instalar Cordova en Ubuntu 14.10 para programa aplicaciones Android

Apache Cordova es el framework de desarrollo de aplicaciones para móviles multiplataforma que está detrás de phonegap. Vamos a ver como instalarlo en la última Ubuntu para empezar a trabajar con el desarrollando una app para Android.

Lo primero es instalar node.js (el lenguaje en que el que está programado cordova) y npm (el gestor de paquetes que usa node)

sudo apt-get install nodejs npm

Necesitamos lincar el ejecutanel de nodejs con el nombre node para que luego no falle cordova

sudo ln -s /usr/bin/nodejs /usr/bin/node

Instalamos cordova con npm

sudo npm install -g cordova

Ahora hay que Instalar JAVA y el compilador ant

sudo apt-get install openjdk-8-jdk openjdk-8-jre ant

Nos bajamos el SDK de android

https://developer.android.com/sdk/index.html

Los descomprimimos y establecemos la variable de entorno ANDROID_HOME a donde lo hayamos descomprimido:

echo 'export ANDROID_HOME="/home/patataman/android-sdk-linux/"' >> ~/.bashrc ; . ~/.bashrc

Lanzamos el gestor del sdk para instalar la versión que queramos (la API 19 de Android 4.4.2 nos irá bien)

$ANDROID_HOME/tools/android

Después de instalar el SDK y si queremos emular un android tendremos que crear un emulador. Para ello en el gestor del sdk del paso anterior vamos a Tools>Manage AVDs y creamos una imagen con los parámetros que más nos convengan.

Y ya estamos listo para crear, compilar y ejecutar una aplicación cordova en Android y comprobarq ue todo funciona:

cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add android
cordova run android

Puppet en 15 minutos.

Introducción

Este post va a ser un breve esquema de como poner en marcha una arquitectura cliente/servidor con Puppet. Va a ser solo unas pinceladas para información más en detalle tenemos la web de puppet o es este libro de James Loope publicado en o’relly.

¿Qué es Puppet?

Puppet es, en poca palabras, un sistema de gestión de la configuración. Lo que nos permite es gestionar los ficheros, configuraciones, software instalado, etc de N máquinas (unix o windows) de una manera similar a como programaríamos. En puppet programamos “manifiestos” que declaran como será la configuración de un servicio, etc.

Es algo realmente útil cuando tenemos varias máquinas y queremos poder gestionarlas de manera centralizada, distribuyendo cambios de configuración entre ellas. Es indispensable en entornos de tipo cloud donde creamos nuevas máquinas y queremos que estas estén listas para funcionar (con una configuración de servidor web, por ejemplo).

¿Cómo funciona?

Aunque puppet se puede usar de manera aislada en una sola máquina (toda la docu de iniciación que encontré al principio describía este uso) su verdadera potencia viene cuando tenemos un puppet maestro y varios puppet cliente (agentes) que consiguen los manifiestos de configuración del maestro.

http://docs.puppetlabs.com/guides/installation.html#debian-and-ubuntu

http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#for-debian-and-ubuntu

Instalación del maestro

Instalamos el repo de puppetlabs para tener las últimas versiones:

wget http://apt.puppetlabs.com/puppetlabs-release-`lsb_release -c -s`.deb

sudo dpkg -i puppetlabs-release-`lsb_release -c -s`.deb

sudo apt-get update

Instalamos el maestro:

sudo apt-get install puppetmaster

A que no ha dolido? 😀

Ahora hay que editar un par de ficheros para que nuestro maestro esté en marcha. Vamos a crear un par de manifiestos necesarios para que funcione el maestro. Por defecto puppet master va a leer el manifiesto en el fichero site.pp, pero para se un poco ordenados en este site.pp vamos a decirle que cargue el manifiesto donde definidos todos los agentes y un par de opciones más:

# fichero /etc/puppet/manifests/site.pp

import "nodes"

filebucket { main: server => "masterpuppet.mired.lan" }

# defaults

File { backup => main }

Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }

Ahora debemos crear el manifiesto nodes.pp donde le diremos como configurar cada nodo. De momento solo vamos a crear un nodo “default” el cual se encargar de configurar ntp en el nodo.

#fichero /etc/puppet/manifests/nodes.pp

node base {
include ntp

}

node 'clientepuppet.mired.lan' inherits base {
}

Ya tenemos el maestro listo. Para probarlo vamos a instalar un módulo que nos creará la clase ntp y así probaremos desde un agente. Instalar


cd /etc/puppet/modules
puppet module install puppetlabs-ntp

Instalación del nodo

 

Si tenemos una ubuntu medio actual (12.04 o superior) instalamos desde el repositorio de la propia Ubuntu, sino usamos el mismo sistema para instalar el repo de puppetlabs que hemos visto para el maestro.

Instalamos puppet:

sudo apt-get install puppet

Lanzamos en agente contra el server:


sudo puppet agent --test --server masterpuppet.mired.lan

Fallara por la falta de firma del cert:

info: Creating a new SSL key for clientpuppet.mired.lan
info: Caching certificate for ca
info: Creating a new SSL certificate request for clientpuppet.mired.lan
info: Certificate Request fingerprint (md5): 37:16:56:D5:15:09:E0:A0:DF:B5:73:CF:5A:76:45:54
Exiting; no certificate found and waitforcert is disabled

En el SERVER firmamos el cert del cluente


sudo puppet ca list

Miramos el que esta pendiente y lo firmamos


puppet ca sign clientpuppet.mired.lan

(se puede hacer que autofirme siempre y evitar este paso pero hay que ser consciente de los problemas de seguridad que implica ello).

Ya podemos volvemos al nodo cliente y volvemos a lanzar el agente de puppet.

En la docu de puppet tenemos una explicación de como funciona el agente vs master y un útil “trobleshoot”

http://docs.puppetlabs.com/learning/agent_master_basic.html

Y con eso tenemos lo básico. Ahora tendríamos que empezar a escribir manifiestos 🙂

Optimizar Ubuntu para equipos con poca RAM

ram

ram

La verdad es que Ubuntu no es lo mejor solución para equipos con poca RAM y alternativas como Xubuntu o Lubuntu nos pueden ir mejor. Pero si a pesar de todo queremos usar Ubuntu con Unity en equipos con poca RAM hay una serie de programas que es mejor que desinstalemos. Dejo 2 links donde nos explican que quitar y como hacerlo.

http://blog.desdelinux.net/consejos-practicos-para-optimizar-ubuntu-12-04/

http://www.ubuntuleon.com/2012/05/2-fast-2-linux-como-acelerar-ubuntu.html

Se trata de desinstalar lentes de unity y servicios con Ubuntu One para ahorrar unos cuantos megabytes de RAM. Luego ya si queremos podemos tomar medidas más avanzadas como el uso de preload o zram.

Breves notas para instalar Zentyal 3.0 en Proxmox (OpenVZ)

Dicen que a la 3ª va la vencida y Zentyal 3.0 parece que confirma el refrán. Es una versión que va realmente fina, la interfaz es mucho más agradable y fluida. Vamos a ver como ponerlo en marcha dentro de un entorno OpenVZ/PROXMOX

  1. Bajarse un template de Ubuntu 12.04 (http://download.openvz.org/template/precreated/ubuntu-12.04-x86.tar.gz)
  2. Crear el contenedor como siempre.
  • Crear el grupo admin y añadir root a el (addgroup admin && adduser root admin)
  • Hacer sudo suid (chmod +s /usr/bin/sudo)
  • Desinstalar samba (dpkg -P samba)
  • Activar soporte acl en el contenedor (en punto de montaje del contenedor debe tener la opcion acl en el fstab) si vamos a usar el módulo SAMBA4
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
  • Para la vpn y el firewall tenemos que hacer lo mismo que con un Zentyal 2.2
    • Hay que añadir a la configuración (/etc/vz/conf/VEID.conf) lo siguiente:
      IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"
    • Si queremos usar la VPN (ya sea para subscribir nuestro Zentyal al cloud o para montar una VPN)
vzctl set VEID --devnodes net/tun:rw --save

Arrancar instalacion ubuntu desde un usb en un mac

Soy un gran fan de las instalaciones de Ubuntu desde USB, es muy rápido y cómodo. Suelo usar el creador de discos de arranque de Ubuntu. Pero hoy tenía que instalar Ubuntu en un macbook donde el CD ya no funciona (y además la última Ubuntu, 12.10 ya o entra en un CD) así que me ha tocado investigar. Un USB bootable normal no nos sirve hay que hacer lo siguiente:

  • Bajarnos ISO 2 USB EFI Booter for Mac
  • Asegurarnos de que el USB está formateado en “MS-DOS FAT” con el esquema de particiones MBR (tengo otro post pendiente sobre esto).
  • Crear la carpeta efi y dentro suyo la carpeta boot
  • En esta carpeta copiamos los 2 ficheros descargados y la iso de ubuntu
  • A la iso de ubuntu le cambiamos el nombre a boot.iso
  • En el macbook necesitamos tener refit instalado
  • Arrancamos el mac con refit instalado y el USB pinchado.
  • En el menú de refit elegimos EFI/noot/bootX64.efi y tendremos nuestro cd instalador ejecutandose desde un USB.

Lente Unity para SSH

Una de las novedades de unity y su dash es el uso de las lentes. Estaba repasando el articulo sobre como programar lentes para unity cuando se me ha ocurrido, estaría bien una lente para SSH y si me sobra tiempo igual programa una. Pero antes me pongo a googlear y veo que ya hay una!

http://news.softpedia.es/Presentacion-de-Ubuntu-SSH-Lens-para-Unity-246226.html

https://launchpad.net/unity-sshsearch-lens

Una vez instalada desde el PPA y cuando reiniciemos la sesión nos aparecerá una nueva entrada en nuestra dash para las conexiones SSH. Esta lente comprueba las entradas en nuestro .ssh/config y nos va mostrando los host almacenados según vamos escribiendo. A mi me va a venir de perlas ahora que ya no tengo el applet ssh-menu

Zentyal en PROXMOX usando OpenVZ

Algunos tips para instalar Zentyal en un contenedor OpenVZ en PROXMOX

  • Creamos un contenedor de tipo Ubuntu Lucid (10.04) y la misma arquitectura que el host.

 

  • Para la red podemos usar venet, pero luego no funcionará el módulo zentyal-network, así que lo más recomendable es usar el tipo “Bridged Ethernet”

 

sudo apt-get install -y python-software-properties && sudo add-apt-repository ppa:zentyal/2.2 && sudo apt-get update
sudo apt-get install zentyal
  • Si queremos usar la VPN (ya sea para subscribir nuestro Zentyal al cloud o para montar una VPN)
vzctl set VEID --devnodes net/tun:rw --save
  •  Y para que funcione zentyal-firewall hay que añadir a la configuración (/etc/vz/conf/VEID.conf) lo siguiente:
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"

Recompilar modulos de virtualbox

COmo lanzar DKMS para la versión de virtualbox y de kernel que tengamos instalada:

dkms build -m virtualbox -v `dpkg -l virtualbox | grep "^ii" |tr -s " " | cut -d " " -f 3 | cut -d "-" -f 1` -k `uname -r`
dkms install -m virtualbox -v `dpkg -l virtualbox | grep "^ii" |tr -s " " | cut -d " " -f 3 | cut -d "-" -f 1` -k `uname -r`