1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @File : fabfile.py.py
- # @Author: becivells
- #@Contact : becivells@gmail.com
- # @Date : 2017/12/5
- #@Software : PyCharm
- # @Desc :
- import string
- from random import sample
- from fabric.api import settings
- from fabric.api import cd,run,env,put
- env.hosts = ['192.168.233.135']
- env.user='root'
- env.password = 'passwd'
- def get_passwd(n=18):
- abstr = string.digits + string.ascii_letters + '#@$%^&*+_-?<>'
- return ''.join(sample(abstr,n))
- def centos_gitolite_install(user='git',gitdir='/home/'):
- '''
- :param user: git user
- :param gitdir: gitdir
- :return:
- '''
- githome = '{gitdir}/{user}'.format(gitdir=gitdir, user=user)
- gitolitehome = '{githome}/gitolite'.format(githome=githome)
- run('mkdir -p {gitdir}'.format(gitdir=gitdir))
- password = get_passwd()
- #init
- run('yum update -y && yum install epel-release && yum update')
- run('yum install -y perl openssh git openssh-server')
- run("yum install 'perl(Data::Dumper)'")
- run("systemctl enable sshd")
- with settings(warn_only=True):
- run('adduser {user} -d {githome}'.format(user=user, githome=githome))
- run('echo "{user}:{password}" | chpasswd'.format(user=user, password=password))
- print('{user} passwrod: {passwd}'.format(user=user, passwd=password))
- with settings(warn_only=True):
- result = run('su - {user} -c "git clone git://github.com/sitaramc/gitolite '
- '{gitolitehome}"'.format(user=user,gitolitehome=gitolitehome))
- if result.failed:
- with cd(gitolitehome):
- run('su {user} -c "git pull"'.format(user=user))
- run('su - {user} -c "mkdir -p ~/bin"'.format(user=user))
- run('su - {user} -c "gitolite/install -to ~/bin"'.format(user=user))
- with cd('/tmp/'):
- upload = put('id_rsa.pub','admin.pub')
- run('su - {user} -c "~/bin/gitolite setup -pk /tmp/admin.pub"'.format(user=user))
|