Example #1
0
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)
Example #2
0
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)
Example #3
0
    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']))
Example #4
0
    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))