FastHandle - IT Operations Examples

FastHandle is fast operation tools for infrastructure configurations and tests.

User Tools

Site Tools


Sidebar


Top     SiteMap

Manager Server

Target Server

$FHHOME/bin/xxx.sh | xxxx.exp













.

os:linux:user:index.html



This is an old revision of the document!


Top#OS Management

User Management (user.py)

$FHHOME/fabfile/user.py


Operation

$ fab  -l |grep user

$ fab  -H $H auth.pro  user.check_user:user01

$ H=test-server-1

$ fab -H $H auth.pro -- hostname

$ fab -H $H auth.pro -- id user01
$ fab -H $H auth.pro -- "cat /etc/passwd |grep user01"   # check login shell
$ fab -H $H auth.pro -- grep user01 /etc/group


TIPS

How to Create Hash Password

# openssl passwd -1 'newpassword'
$1$0u444IQv$YSGCzz8mesPzCWwxHCxit.

# echo 'user01:$1$0u444IQv$YSGCzz8mesPzCWwxHCxit.' | chpasswd -e
# cat /etc/shadow |grep test1
test1:$1$0u444IQv$YSGCzz8mesPzCWwxHCxit.:17526:0:99999:7:::
# exit

$ su - user01
            <- newpassword


user.py

$FHHOME/fabfile/user.py

import sys
from fabric.api import *
from fabric.contrib import files
from fabric.utils import abort

#====================================================================
#check
#====================================================================
#------------------------------------------------
#user.check_user:user01
#------------------------------------------------
@task 
def check_user(user):
    """fab  auth.pro  check_user:user01"""
    res = run("id %s" % user, warn_only=True)
    if res.failed is True:
        puts(red("There isn't %s in %s." % (user, env.host_string)))
        return
    run("cat /etc/passwd| grep %s" % user) #check login shell

#------------------------------------------------
#user.check_group:group01
#------------------------------------------------
@task 
def check_group(group):
    """fab  auth.pro  check_group:group01"""
    res = run("grep %s /etc/group" % group, warn_only=True)
    if res.failed is True:
        puts(red("There isn't %s in %s." % (group, env.host_string)))
        return


#====================================================================
#user.useradd
#    useradd -u UID -g GROUP -G GROUP1,GROUP2 -s /bin/bash -d HOME_DIR LOGIN
#====================================================================
#------------------------------------------------
#user.useradd_dev_all
#------------------------------------------------
@task
def useradd_dev_all():
    useradd_devuser01()
    useradd_devuser02()
    useradd_devuser03()

#------------------------------------------------
#user.useradd_devuser01
#------------------------------------------------
@task
def useradd_devuser01():
    res = run("id devuser01", warn_only=True)
    if res.failed is True:
        sudo("useradd -u 1101 -g dev  devuser01")
        return

@task
def useradd_devuser02():
    res = run("id devuser02", warn_only=True)
    if res.failed is True:
        sudo("useradd -u 1102 -g dev devuser02")
        return


#------------------------------------------------
#user.useradd_opeuser
#------------------------------------------------
@task
def useradd_opeuser01():
    res = run("id opeuser01", warn_only=True)
    if res.succeeded is True:
        abort("You already have opeuser01.")
    sudo("useradd -u UID -g GROUP opeuser01")



#====================================================================
#chpasswd
#    Dont't use '$' , '#' in password. Because '$' is needed escape.
#====================================================================

#------------------------------------------------
# chpasswd root
#------------------------------------------------
# user.chpasswd_root_pro
@task 
def chpasswd_root_pro():
  sudo("echo 'root:PASS' | chpasswd")

# user.chpasswd_root_stg
@task 
def chpasswd_root_stg():
  sudo("echo 'root:PASS' | chpasswd")

# user.chpasswd_root_qa
@task 
def chpasswd_root_qa():
  sudo("echo 'root:PASS' | chpasswd")


#------------------------------------------------
# chpasswd not root
#------------------------------------------------
# user.chpasswd_devuser01_pro
@task
def chpasswd_devuser01_pro():
    sudo("id devuser01 && echo 'devuser01:PASS'", warn_only=True)

# user.chpasswd_devuser01_stg
@task
def chpasswd_devuser01_stg():
    sudo("id devuser01 && echo 'devuser01:PASS'", warn_only=True)

# user.chpasswd_devuser01_qa
@task
def chpasswd_devuser01_qa():
    sudo("id devuser01 && echo 'devuser01:PASS'", warn_only=True)

# user.chpasswd_devuser02_pro
@task
def chpasswd_devuser02_pro():
    sudo("id devuser02 && echo 'devuser02:PASS'", warn_only=True)

# user.chpasswd_devuser03_pro
@task
def chpasswd_devuser03_pro():
    sudo("id devuser03 && echo 'devuser03:PASS'", warn_only=True)


#====================================================================
#userdel
#    -r, --remove : Files in the user's home directory will be removed
#====================================================================
# user.userdel_devuser01
@task
def userdel_devuser01():
    sudo("id devuser01 && userdel -r devuser01")

# user.userdel_devuser02
@task
def userdel_devuser02():
    res = run("id devuser02", warn_only=True)
    if res.succeeded is True:
        sudo("tar zcf /tmp/devuser02.tar.gz /home/devuser02")
        sudo("userdel -r devuser02")
        return

#====================================================================
# etc
#====================================================================







Top#OS Management



os/linux/user/index.html.1515076485.txt.gz ยท Last modified: 2018/01/04 23:34 by kurihara