def setup(): git.setup() sudo('rm -rf /tmp/git') git.sync('https://github.com/fabrickit-fablib/git.git') git.sync('https://github.com/fabrickit-fablib/git.git', dest='/tmp/git') git.sync('https://github.com/fabrickit-fablib/git.git', dest='/tmp/git') git.sync('https://github.com/fabrickit-fablib/git.git', dest='/tmp/git-sudo', use_sudo=True) git.sync('https://github.com/fabrickit-fablib/git.git', dest='/tmp/git-sudo', use_sudo=True)
def setup_package(self, name, git_repos=[], exec_user='******', branch=None, is_develop=False, mk_links=[], mk_dirs=[], cp_files=[], services=[], requirements=[], **kwargs): user.add(exec_user) for git_repo in git_repos: git_dir = os.path.join(self.prefix, 'src', git_repo['name']) git_dir_parent = os.path.dirname(git_dir) filer.mkdir(git_dir_parent, mode='777') git.sync(git_repo['url'], branch=git_repo['branch'], dest=git_dir) requirements_txt = '{0}/requirements.txt'.format(git_dir) if filer.exists(requirements_txt): self.install(requirements=requirements_txt) if is_develop: sudo('sh -c "cd {0} && {1}/bin/python setup.py develop"'.format( git_dir, self.prefix)) else: sudo('sh -c "cd {0} && {1}/bin/python setup.py install"'.format( git_dir, self.prefix)) for mkdir in mk_dirs: filer.mkdir(mkdir['path'], owner=mkdir.get('owner', exec_user)) for cpfile in cp_files: if filer.exists(cpfile['dest']): continue sudo('cp -r {0} {1}'.format( os.path.join(git_dir, cpfile['src']), cpfile['dest'])) for service in services: service['user'] = exec_user filer.template( '/etc/systemd/system/{0}.service'.format(service['name']), src='systemd.service.j2', mode='755', data=service) for requirement in requirements: self.install(requirement) for link in mk_links: if not filer.exists(link['dest']): sudo('ln -s {0} {1}'.format(link['src'], link['dest']))
def setup(self): sudo('setenforce 0') Editor('/etc/selinux/config').s('SELINUX=enforcing', 'SELINUX=disable') Service('firewalld').stop().disable() git.setup() dest = git.sync('https://github.com/openstack-dev/devstack.git', dest='/tmp/devstack', branch='stable/liberty') print dest filer.template('/tmp/devstack/local.conf')
def setup(self): self.install_packages() self.start_services().enable_services() repo = '/home/{0}/fabkit-repo'.format(env.user) filer.mkdir(repo, use_sudo=False) git.setup() git.sync('https://github.com/fabrickit/fabkit.git', dest='{0}/fabfile'.format(repo)) python = Python('/opt/fabkit') python.setup() python.install( requirements='{0}/fabfile/requirements.txt'.format(repo)) run('cd {0} && /opt/fabkit/bin/fab genconfig:fabfile.ini &&' ' sed -i "/^\[web\]/,/^\[/s/#hostname =.*/hostname = */g" fabfile.ini'.format(repo)) data = { 'port': 80, 'repo': repo, 'user': env.user, 'group': env.user, 'python_path': python.get_site_packages(), 'processes': 5, 'threads': 1, } run('cd {0}/fabfile/core/webapp/ &&' ' /opt/fabkit/bin/python manage.py migrate &&' ' echo "from django.contrib.auth.models import User;' ' User.objects.create_superuser(\'admin\', \'admin@localhost\', \'admin\')"' ' | /opt/fabkit/bin/python manage.py shell &&' ' /opt/fabkit/bin/python manage.py collectstatic --noinput'.format(repo)) sudo('chmod 755 /home/{0}'.format(env.user)) if re.match('CentOS .*', env.node['os']): log_prefix = '/var/log/httpd/{0}'.format(env.user) data['error_log'] = '{0}-error.log'.format(log_prefix) data['custom_log'] = '{0}-access.log'.format(log_prefix) if filer.template(src='httpd.conf', dest='/etc/httpd/conf.d/{0}_httpd.conf'.format(env.user), data=data): self.handlers['restart_httpd'] = True elif re.match('Ubuntu .*', env.node['os']): log_prefix = '/var/log/apache2/{0}'.format(env.user) data['error_log'] = '{0}-error.log'.format(log_prefix) data['custom_log'] = '{0}-access.log'.format(log_prefix) if filer.template(src='httpd.conf', dest='/etc/apache2/sites-enabled/{0}_httpd.conf'.format(env.user), data=data): self.handlers['restart_apache2'] = True self.exec_handlers() # install sudo('npm install -g coffee-script'.format(repo)) sudo('cd {0}/fabfile/core/webapp && npm install'.format(repo)) # install node packages for develop sudo('npm install -g grunt-cli'.format(repo)) sudo('cd {0}/fabfile/core/webapp/node_chat && npm install'.format(repo))
def setup(self): self.install_packages() self.start_services().enable_services() repo = '/home/{0}/fabkit-repo'.format(env.user) filer.mkdir(repo, use_sudo=False) git.setup() git.sync('https://github.com/fabrickit/fabkit.git', dest='{0}/fabfile'.format(repo)) python = Python('/opt/fabkit') python.setup() python.install( requirements='{0}/fabfile/requirements.txt'.format(repo)) run('cd {0} && /opt/fabkit/bin/fab genconfig:fabfile.ini &&' ' sed -i "/^\[web\]/,/^\[/s/#hostname =.*/hostname = */g" fabfile.ini' .format(repo)) data = { 'port': 80, 'repo': repo, 'user': env.user, 'group': env.user, 'python_path': python.get_site_packages(), 'processes': 5, 'threads': 1, } run('cd {0}/fabfile/core/webapp/ &&' ' /opt/fabkit/bin/python manage.py migrate &&' ' echo "from django.contrib.auth.models import User;' ' User.objects.create_superuser(\'admin\', \'admin@localhost\', \'admin\')"' ' | /opt/fabkit/bin/python manage.py shell &&' ' /opt/fabkit/bin/python manage.py collectstatic --noinput'.format( repo)) sudo('chmod 755 /home/{0}'.format(env.user)) if re.match('CentOS .*', env.node['os']): log_prefix = '/var/log/httpd/{0}'.format(env.user) data['error_log'] = '{0}-error.log'.format(log_prefix) data['custom_log'] = '{0}-access.log'.format(log_prefix) if filer.template(src='httpd.conf', dest='/etc/httpd/conf.d/{0}_httpd.conf'.format( env.user), data=data): self.handlers['restart_httpd'] = True elif re.match('Ubuntu .*', env.node['os']): log_prefix = '/var/log/apache2/{0}'.format(env.user) data['error_log'] = '{0}-error.log'.format(log_prefix) data['custom_log'] = '{0}-access.log'.format(log_prefix) if filer.template( src='httpd.conf', dest='/etc/apache2/sites-enabled/{0}_httpd.conf'.format( env.user), data=data): self.handlers['restart_apache2'] = True self.exec_handlers() # install sudo('npm install -g coffee-script'.format(repo)) sudo('cd {0}/fabfile/core/webapp && npm install'.format(repo)) # install node packages for develop sudo('npm install -g grunt-cli'.format(repo)) sudo( 'cd {0}/fabfile/core/webapp/node_chat && npm install'.format(repo))