Tips rápidos del día.
Escanear Discos
Cuando se presentan discos desde Storage o Vmware, donde host0 es la controladora.
echo "- - -" > /sys/class/scsi_host/host0/scan
Luego buscar la unidad nueva con fdisk, crear partición, volumen y formatear
Cambiar hora manualmente
Formato AAMMDD HH:MM
date -s "20141027 12:00"
Liberar Cache
Para cache en memoria, con esto estamos forzando a nuestro kernel a liberar la pagecache, los inodos y las dentries.
sync; echo 3 > /proc/sys/vm/drop_caches
Blog dedicado al gran SO Linux/GNU. Algunos tips para configuraciones, clúster, samba, nfs, apache, tomcat, squid. También experiencias como ingeniero de sistemas.
lunes, 27 de octubre de 2014
jueves, 23 de octubre de 2014
Clúster RHEL 7 con Pacemaker
Voy a compartir con ustedes una guía que nació de un proyecto realizado por mi. La instalación de un clúster activo-pasivo para aplicación web, usando la nueva versión de Red Hat Enterprise Linux 7 (RHEL 7), de más decir que es compatible con Centos 7 y Fedora. Para ello creamos un clúster con un Filesystem compartido, IP de servicios virtual, Apache, Tomcat y MariaDB. En primera instancia vamos a Tratar solo la Ip virtual y Apache. Copiaré la guía en borrador para luego hacer correcciones.
Reconstruir initrd
Fin
Finalmente, después de todo se ve más o menos así:
Configuración de software y nodos
En ambos nodos realizar:
Agregar nodos a tabla
hosts.
10.132.42.160 nodo1 nodo1.unix.com
10.132.42.161 nodo2 nodo1.unix.com
10.132.42.162 vipmysql
10.132.42.163 vipapache
10.132.42.168 ilo_nodo1
10.132.42.169 ilo_nodo2
Deshabilitar
firewalld y selinux
# systemctl stop
firewalld
# systemctl disable
firewalld
Instalar software
Cluster
# yum install pcs
fence-agents-all
Cambiar password de
usuario
# passwd hacluster
Habilitar servicio
# systemctl start
pcsd.service
# systemctl enable
pcsd.service
Autorizar nodos y
usuario (hacluster), realizar en un solo nodo
# pcs cluster auth
nodo1 nodo2
Creación de Clúster y servicios
Crear clúster con el
nombre “wcluster” y habilitar cluster al
iniciar maquinas
# pcs cluster setup
--start --name wcluster nodo1 nodo2
# pcs cluster enable
–-all
Validar estado
# pcs cluster status
Como es un clúster de 2 nodos solamente, deshabilitar quorum
# pcs property set
no-quorum-policy=ignore
Configurar Fencing
para los nodos
Se debe crear un dispositivo de fencing, con el fin de
recuperar el servicio en nodo con fallas. Existen distintos agentes dependiendo
del tipo de máquina, pueden ser ILO, SMNP, APC, Vmware, Kvm. Se debe configurar
el fencing antes que los recursos para que estos inicien automáticamente o después si prefieren.
Para ver lista de agentes disponibles
# pcs stonith list
La sintaxis es:
# pcs stonith create
“nombre” agente params var1=1 var2=1
Si no existen dispositivos para fencing, es posible
deshabilitarlo
# pcs property set stonith-enabled=false
Ver Fencing para ejemplos.
Instalar servicio para
cluster, ejemplo Apache
# yum group install
web-server php
Para que el clúster pueda obtener el status de apache
agregar al archivo httpd.conf
<Location /server-status>
SetHandler server-status
Order
deny,allow
Deny
from all
Allow
from 127.0.0.1
</Location>
Configuración de
volumen compartido
Se toma como supuesto que existe un grupo y volumen generado
en ambos nodos, indistinto del método de replicación u origen (storage, drbd,
rsync,etc), llamado vgdata y lvdata respectivamente. Se debe evitar que el
volumen sea activado por el sistema. En el archivo /etc/lvm/lvm.conf, descomentar la línea y agregar los
grupos de volúmenes que si serán activados al inicio del SO.
Identificar vg
# vgs --noheadings
-o vg_name
vg_root vg_home vgdata
Modificar /etc/lvm/lvm.conf
# volume_list = [
"vg_root", "vg_home" ]
Reconstruir initrd
# dracut -H -f
/boot/initramfs-$(uname -r).img $(uname -r)
Reiniciar ambos nodos y validar cluster
# pcs cluster status
Configurar recursos y
grupo de servicio
Agregar grupo de volumen (opcional)
# pcs resource
create my_lvm LVM volgrpname=vgdata
exclusive=true --group apachegroup
Agregar volumen y montaje de filesystem
# pcs resource
create w_fs Filesystem
device="/dev/vgdata/lvdata" directory="/var/www"
fstype="xfs" --group apachegroup
Agregar IP Virtual
# pcs resource
create vipapache IPaddr2
ip=10.132.42.163 cidr_netmask=24 --group apachegroup
Agregar Apache
# pcs resource
create website apache
configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status"
--group apachegroup
Configurar orden y
preferencia
Los recursos están agrupados y en orden de creación, para asegurar
el orden de los servicios es opcional.
# pcs constraint order w_fs then vipapache
# pcs constraint
order vipapache then website
Para asignar preferencia al grupo de servicios sobre un nodo (por
defecto es infinito)
# pcs constraint location apachegroup prefers
nodo1=50
# pcs constraint
location apachegroup prefers nodo2=0
Fencing
Es posible crear dispositivos de fencing utilizando
distintos agentes.
Ejemplo fencing con
vwmare
Ver lista de servidores
# fence_vmware_soap -z -l vmwareuser -p passwd
-a esxhost -o list --ssl-insecure
NODO1,564daf6c-c3d9-3089-c448-c5f70ddb6609
NODO2,564dce63-1623-c585-18a4-c48700f4104f
Crear fencing device usando nombre o UUID, host, usuario y
password vmware.
# pcs stonith create
fence_nodo1 fence_vmware_soap params ipaddr="esxhost" login="vmwareuser"
passwd="passwd" ssl=1 port="NODO1"
action="reboot" ssl_insecure=1 pcmk_host_list="nodo1"
# pcs stonith create
fence_nodo2 fence_vmware_soap params ipaddr="esxhost" login="vmwareuser"
passwd="passwd" ssl=1 port="NODO2"
action="reboot" ssl_insecure=1 pcmk_host_list="nodo2"
Ejemplo fencing con
ILO / ILO2
# pcs stonith create
fence_nodo1 fence_ilo params ipaddr="ilo_nodo1" login="admin"
passwd="admin123" action="reboot" pcmk_host_list=nodo1 pcmk_host_check=static-list
Ejemplo fencing con ILO3 / ILO4 usar ipmilan
pcs stonith create fence_nodo1
fence_ipmilan params ipaddr="ilo_nodo1" login="admin"
passwd="admin123" action="reboot" pcmk_host_list=nodo1 pcmk_host_check=static-list
Tomcat
Agregar servicio
tomcat personalizado
# pcs resource
create tomcat tomcat java_home="/usr/java/default"
catalina_home="/usr/share/tomcat" --group apachegroup
Como alternativa agregar servicio tomcat del sistema
# pcs resource
create tomcat systemd:tomcat --group apachegroup
MySQL o MariaDB
Montar volumen manualmente y cambiar los permisos primero (suponiendo que hay un fs para MySQL)
Instalar MariaDB
# yum install mariadb-server
Configurar recursos y
grupo de servicio
Agregar volumen y montaje de filesystem
# pcs resource
create fs_mysql Filesystem device="/dev/vgdata/lvbase"
directory="/var/lib/mysql" fstype="xfs" --group mysqlgp
Agregar IP Virtual
# pcs resource
create vipmysql IPaddr2 ip=10.132.42.162 cidr_netmask=24 --group mysqlgp
Agregar MySQL del sistema
# pcs resource
create mysqldb mysql config=/etc/my.cnf enable_creation=1
O MySQL como servicio del sistema
# pcs resource
create mysqldb systemd:mariadb --group mysqlgp
Tips
Si el periodo de
monitoreo es muy bajo, es necesario subir timeout por defecto antes de generar los recursos
# pcs resource op
defaults timeout=240s
# pcs resource op
defaults
Verificar
configuración
# crm_verify -L
Para evitar que los
servicios cambien de nodo al levantar un servidor se configura el “stickiness”,
tiene que ser mayor al valor más alto de “location” (defecto 0).
# pcs resource
defaults resource-stickiness=100Fin
Finalmente, después de todo se ve más o menos así:
jueves, 19 de junio de 2014
Crear Logical Volume
Un tip rápido para crear Volúmenes Lógicos en Linux.
- Primer paso identificar el disco, para nuestro ejemplo será "sdb"
- Crear partición física en disco, usamos "c" para apagar DOS compatible y "u" para mostrar sectores en vez de cilindros.
Dentro de "fdisk", utilizamos opción "p" para ver particiones, "n" crear nueva partición, seleccionamos nuevamente "p" para partición primaria, a continuación indicara el cilindro o sector donde comienza, presionamos "Enter", mostrará el último sector o cilindro "Enter". Luego debemos cambiar el tipo de partición con "t", seleccionando "8e" que corresponde a LVM. Con esto se creará una nueva partición física, marcada como LVM, finalmente presionamos "w" para guardar y salir de "fdisk".
- Nuestro disco y su partición se llamará /dev/sdb1, con esto creamos nuestro "volumen físico".
pvcreate /dev/sdb1
- Ahora debemos crear un nuevo "grupo de volumen". El grupo de volumen puede contener varios "volúmenes lógicos".
vgcreate vgnuevo /dev/sdb1
-Crear el "volumen lógico". Con -L indicamos el tamaño en KB, MB o GB, en este caso 20G suponiendo que el disco o espacio libre en grupo de volumen usado es mayor.
lvcreate -n lvnuevo -L 20G vgnuevo
- A continuación debemos dar formato a nuestro volumen, con el comando mkfs, puede ser en ext3 o ext4 según quieran.
mkfs -t ext4 /dev/mapper/vgnuevo-lvnuevo
- Y finalmente debemos montar nuestro volumen en algún directorio para poder utilizarlo.
mount /dev/mapper/vgnuevo-lvnuevo /datos
Recuerden que para que monte automáticamente al iniciar el sistema deben agregar la entrada en /etc/fstab
Al principio es un poco difícil de entender. Tenga en cuenta que primero deben crear una partición física, luego volumen físico (pv), después grupo de volumen (vg), y finalmente el volumen lógico (lv). Este es el que finalmente es formateado y montado para usar.
- Primer paso identificar el disco, para nuestro ejemplo será "sdb"
fdisk -l /dev/sdb
- Crear partición física en disco, usamos "c" para apagar DOS compatible y "u" para mostrar sectores en vez de cilindros.
fdisk -cu /dev/sdb
Dentro de "fdisk", utilizamos opción "p" para ver particiones, "n" crear nueva partición, seleccionamos nuevamente "p" para partición primaria, a continuación indicara el cilindro o sector donde comienza, presionamos "Enter", mostrará el último sector o cilindro "Enter". Luego debemos cambiar el tipo de partición con "t", seleccionando "8e" que corresponde a LVM. Con esto se creará una nueva partición física, marcada como LVM, finalmente presionamos "w" para guardar y salir de "fdisk".
- Nuestro disco y su partición se llamará /dev/sdb1, con esto creamos nuestro "volumen físico".
pvcreate /dev/sdb1
- Ahora debemos crear un nuevo "grupo de volumen". El grupo de volumen puede contener varios "volúmenes lógicos".
vgcreate vgnuevo /dev/sdb1
-Crear el "volumen lógico". Con -L indicamos el tamaño en KB, MB o GB, en este caso 20G suponiendo que el disco o espacio libre en grupo de volumen usado es mayor.
lvcreate -n lvnuevo -L 20G vgnuevo
- A continuación debemos dar formato a nuestro volumen, con el comando mkfs, puede ser en ext3 o ext4 según quieran.
mkfs -t ext4 /dev/mapper/vgnuevo-lvnuevo
- Y finalmente debemos montar nuestro volumen en algún directorio para poder utilizarlo.
mount /dev/mapper/vgnuevo-lvnuevo /datos
Recuerden que para que monte automáticamente al iniciar el sistema deben agregar la entrada en /etc/fstab
/dev/mapper/vgnuevo-lvnuevo /datos ext4 defaults 0 0
Al principio es un poco difícil de entender. Tenga en cuenta que primero deben crear una partición física, luego volumen físico (pv), después grupo de volumen (vg), y finalmente el volumen lógico (lv). Este es el que finalmente es formateado y montado para usar.
viernes, 2 de mayo de 2014
Instalar Samba RHEL o Centos 6
A continuacion una pequeña guía para instalar samba server.
yum install samba
Configurar /etc/samba/smb.conf
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
hosts allow = 127., 192.168.0
# Directorio a compartir
[carpeta]
comment = FTP Linux
path = /data/carpeta
writable = yes
directory mask = 0755
create mask = 0644
Cliente y servidores en la red /etc/samba/lmhosts
127.0.0.1 localhost
192.168.0.10 server
Crear usuario y password samba
useradd -c "Usuario para Windows" -s /sbin/nologin usuario
smbpasswd -a usuario
Agregar servicio al inicio e iniciar
chkconfig smb on
service smb start
Probar configuración
testparm
Probar servidor localmente o desde un cliente
smbclient –L server
miércoles, 30 de abril de 2014
Instalar FTP con chroot en RHEL 5 y 6
Una guía rápida para habilitar FTP con chroot. Esto permite enjaular a los usuarios en su directorio, así no podrán ver ni navegar directorios de sisetma u otros usuarios.
Instalar paquetes vsftpd
Para enjaular al usuario en su propio directorio, se debe activar la opción chroot_local_user
Modificar el archivo
Agregar o modificar
Crear el archivo
Directorio /etc/vsftpd debe contener:
Como siempre debemos subir el servicio y habilitar su inicio automático.
Por defecto todos los usuarios creados estarán enjaulados. El archivo chroot_list contiene las excepciones. El archivo user_list contiene los usuario que no tienen FTP.
El directorio para los usuarios FTP será /data/ftp. Es necesario crear los usuarios de la siguiente manera, indicando directorio home, comentario y la consola.
Instalar paquetes vsftpd
yum install vsftpd
Para enjaular al usuario en su propio directorio, se debe activar la opción chroot_local_user
Modificar el archivo
vi /etc/vsftpd/vsftpd.conf
Agregar o modificar
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Crear el archivo
touch /etc/vsftpd/chroot_list
Directorio /etc/vsftpd debe contener:
chroot_list
user_list
vsftpd.conf
Como siempre debemos subir el servicio y habilitar su inicio automático.
service vsftpd start
chkconfig vsftpd on
Por defecto todos los usuarios creados estarán enjaulados. El archivo chroot_list contiene las excepciones. El archivo user_list contiene los usuario que no tienen FTP.
El directorio para los usuarios FTP será /data/ftp. Es necesario crear los usuarios de la siguiente manera, indicando directorio home, comentario y la consola.
useradd -c "Usuario FTP" -d /data/ftp/usuario -m -s /sbin/nologin usuario
passwd usuario
Guía para Montar discos con formato NTFS en RHEL 5
Vamos a empezar con cosas sencillas. En esta ocasión instalar el modulo fuse-ntfs, para que linux pueda leer y escribir en este sistema de archivos.
- Montar modulo del kernel
Pueden descargar los paquetes desde este sitio o el que deseen:
http://pkgs.repoforge.org/fuse-ntfs-3g/
- Instalar fuse, fuse-ntfs-3g y kmod-fuse
yum localinstall fuse-xxx.rpm
fuse-ntfs-3g-xxx.rpm kmod-fuse-xxx.rpm
- Montar modulo del kernel
modprobe fuse
- Montar disco
mount -t ntfs-3g /dev/sdx /media/disco
Listo, con estos sencillos pasos ya deberían poder ver el filesystem y leer o escribir datos.
martes, 29 de abril de 2014
Ingeniero Linux
Hola, mi nombre es Fernando, soy Ingeniero de Sistemas. Trabajo para una compañía dedicada a los servicios IT en Chile. Tengo certificación RHCE, con experiencia de más de 10 años en uso y administración de sistemas basados en GNU/Linux.
Espero que este blog sea de gran ayuda para novatos y no tanto. Subiré algunas guías y apuntes personales, que nos puedan ser útiles en el día a día o para sacar "cachos".
Suscribirse a:
Entradas (Atom)