コード例 #1
0
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if os.path.exists(base_chroot_dir):
        return
    os.makedirs(base_chroot_dir)
    run_cmd("debootstrap --variant=buildd --arch amd64 maverick \
            %s http://us.archive.ubuntu.com/ubuntu/" % (base_chroot_dir,))
    with CD(TEMPLATE_DIR):
        run_cmd("cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
        run_cmd("cp chroot_configs/sources.list %s/etc/apt/"
                % (base_chroot_dir,))
        run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
    run_cmd("schroot -c aic-base -- /bin/sh -c \"DEBIANFRONTEND=noninteractive;\
            apt-get update; apt-get upgrade -y\"")
    run_cmd("schroot -c aic-base -- apt-get install -y python")
    run_cmd("schroot -c aic-base -- %s/setup/worker_setup.py --chroot-setup"
            % (os.path.join(options.root_dir, options.local_repo),))
    worker_dir = os.path.join(options.root_dir, options.local_repo, "worker")
    with CD(worker_dir):
        user_info = pwd.getpwnam(options.username)
        cuid = user_info[2]
        cgid = user_info[3]
        jgid = grp.getgrnam("jailusers")[2]
        run_cmd("gcc -DCONTEST_UID=%d -DCONTEST_GID=%d -DJAIL_GID=%d jail_own.c -o jail_own" % (cuid, cgid, jgid))
        run_cmd("chown root:%s jail_own" % (cgid,))
        run_cmd("chmod u=rwxs,g=rwx,o= jail_own")
コード例 #2
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse", "gcc"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if not os.path.exists(base_chroot_dir):
        os.makedirs(base_chroot_dir)
        run_cmd("debootstrap --variant=buildd --arch %s saucy \
                %s %s" % (options.arch, base_chroot_dir, options.os_url))
        with CD(TEMPLATE_DIR):
            run_cmd("cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
            with open("chroot_configs/sources.list.template", "r") as sl_file:
                sources_contents = sl_file.read()
            chroot_filename = "%s/etc/apt/sources.list" % (base_chroot_dir,)
            with open(chroot_filename, "w") as sources_file:
                sources_file.write(sources_contents)
            run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
        deb_archives = "/var/cache/apt/archives/"
        run_cmd("cp {0}*.deb {1}{0}".format(deb_archives, base_chroot_dir))
        run_cmd("schroot -c aic-base -- /bin/sh -c \"\
                DEBIANFRONTEND=noninteractive;\
                apt-get update; apt-get upgrade -y\"")
        run_cmd("schroot -c aic-base -- apt-get install -y python")
    run_cmd("schroot -c aic-base -- %s/setup/worker_setup.py --chroot-base"
            % (os.path.join(options.root_dir, options.local_repo, "worker"),))
コード例 #3
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def install_basic_languages():
    """ Install base set of submission languages,
        currently C, C++, Java, and Python """
    pkg_list = ["gcc", "g++", "openjdk-7-jdk", "python-dev", "python3-dev",
                "python-numpy", "python-scipy", "php5-cli", "scala", "groovy", "golang-go", 
                "nodejs", "mono-devel", "mono-gmcs"]
    install_apt_packages(pkg_list)
コード例 #4
0
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = ["memcached", "php-memcache", "zip", "nodejs",
            "cvs", "openjdk-11-jdk", "ant",
            "python-setuptools", "dvipng", "texlive-latex-base"]
    run_cmd("curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -")
    install_apt_packages(pkg_list)
コード例 #5
0
ファイル: server_setup.py プロジェクト: AliceTheCat/AntBot
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = ["apache2", "php5", "libapache2-mod-php5", "php5-mysql",
            "memcached", "php5-memcache", "php5-curl", "zip", "nodejs",
            "cvs", "openjdk-6-jdk", "ant", "icedtea-plugin",
            "python-setuptools", "dvipng", "texlive-latex-base"]
    install_apt_packages(pkg_list)
コード例 #6
0
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse", "gcc"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if not os.path.exists(base_chroot_dir):
        os.makedirs(base_chroot_dir)
        run_cmd("debootstrap --variant=buildd --arch %s natty \
                %s http://us-east-1.ec2.archive.ubuntu.com/ubuntu/" % (
            options.arch,
            base_chroot_dir,
        ))
        with CD(TEMPLATE_DIR):
            run_cmd(
                "cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
            run_cmd("cp chroot_configs/sources.list %s/etc/apt/" %
                    (base_chroot_dir, ))
            run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
        deb_archives = "/var/cache/apt/archives/"
        run_cmd("cp {0}*.deb {1}{0}".format(deb_archives, base_chroot_dir))
        run_cmd("schroot -c aic-base -- /bin/sh -c \"\
                DEBIANFRONTEND=noninteractive;\
                apt-get update; apt-get upgrade -y\"")
        run_cmd("schroot -c aic-base -- apt-get install -y python")
    run_cmd("schroot -c aic-base -- %s/setup/worker_setup.py --chroot-base" %
            (os.path.join(options.root_dir, options.local_repo), ))
コード例 #7
0
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse", "gcc"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if not os.path.exists(base_chroot_dir):
        os.makedirs(base_chroot_dir)
        run_cmd("debootstrap --variant=buildd --arch %s saucy \
                %s %s" % (options.arch, base_chroot_dir, options.os_url))
        with CD(TEMPLATE_DIR):
            run_cmd(
                "cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
            with open("chroot_configs/sources.list.template", "r") as sl_file:
                sources_contents = sl_file.read()
            chroot_filename = "%s/etc/apt/sources.list" % (base_chroot_dir, )
            with open(chroot_filename, "w") as sources_file:
                sources_file.write(sources_contents)
            run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
        deb_archives = "/var/cache/apt/archives/"
        run_cmd("cp {0}*.deb {1}{0}".format(deb_archives, base_chroot_dir))
        run_cmd("schroot -p -c aic-base -- /bin/sh -c \"\
                DEBIANFRONTEND=noninteractive;\
                apt-get update; apt-get upgrade -y\"")
        run_cmd("schroot -p -c aic-base -- apt-get install -y python")
    run_cmd(
        "schroot -p -c aic-base -- %s/setup/worker_setup.py --chroot-base" %
        (os.path.join(options.root_dir, options.local_repo, "worker"), ))
コード例 #8
0
ファイル: server_setup.py プロジェクト: rherbrich/aichallenge
def install_manager_packages():
    """ Install basic system packages required for the manager """
    pkg_list = [
        "mysql-server", "python-mysqldb", "openssh-server", "make", "git",
        "cron", "unzip"
    ]
    install_apt_packages(pkg_list)
コード例 #9
0
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = [
        "apache2", "php5", "libapache2-mod-php5", "php5-mysql", "memcached",
        "php5-memcache", "php5-curl", "zip", "cvs", "openjdk-6-jdk", "ant",
        "icedtea-plugin", "markdown"
    ]
    install_apt_packages(pkg_list)
コード例 #10
0
def install_dmd():
    """ Install the D language """
    if os.path.exists("/usr/bin/dmd"):
        return
    install_apt_packages("gcc-multilib")
    with CD("/root"):
        run_cmd("curl 'http://ftp.digitalmars.com/dmd_2.055-0_amd64.deb' > dmd_2.055-0_amd64.deb")
        run_cmd("dpkg -i dmd_2.055-0_amd64.deb")
コード例 #11
0
def install_dmd(download_base):
    """ Install the D language """
    if os.path.exists("/usr/bin/dmd"):
        return
    install_apt_packages("gcc-multilib")
    with CD("/root"):
        run_cmd("curl '%s/dmd.deb' > dmd.deb" % (download_base, ))
        run_cmd("dpkg -i dmd.deb")
コード例 #12
0
def install_dmd():
    """ Install the D language """
    if os.path.exists("/usr/bin/dmd"):
        return
    install_apt_packages("gcc-multilib")
    with CD("/root"):
        run_cmd("curl 'http://ftp.digitalmars.com/dmd_2.053-0_amd64.deb' > dmd_2.053-0_amd64.deb")
        run_cmd("dpkg -i dmd_2.053-0_amd64.deb")
コード例 #13
0
def install_basic_languages():
    """ Install base set of submission languages,
        currently C, C++, Java, and Python """
    pkg_list = [
        "gcc", "g++", "openjdk-6-jdk", "python-dev", "python3-dev",
        "python-numpy", "python-scipy"
    ]
    install_apt_packages(pkg_list)
コード例 #14
0
def install_extra_distribution_languages():
    """ Install all extra languages that are part of the Ubuntu distribution
        and don't require any special installation steps """
    pkg_list = ["ruby1.9.1", "php5-cli", "perl", "ocaml", "luajit", "ghc",
            "common-lisp-controller", "sbcl", "mono-2.0-devel"]
    install_apt_packages(pkg_list)
    if not os.path.exists("/usr/bin/ruby"):
        os.symlink("/usr/bin/ruby1.9.1", "/usr/bin/ruby")
コード例 #15
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def install_dmd(download_base):
    """ Install the D language """
    if os.path.exists("/usr/bin/dmd"):
        return
    install_apt_packages("gcc-multilib")
    with CD("/root"):
        run_cmd("curl '%s/dmd.deb' > dmd.deb" % (download_base,))
        run_cmd("dpkg -i dmd.deb")
コード例 #16
0
def install_extra_distribution_languages():
    """ Install all extra languages that are part of the Ubuntu distribution
        and don't require any special installation steps """
    pkg_list = ["ruby1.9.1", "php5-cli", "perl", "ocaml", "luajit", "ghc",
            "common-lisp-controller", "sbcl", "mono-2.0-devel"]
    install_apt_packages(pkg_list)
    if not os.path.exists("/usr/bin/ruby"):
        os.symlink("/usr/bin/ruby1.9.1", "/usr/bin/ruby")
コード例 #17
0
def install_basic_languages():
    """ Install base set of submission languages,
        currently C, C++, Java, and Python """
    pkg_list = [
        "gcc", "g++", "openjdk-7-jdk", "python-dev", "python3-dev",
        "python-numpy", "python-scipy", "php5-cli", "scala", "groovy",
        "golang-go", "nodejs", "mono-devel", "mono-gmcs"
    ]
    install_apt_packages(pkg_list)
コード例 #18
0
def install_nodejs():
    """ Install node.js """
    if os.path.exists("/usr/local/bin/node"):
        return
    install_apt_packages("make")
    try:
        os.makedirs("/usr/local/src/nodejs")
    except OSError:
        pass
    with CD("/usr/local/src/nodejs"):
        run_cmd("curl 'http://nodejs.org/dist/node-v0.4.1.tar.gz' | tar -xz")
    with CD("/usr/local/src/nodejs/node-v0.4.1"):
        run_cmd("./configure")
        run_cmd("make")
        run_cmd("make install")
コード例 #19
0
def install_golang():
    """ Install golang from a mercurial release """
    RELEASE_TAG = "release.r56"
    if os.path.exists("/usr/local/bin/godoc"):
        return
    pkg_list = ["bison", "ed", "gawk", "libc6-dev", "make",
            "python-setuptools", "build-essential", "mercurial"]
    install_apt_packages(pkg_list)
    try:
        os.makedirs("/usr/local/src")
    except OSError:
        pass
    with CD("/usr/local/src"):
        run_cmd("hg clone -r %s https://go.googlecode.com/hg/ go"
            % (RELEASE_TAG,))
    append_line("/root/.bashrc", "export GOROOT=/usr/local/src/go")
    append_line("/root/.bashrc", "export GOBIN=/usr/local/bin")
    with CD("/usr/local/src/go/src"):
        run_cmd("export GOBIN=/usr/local/bin; ./all.bash")
コード例 #20
0
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if os.path.exists(base_chroot_dir):
        return
    os.makedirs(base_chroot_dir)
    run_cmd("debootstrap --variant=buildd --arch amd64 maverick \
            %s http://us.archive.ubuntu.com/ubuntu/" % (base_chroot_dir, ))
    with CD(TEMPLATE_DIR):
        run_cmd("cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
        run_cmd("cp chroot_configs/sources.list %s/etc/apt/" %
                (base_chroot_dir, ))
        run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
    run_cmd(
        "schroot -c aic-base -- /bin/sh -c \"DEBIANFRONTEND=noninteractive;\
            apt-get update; apt-get upgrade -y\"")
    run_cmd("schroot -c aic-base -- apt-get install -y python")
    run_cmd("schroot -c aic-base -- %s/setup/worker_setup.py --chroot-setup" %
            (os.path.join(options.root_dir, options.local_repo), ))
コード例 #21
0
ファイル: worker_setup.py プロジェクト: AliceTheCat/AntBot
def setup_base_chroot(options):
    """ Create and setup the base chroot jail users will run in. """
    install_apt_packages(["debootstrap", "schroot", "unionfs-fuse", "gcc"])
    chroot_dir = "/srv/chroot"
    base_chroot_dir = os.path.join(chroot_dir, "aic-base")
    if not os.path.exists(base_chroot_dir):
        os.makedirs(base_chroot_dir)
        run_cmd("debootstrap --variant=buildd --arch %s natty \
                %s http://us-east-1.ec2.archive.ubuntu.com/ubuntu/" % (options.arch, base_chroot_dir,))
        with CD(TEMPLATE_DIR):
            run_cmd("cp chroot_configs/chroot.d/aic-base /etc/schroot/chroot.d/")
            run_cmd("cp chroot_configs/sources.list %s/etc/apt/"
                    % (base_chroot_dir,))
            run_cmd("cp -r chroot_configs/ai-jail /etc/schroot/ai-jail")
        deb_archives = "/var/cache/apt/archives/"
        run_cmd("cp {0}*.deb {1}{0}".format(deb_archives, base_chroot_dir))
        run_cmd("schroot -c aic-base -- /bin/sh -c \"\
                DEBIANFRONTEND=noninteractive;\
                apt-get update; apt-get upgrade -y\"")
        run_cmd("schroot -c aic-base -- apt-get install -y python")
    run_cmd("schroot -c aic-base -- %s/setup/worker_setup.py --chroot-base"
            % (os.path.join(options.root_dir, options.local_repo),))
コード例 #22
0
def install_required_packages():
    """ This installs the packages that are required to run the worker scripts
    """
    pkg_list = ["curl", "unzip", "python-software-properties"]
    install_apt_packages(pkg_list)
コード例 #23
0
def install_nodejs():
    """ Install node.js """
    run_cmd("add-apt-repository ppa:jerome-etienne/neoip")
    run_cmd("apt-get update")
    install_apt_packages(['nodejs'])
コード例 #24
0
def install_golang():
    """ Install golang """
    run_cmd("add-apt-repository ppa:gophers/go")
    run_cmd("apt-get update")
    install_apt_packages(['golang'])
コード例 #25
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def install_nodejs(download_base):
    """ Install node.js """
    install_apt_packages(["rlwrap"])
    with CD("/root"):
        run_cmd("curl '%s/nodejs.deb' > nodejs.deb" % (download_base,))
        run_cmd("dpkg -i nodejs.deb")
コード例 #26
0
ファイル: server_setup.py プロジェクト: AliceTheCat/AntBot
def install_manager_packages():
    """ Install basic system packages required for the manager """
    pkg_list = ["mysql-server", "python-mysqldb", "openssh-server", "make",
            "git", "cron", "unzip"]
    install_apt_packages(pkg_list)
コード例 #27
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def install_utility_packages():
    """ This installs packages that are nice to have on workers but not
        required for correct operation """
    pkg_list = ["openssh-server", "htop", "screen", "vim"]
    install_apt_packages(pkg_list)
コード例 #28
0
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = ["apache2", "php5", "libapache2-mod-php5", "php5-mysql",
            "memcached", "php5-memcache", "php5-curl", "zip",
            "cvs", "openjdk-6-jdk", "ant", "icedtea-plugin", "markdown"]
    install_apt_packages(pkg_list)
コード例 #29
0
def install_golang():
    """ Install golang """
    run_cmd("add-apt-repository ppa:gophers/go")
    run_cmd("apt-get update")
    install_apt_packages(['golang'])
コード例 #30
0
ファイル: worker_setup.py プロジェクト: Unexpected/dtstrike
def install_required_packages():
    """ This installs the packages that are required to run the worker scripts
    """
    pkg_list = ["curl", "unzip", "python-software-properties", "sudo"]
    install_apt_packages(pkg_list)
コード例 #31
0
def install_nodejs():
    """ Install node.js """
    run_cmd("add-apt-repository ppa:jerome-etienne/neoip")
    run_cmd("apt-get update")
    install_apt_packages(['nodejs'])
コード例 #32
0
ファイル: server_setup.py プロジェクト: rherbrich/aichallenge
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = ["apache2", "php5", "libapache2-mod-php5", "php5-mysql"]
    install_apt_packages(pkg_list)
コード例 #33
0
def install_required_packages():
    """ This installs the packages that are required to run the worker scripts
    """
    pkg_list = ["curl", "unzip"]
    install_apt_packages(pkg_list)
コード例 #34
0
def install_utility_packages():
    """ This installs packages that are nice to have on workers but not
        required for correct operation """
    pkg_list = ["openssh-server", "htop", "screen", "vim"]
    install_apt_packages(pkg_list)
コード例 #35
0
ファイル: worker_setup.py プロジェクト: AliceTheCat/AntBot
def install_basic_languages():
    """ Install base set of submission languages,
        currently C, C++, Java, and Python """
    pkg_list = ["gcc", "g++", "openjdk-6-jdk", "python-dev", "python3-dev",
                "python-numpy", "python-scipy"]
    install_apt_packages(pkg_list)
コード例 #36
0
def install_nodejs(download_base):
    """ Install node.js """
    install_apt_packages(["rlwrap"])
    with CD("/root"):
        run_cmd("curl '%s/nodejs.deb' > nodejs.deb" % (download_base, ))
        run_cmd("dpkg -i nodejs.deb")
コード例 #37
0
def install_website_packages():
    """ Install system packages required for the website """
    pkg_list = ["apache2", "php5", "libapache2-mod-php5", "php5-mysql"]
    install_apt_packages(pkg_list)