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")
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"),))
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)
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)
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)
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), ))
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"), ))
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)
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)
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")
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")
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")
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)
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")
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")
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)
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")
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")
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), ))
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),))
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)
def install_nodejs(): """ Install node.js """ run_cmd("add-apt-repository ppa:jerome-etienne/neoip") run_cmd("apt-get update") install_apt_packages(['nodejs'])
def install_golang(): """ Install golang """ run_cmd("add-apt-repository ppa:gophers/go") run_cmd("apt-get update") install_apt_packages(['golang'])
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")
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)
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)
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)
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)
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)
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)
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)
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")