Archive for the ‘trabajo’ Category
Curso de Sistemas Linux en The Cocktail
Voy a dar un curso de sistemas el viernes 16 por la tarde de 16 a 20 horas y el sábado 17 por la mañana de 10 a 14 horas. Va a ser en el aula de las oficinas de The Cocktail en la C/ Salamanca, 17, Madrid.
El curso va a cubrir todo el proceso de puesta en marcha de una máquina con entorno Ruby on Rails en producción. Esto implica los siguientes puntos:
* Instalación y configuración de Debian
* Instalación del stack de Rails
* Estrategias de Deploy
* DNS
* Securización del servidor
* Backups
* Monitorización
* Configuración del servicio de mailing
Estos puntos implican tecnologías como Debian, SSH, DNS, Ruby, Rails, rubygems, rsync, Munin, Postfix, Apache, Passenger, MySQL, Iptables, Bash scripting, IDS, …
La idea es tratar todos estos puntos en cierta profundidad aunque intentando tocar lo justo de ficheros de configuración para no hacer aburrido el curso.
Voy a intentar que el curso sea para todos los niveles. Se tocarán diversos aspectos desde truquillos del día a día y conceptos básicos de todas las tecnologías hasta configuraciones complejas, de una forma más o menos gradual.
A ver si lo conseguimos.
Si tenéis alguna sugerencia es el momento de decírmelo. Estoy totalmente abierto.
Los que os queráis apuntar decídmelo mandándome un email a “luis.bosque ARROBA the-cocktail PUNTO com”. Solo
pido que los que os apuntéis sea porque tenéis claro que queréis asistir a este curso y no por apuntaros por que sí.
Por desgracia hay límite de plazas, por lo que no puedo garantizar que haya sitio para todos.
Oferta de Administrador de Sistemas Junior en The Cocktail
The Cocktail es una consultora de internet, enfocada en la experiencia de usuario y diseño de producto, especialista en traducir objetivos de negocio en productos digitales innovadores, usables, atractivos y rentables.
Queremos incorporar a nuestro equipo de trabajo un Administrador de Sistemas Junior con experiencia en manejo de sistemas Linux, redes TCP/IP , y especialmente interés y compromiso por el open source. Realizará las siguientes tareas:
- Administración de servidores *nix – Particularmente Debian.
- Instalación y despliegue de nuevos servidores en producción y en desarrollo. Compilación de software.
- Monitorización y backups.
- Configuración de routers, switches, firewalls y balanceadores de carga.
- Mantenimiento de la red local, accesos remotos VPN y políticas de acceso a recursos.
Los requisitos mínimos son:
- Experiencia administrando sistemas Linux.
- Experiencia con Debian – GNU/Linux, MySQL, Apache.
- Conocimientos sobre redes TCP/IP.
- Interés y compromiso por el open source.
- Facilidad para trabajar en equipo. Auto-disciplina y atención a los detalles. Iniciativa y proactividad.
- Conocimiento e interés por Ruby On Rails y lenguajes de programación dinámicos.
- Experiencia con varias de las siguientes tecnologías: Apache, MySQL, Bash, Ruby, Samba, Postfix, Nagios, Xen, Iptables, Subversion, Git, Rsync, LDAP
Y por supuesto el mayor de los requisitos es que crea que es capaz de desempeñar este trabajo, teniendo en cuenta las responsabilidades arriba mencionadas.
El trabajo es de carácter presencial en las oficinas de Madrid en horario de jornada partida.
Si estás interesado, envía tu CV a: andrea.hidalgo ARROBA the-cocktail PUNTO com
Oferta de becario para el área de sistemas de The Cocktail
En The Cocktail Experience, empresa dedicada a la consultoría web, estamos interesados en contratar becarios para el área de sistemas. Gente con muchas ganas de trabajar y aprender.
El perfil que estamos buscando es el siguiente:
- Experiencia con sistemas GNU/Linux.
- Conocimientos básicos de scripting
- Conocimientos básicos de servidores web y servidores de bases de datos (por ejemplo MySQL, Apache….)
- Posibilidad de realizar convenio de prácticas
Si estás interesado, envía tu CV a: andrea.hidalgo ARROBA the-cocktail PUNTO com
Exportar passwords de revelation a texto plano con ruby
Revelation tiene la opción de exportar el fichero de contraseñas a texto plano. El problema es que la organización de las entradas no es demasiado buena, porque las pone en una sola columna sin indentación, por lo que resulta dificil ver el anidación de las contraseñas en caso de que se usen carpetas.
Necesitaba tener las contraseñas en texto plano de forma que pudiese ver a simple vista esta información y fuese más facil de mantener. Esto se puede hacer fácilmente con ruby y xml-simple:
require 'rubygems'
require 'xmlsimple'
PASSWORD_FILE="./passwords.xml"
config = XmlSimple.xml_in(PASSWORD_FILE)
ce = config
indent = ""
INDENT_SPACES = " "
def stepin(ce, indent)
if !ce.nil?
indent = indent + INDENT_SPACES
end
ce['entry'].each { |item|
puts indent + item['name'].to_s
if !item['entry'].nil?
stepin(item, indent)
elsif item['entry'].nil? && item['type'] != 'folder'
if item['description'] && !item['description'].to_s.empty?
puts indent + INDENT_SPACES + "description: " + item['description'].to_s
end
item['field'].each { |field_type|
if !field_type['content'].nil?
puts indent +
INDENT_SPACES +
field_type.values[0].gsub("generic-", "") +
": " +
field_type.values[1]
end
}
end
}
end
stepin(ce, indent)
Para que esto funcione basta tener instalado rubygems y xml-simple.
ServerName y ServerAlias en Apache
En el servidor web apache, dentro de un VirtualHost se puede incluir un ServerName para que Apache sepa que ha de aplicar la configuración contenida en ese VirtualHost a las peticiones dirigidas al DNS de dicho ServerName.
También se puede incluir uno o varios ServerAlias dentro del mismo VirtualHost por si el site definido en dicho VirtualHost puede ser accedido a través de más de un DNS diferente.
Ahora bien, la diferencia entre ServerName y ServerAlias es que el ServerAlias acepta wildcards y el ServerName no.
Yo puedo hacer lo siguiente:
<VirtualHost>
ServerName example.com
ServerAlias *.example.com
...
</VirtualHost>
pero no puedo hacer esto:
<VirtualHost> ServerName *.example.com ... </VirtualHost>
Una historia de capistrano, crontabs y pipes
Al montar el deploy de una nueva máquina con capistrano he querido afinar un poco la carga de crontabs.
No me gusta poner las tareas de crontab en el /etc/crontab. Creo que es una muy mala práctica. En vez de eso prefiero que cada usuario tenga su propia tabla de crontabs y para ello hago uso del comando crontab.
En muchas ocasiones hace falta definir crontabs para más de un usuario. Para no andar añadiendo una linea en el script de deploy por cada fichero de crontab que se tenga doy por hecho que los nombres de todos los archivos con las tablas de crontab siguen el mismo formato, que es “crontab ..
El código pues para capistrano es:
task :app_deploy, :roles => [:app] do
Dir["./appserver/etc/crontab.*"].each { |crontab|
sudo "sh -c 'cat #{release_path}/#{crontab} | \
crontab -u #{File.extname(File.basename(crontab)).delete('.')} -"
}
end
En este código hay varias cosas que explicar.
Primero se presupone pues que si quiero, por ejemplo, añadir el crontab para el usuario www-data simplemente lo crearé y lo guardaré en appserver/etc/crontab.www-data
En cuanto al código, por un lado el bloque lo que hace es cargar en un array los ficheros con un nombre que coincida con el patrón comentado anteriormente. Hay que tener en cuenta que el código en ruby se ejecuta en la máquina desde la que se lanza el deploy y lo que se le pasa al comando run o sudo es un comando unix que se va a ejecutar en la máquina en la que se quiera hacer el deploy.
Por otro lado está el hecho de que cuando se ejecutan con sudo dos comandos unidos por una tubería, el sudo se va a aplicar únicamente al primero.
Si se hace:
$ sudo echo '* * * * * date > /tmp/date' | crontab -u root -
el sudo se va a aplicar únicamente al comando echo y no al comando crontab por lo que eso no funcionará ya que no tenemos privilegios suficientes.
Por lo tanto para no tener que repetir el comando sudo a los dos lados de la tubería y también para no complicar el comando en capistrano, lo que se puede hacer es englobar toda la sentencia en una subshell de la siguiente forma:
$ sudo sh -c 'echo "* * * * * date > /tmp/date" | crontab -u root -'
Oferta de consultor de Experiencia de Usuario
En The Cocktail estamos buscando una persona para incorporarse al
equipo de Experiencia de Usuario como consultor.
Los candidatos deben cumplir con los siguientes requisitos:
- Experiencia en departamentos similares.
- Capacidad de liderazgo.
- Nivel medio/alto de inglés oral y escrito.
- Rigurosidad, capacidad de trabajo y profesionalismo.
- Excelentes capacidades orales y de comunicación escrita.
- Capacidad de trabajo en equipos multidisciplinares.
- Capacidad de transmisión de sus conocimientos al resto de la
organización.
Es fundamental que los interesados puedan demostrar sus habilidades en:
- Conceptualización de soluciones online, tanto en web como en
entornos móviles.
- Definición de requerimientos funcionales con usuarios.
- Arquitectura de información (flujos, inventarios de contenidos,
árboles de navegación, etc)
- Creación de escenarios de uso y modelado de usuarios (personas,
casos de uso).
- Prototipado (wireframing) de soluciones web.
- Documentación de proyectos.
Se valorará positivamente la experiencia en equipos de trabajo
multidisciplinares, definición de proyectos RIA y conocimientos de
conceptos de diseño y maquetación básicos.
Los interesados, por favor enviad los CV a: info@the-cocktail.com
Oferta de becario para el área de sistemas de The Cocktail
En The Cocktail Experience, empresa dedicada a la consultoría web, estamos interesados en contratar becarios para el área de sistemas. Gente con muchas ganas de trabajar y aprender.
El perfil que estamos buscando es el siguiente:
- Experiencia con sistemas GNU/Linux, especialmente Debian
- Conocimientos básicos de scripting (en algún interprete tipo bash, ruby, perl, python, ….)
- Conocimientos básicos de servidores web y servidores de bases de datos (por ejemplo MySQL, Apache….)
- Interés y compromiso por el software libre
- Estudios relacionados (Informática, Telecomunicaciones….)
Si estás interesado, envía tu CV a: andrea.hidalgo ARROBA the-cocktail PUNTO com