viernes, 26 de octubre de 2018

Glusterfs y Virsh 2

Este segundo apartado es para desglosar y reorganizar los conceptos del primero:
1- Ambiente Físico: Una unidad de disco física será adicionada al sistema de archivos
2- Cluster, se creará un cluster con Glusterfs que debe replicarse entre dos servidores
3- Virtualizacion, se creará un pool almacenado en el cluster, que permitirá encender las maquinas virtuales en cualquiera de los dos servidores (migración)

1- Ambiente Físico:
la primera unidad de disco fisico : /dev/sda
la primera partición en el primer disco: /dev/sda1

Al agregar un segundo disco a este se le asigna (autom.)  /dev/sdb
al crear la primera partición se le asigna: /dev/sdb1
CREAR PARTICION
fdisk /deb/sdb/
mkfs.btrfs -i size=512 /deb/sdb1
MONTAR PARTICION
mkdir -p /export/sdb1
echo "/dev/sdb1 /export/sdb1 btrfs defaults 0 0" >> /etc/fstab 
mount -a 


root@vsh05:~# blkid
/dev/sda1: UUID="c7ad3108-758a-4920-8a95-c94865901ea3" UUID_SUB="2a7234b0-6b59-48fd-b711-255f4f378675" TYPE="btrfs" PARTUUID="32dc5157-01"
/dev/sdb1: UUID="2Tkg0j-OIlG-wEWt-guI6-dfFw-TJnh-RLcchK" TYPE="LVM2_member" PARTUUID="46936cbd-01" <<- esta unidad es con LVM


/dev/mapper/vg00--vm05-data: UUID="bcbb8eb9-a861-4348-a848-c545af674c7c" TYPE="ext4" <<-esta entrada sólo aparece cuando agregamos glusterfs


Comandos útiles:
blkid
cat /etc/fstab  [comparar ambas salida] 
gluster volume delete almacen



2- Cluster:
conectar los nodos:
gluster peer probe node2      <<-- inicia los nodos debe hacerse cruzado
gluster peer status

mkdir -p /export/sdb1/brick
gluster volume create almacen replica 2 servidor01:/export/sdb1/brick servidor02:/export/sdb1/brick     <<-- xq simplemente ambos servidores tienen                                                                                                                                                                                            los mismos directorios. Este comando creará la                                                                                                                                                                                           entrada "dev/mapper" en fstab (ver arriba)
gluster volume start almacen
gluster volume info
gluster volume status
gluster peer status
gluster volume create almacen replica 2 servidor01:/export/sdb1/brick servidor02:/export/sdb1/brick force

Links:

https://www.youtube.com/watch?v=LlczFSvdYkQ
https://libvirt.org/storage.html#StorageBackendGluster
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-managing_guest_virtual_machines_with_virsh-storage_pool_commands

viernes, 12 de octubre de 2018

Debian 9 en Macbook early 2008

Especificamente estoy hablando de un A1181

Empece por la version Debian-mac 9.5 amd64

Para salvar la lentitud en el arranque: rEFInd

Desktop escojido LXCE (una mejora de openbook)

Problemas:
Con el brillo, con las teclas de control de brillo

Con las teclas de control de audio

Con la techla de expulsion de cd

Con el WiFi
- tools :
-- lspci -vvnn | grep 14e4
-- iw list
-- iwlist chan

Con la WebCam

Montar la particion Macos:
- Encontrarla con fdisk -l
- Crear carpeta y montarla con mount /dev/hda2 APPLE
Sacar el driver desde: System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

Con un teclado externo de otro idioma

Con un monitor externo

Con algunos dvds

*LightDM me obliga cada vez a escribir mi usuario (no solo la contrasena):
https://wiki.debian.org/LightDM#Enable_user_list

Escribir en /usr/share/lightdm/lightdm.conf.d/01_my.conf:
[Seat:*]
greeter-hide-users=false

martes, 9 de octubre de 2018

Una facil mudanza a shell zsh

Despues de trabajar casi 20 años con el MS-DOS de microsoft y otros 5 con powershell, los interpretes de comandos te resultan simpáticos.

El uso frecuente de linux me acerco a bash, csh y sh, donde por ser el mas usado, me quedé largo tiempo con bash.
Pero el brinco a mac y su sabor por lo fácil y bonito me hizo buscar una alternativa "mac" al esqueletico shell estandar de macos.

Lo primero fue cambiar el terminal estandar por iTerm. Cuidado que el terminal no es el shell, sino un "metashell"

A medida que lo fuí usando fui experimentando problemas habituales y repetitivos que el buen bash no podia salvar, como es el hecho que las historia de las sesiones no se guardan de manera confiable. Me refiero a las incongruencias que ocurren cuando el usuario esta logeado en varias consolas del mismo servidor.

Los cambios a zsh no fueron en nada duro (ni siquiera en mi servidor FreeBSD), instalar zsh:
en mac  ya estaba en /bin/ (lo habre instalado en otra ocasion?)
en bsd : pkg install zsh

Luego ponerle el fancy skin "oh-my-zsh" con el sabor "agnostec" que es el mas pichirruchi que se puede escojer.

Los caminos cortos descritos en el sitio github de oh-my-zsh no me funcionaron muy bien en los diferentes sistemas que uso, pero el camino largo: advanced installation --> manual installation no presentan ningun problema.

En mac para mi iTerm tuve que instalarme una coleccion de letras especiales llamadas
"Powerline", tambien presentes en github. Mi FreeBSD no lo necesita.

UPDATE Agosto 2020

Despues de algunos años usando zsh me han liado las configuraciones, la instalacion de git y wget, para instalar ohmyzsh, la configuracion, etc. He probado FiSH, que tiene casi todo lo que necesito desde el principio sin tanto trabajo. Me lo quedo!

simplemente:

pkg install fish

chsh root /usr/local/bin/fish

jueves, 4 de octubre de 2018

Usando VIM

Vim es, aunque conocido por lo dificil, también conocido como potente y poderoso editor de texto con fines de programación.

Bien por lo poderoso o lo complicado, hace ya desde algun tiempo que empecé a incursionar en el uso de vim, alternando con otros editores,  por lo que ahora escribo mis experiencias:

Casi todo lo configurable y lo más importante de VIM se puede configurar a traves de  este archivo de configuración:

~/.vimrc

------------------------------------------------------------
filetype plugin indent on
syntax on
set nocompatible
set number  #<-- numera las lineas
set filetype=XML
autocmd BufEnter *.recipe :setlocal filetype=xml
execute pathogen#infect()  #<--carga el instalador de plugins "pathogen"
set laststatus=2  #<-- permite que funcione el plugin light..
map <C-o> :NERDTreeToggle<CR> #<-- mapea a ctrl-o la aparicion del plugin NERDTree
------------------------------------------------------------



Vim tiene, dos o hasta 3 modos de edición, que yo uso asi:
-------------------------------------------------------------------------
Modo Comandos, que es el que abre Vim, o se llama con ESC + :
Modo Insercion (Insert), que se llama cuando estas en modo comando y presionas "i"
Modo Visual que aparece cuando usas el ratón, desde una GUI y con lo que puedes cortar y pegar. En algunos contextos tambien se puede cortar y pegar sin modo Visual.

Los comando son un queso, por lo que hay que buscarlos y memorizarlos, yo (todavía) uso una chuleta que de vez en cuando actualizo y pego en mi monitor:

=====================================================
Chuleta Comandos Importantes de VIM:
-------------------------------------------------------------------------
:set number
:set nonum
:ha!               --> hard copy (imprimir)
:wq               --> guardar y salir
:w archivo.txt  --> guardar con nombre "archivo.txt"
:q!         --> salir sin guardar
u    --> deshacer
p    --> pegar
dd  --> cortar (y borrar) linea
dw --> delete word --> borrar/cortar palabra
37dd --> cortar 37 lineas
yy --> copiar linea
23y(espacio) --> copiar 23 lineas a la derecha
y8(espacio) --> copiar 8 caracteres a la derecha
y6l(espacio) --> copiar 6 car a la izq

:tab archivo.txt    -->  abre una nueva pestaña (tab) con el archivo.txt
:tabnew
gt   --> go tab , siguiente pestaña
:tabc --> tab close
:e archivo.txt  --> cambiar (abrir) a archivo.txt
/palabra --> buscar "palabra" (hacia adelante)
?palabra --> buscar "palabra" (hacia atras)

:vsp archivo.txt  --> split con archivo.txt
:windo diffthis  --> encuentra las diferencias entre las dos ventanas (del split)
ctrl + ww ---> cambia entre ventanas
ctrl + wr ---> intercambia las ventanas (el derecho va a la izq y viceversa)

:%s/^/textoaagregar  --> agregar caracteres o espacios en todas las lineas, bueno para agregar espacios

:125, 189s/^/#  --> agrega el comentario # desde la linea 125 hasta la 188

copiar lineas desde la 81 a a 91:
81,91y

osea que :
%= todos
n-inic, n-fin= rango   
s = linias
/^/# = agregar #

cambiar un texto por otro:
:g/texto_a_sustituir/s//texto_nuevo/g
 
 ó también:
:%s/texto_a_sustituir/texto_nuevo/g 
==============================================


Plugins para VIM
------------------------------------------------------
Además, se puede complementar VIM con plugins que le agregan funcionalidades o lo hermosean, como por ejemplo:
- NERDTree --> agrega un arbol interactivo de directorios y archivos
- lightline --> agrega color funciona la barra de comandos e infos
y asi muchos más que se pueden encontrar en vim-awesome, que es una pagina web dedicada a las herramientas para vim


Estos plugins se pueden installar con varios gestores de plugins. Yo uso pathogen, creo que fortuitamente y no recuerdo ninguna razon especial por la que le haya escojido. Hasta ahora me funciona bien y me parece fácil. Otros gestores son: Vundle, Neobundle und VimPlug.

-- Pathogen instalacion :
----------------------------
Básicamente se trata de copiar el paquete pathogen.vim en la carpeta ~/.vim/autoload
En el apartado instalación de github se explica muy bien:
https://github.com/tpope/vim-pathogen

en resumen:
  mkdir -p ~/.vim/autoload ~/.vim/bundle && \
  curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
y agregar a vimrc. la linea
exit:
  execute pathogen#infect() 

eso es todo!

-- Instalar Plugins NERDTree y lightline con Pathogen:
------------------------------------------------------------------
Para instalar cualquier plugin con Pathogen, basta copiarlo en la carpeta ~/.vim/bundle, esto es lo que hacen los comandos siguientes:

  git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
  git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim 

--- Trics con NERDTree y Lightline
NT se activa con el comando 
:NERDTree
Pero si lo usas mucho, pronto te fastidiara ese engorroso comando, asi que se puede
mapear a una combinacion de comando, eso es lo que sale arriba en mi ejemplo de .vimrc

Lightline no me funcionó asi nada mas hasta que agregé a .vimrc

set laststatus=2
 
 -- Agregar algo al final de cada linea:
:%norm A algo
 
Explicacion: 
:%norm A*
This is what it means:
% = for every line 
norm = type the following commands 
A* = append '*' to the end of current line

-- Imprimir (en impresora) los numeros de linea:
set number
set printoptions=number:y