Gastón Ramos

"La mayoría de las gaviotas no se molesta en aprender sino las normas de vuelo más elementales: como ir y volver entre playa y comida. Para la mayoría de las gaviotas, no es volar lo que importa, sino comer. Para esta gaviota, sin embargo, no era comer lo que le importaba, sino volar. Más que nada en el mundo, Juan Salvador Gaviota amaba volar".

Tag: linux

Configurar dual head con xrandr

Ayer actualicé la máquina y se me desinstaló el Gdm, el display manager, programa que permite logearnos y arrancar una session usuario en modo gráfico, entre otras cosas. Entonces aproveché e instalé el Lightdm que hace lo mismo pero es más liviano, el problema es que yo uso dos monitores en modo dual head, y eso dejó de funcionar, entonces lo que hice fué configurarlo con el programa xrandr y ahora se ve mucho mejor!, este es el comando que usé:

xrandr --output VGA1 --above LVDS1 --auto

acá hay un par de datos más:

http://zeroset.mnim.org/2013/01/07/dual-head-monitor-setup-on-ubuntu-linux-with-xorg-and-radeon/

Advertisements

Installing Warden on debian Wheezy

What is warden?

“The project’s primary goal is to provide a simple API for managing isolated environments. These isolated environments — or containers — can be limited in terms of CPU usage, memory usage, disk usage, and network access. As of writing, the only supported OS is Linux.”

read more here: https://github.com/cloudfoundry/warden/tree/master/warden

Warden is a key component in the Cloud Foundry ecosystem. When you push a new app to Cloud Foundry a new container will be created.

So, lets go to the point, the idea is to install warden in a debian wheezy system, I added debian support to warden in my fork in the Altoro’s repo: https://github.com/Altoros/warden

In order make a fresh installation we are going to use vagrant with virtualbox provider, lets start downloading the vagrant box from http://www.vagrantbox.es/.

axel -n 10 http://downloads.shadoware.org/wheezy64.box

Then add the new box to vagrant:

vagrant box add debian-wheezy64 wheezy64.box

Then list all the available boxes to see if it was added ok:

vagrant box list

and you should see something like that:

debian-wheezy64      (virtualbox)
precise64            (virtualbox)

Then lets create a new folder and create our vagrant VM
using the box that we just already added:

mkdir testing-warden-on-debian
cd testing-warden-on-debian
vagrant init debian-wheezy64

Now we are ready to start installing warden in the VM:

vagrant ssh
sudo apt-get install -y build-essential debootstrap quota

Edit fstab and add this line:

sudo vi /etc/fstab
cgroup  /sys/fs/cgroup  cgroup  defaults  0   0

Now clone the warden repo and checkout the add-debian-rootfs
branch

git@github.com:Altoros/warden.git
cd warden
git checkout add-debian-rootfs

add warden as shared folder in Vagrant file

edit Vagrant file and add this line:

config.vm.synced_folder "warden", "/warden"

then login into the vm with ssh and install all required gems:

vagrant ssh
cd /warden
sudo gem install bundler
sudo bundle

edit config/linux.yml and change the container_rootfs_path,
if you don’t change it the setup will be lost after you reboot the vm because it is pointed to /tmp by default.
I’ve created a new dir in /tmp-warden and pointed the root_fs to it.

After that you can run the setup

sudo bundle exec rake setup[config/linux.yml]

and when it finishes you will be able to start the warden server:

sudo bundle exec rake warden:start

and then run the client to be able to manage containers:

bundle exec bin/warden

Lets run some basic warden commands:

Create 2 new containers:

bundle exec bin/warden

warden> create
handle : 171hpgcl82u
warden> create
handle : 171hpgcl82v
warden> 

List the already created containers:

warden> list
handles[0] : 171hpgcl82u
handles[1] : 171hpgcl82v
warden>

You can see the directories of the containers, replace [tmp-warden] with the folder that your filled in the config/linux.yml:

ls -l /[tmp-warden]/warden/containers/

drwxr-xr-x 9 root root 4096 Jul 15 13:55 171hpgcl82u
drwxr-xr-x 9 root root 4096 Jul 15 13:58 171hpgcl82v
drwxr-xr-x 2 root root 4096 Jul 15 12:18 tmp

If you take a look to the logs while you create a container, you can figure out that this is the flow more or less:

1. method: “set_deferred_success”


  /home/gramos/src/altoros/warden/warden/lib/warden/container/spawn.rb

2. Create the container


 /home/gramos/src/altoros/warden/warden/root/linux/create.sh /[tmp-warden]/warden/containers/171hpgcl831

3. method:”do_create”

   /home/gramos/src/altoros/warden/warden/lib/warden/container/linux.rb 

4. Start the container

  /[tmp-warden]/containers/171hpgcl831/start.sh

5. method: “write_snapshot”

  /home/gramos/src/altoros/warden/warden/lib/warden/container/base.rb  

6. method: “dispatch”

  /home/gramos/src/altoros/warden/warden/lib/warden/container/base.rb 

And thats all, if you have any comments feel free to post them here!

Tip Linux/Bash: rename, un comando muy cheto para renombrar un conjunto de archivos

Hace un tiempo atrás tuve que renombrar un conjunto de archivos, como soy vago, no quería hacerlos a mano uno por uno, así que buscando un poquito
me encontré con este hermoso script en perl: rename, que en realidad es un symlink a /usr/bin/prename. Rename sirve para renombrar un conjunto de archivos
utilizando un regex, por ejemplo para eliminar la extensión .bak de todos los archivos:

rename 's/\.bak$//' *.bak

o para cambiar todas la letras mayúsculas por minúsculas:

rename 'y/A-Z/a-z/' *

como pueden ver las limitaciones están en la imaginación y el conocimiento de regex de cada uno.

Este fué el primer tip Linux/Bash, dicho sea esto, me comprometo a escribir uno por semana.

Los ejemplos de este artículo fueron extraídos/copiados del manual de rename (man rename).

Me ahorré u$s65 con una solución hacker xmodmap

Ayer entre otras cosas que se me pasaron se me rompió el teclado de la notebook, lo que hacía es que la tecla shift izquiera no funcionaba con algunas teclas como por ej: 9 0 ‘  y & tampoco con la v y la b, el shift derecho tampoco funcionaba con algunas de estas (rarísimo), el punto es que probé de todo y llegué a la conclusión de que era un problema del hardware del telcado, busqué en mercado libre y encontré el repuesto (va el teclado entero nuevo) http://articulo.mercadolibre.com.ar/MLA-144065147-teclado-notebook-acer-aspire-5536-5542-5810-5410-5738-espano-_JM

U$s 65 para cambiar el teclado completo de una notebook que ya tiene unos 3 o 4 años, me pareció un gasto bastante grande y teniendo en cuenta que no estoy pasando por una época de abundancia, se me ocurrió remapear el teclado, así que lo que hice fué intercambiar las telcas Shift Izquierdo por el Caps Lock,

y ahora funciona perfecto :)… lo único que falta es acostumbrarme.

 

xmodmap -e 'keycode 66 = Shift_L'
xmodmap -e 'keycode 77 = Caps_Lock'

Con esos dos comandos de xmodmap hacemos lo que dije arriba,
y con el comando

xev

podemos ver los códigos de ls teclas que apretamos, entre otros eventos.

Inversión: Algunos minutos de búsqueda en google

Ganancia: U$s 65