cluster:users
Propagar usuarios del master hacia los nodos
La idea es crear un usuario en el master y luego ejecutar un script que propague la misma configuracion a traves de los demas nodos,
import sys import subprocess # yep, this is user admin import re import os # nodes list nodes = ('brick01', 'brick02') # First get the user cuser = str(sys.argv[1]) # Get user data udata = re.search(r'(\w+):\w:(\d+):(\d+):.*:([a-z,\/]*):([a-z,\/]*)', subprocess.getoutput('grep '+cuser+' /etc/passwd')) gdata = re.search(r'(\w+):\w:(\d+):.*', subprocess.getoutput('grep \'^'+cuser+'\' /etc/group')) shadowdata = re.search(r'(\w+):(.*?):', subprocess.getoutput('grep \'^'+cuser+'\' /etc/shadow')) # añade el usuario en cada nodo for node in nodes: order = 'ssh '+node+' groupadd -g '+gdata.group(2)+' '+gdata.group(1) os.system(order) order = 'ssh '+node+' useradd -u '+udata.group(2)+' -g '+udata.group(3)+' -d '+udata.group(4)+' '+cuser os.system(order) order = 'ssh '+node+' \'echo "'+shadowdata.group(1)+':'+shadowdata.group(2)+'" | chpasswd -e\'' os.system(order)
La idea general es,
- se entra el usuario por stdin
- se buscan en los archivos /etc/passwd , /etc/group y /etc/shadow todos los detalles del usuario (nombre, uid, gid, y passwd encriptado)
- Para cada nodo,
- Se crea el grupo del usuario, con el mismo gid
- Se crea el usuario, con el mismo uid, gid y $HOME
- Se pasa el password encriptado del usuario con chpasswd
- enjoy
Nota: Los nodos estan harcoded en el script pero claramente pueden leerse de un archivo de sistema o asi.
cluster/users.txt · Last modified: 2020/10/22 08:43 by osotolongo