Created
June 7, 2016 23:39
-
-
Save drdaxxy/b3da7cd2108e110f22897ae060e26280 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$script = <<SCRIPT | |
function randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;} | |
MYSQL_PASSWORD=$(randpw 16) | |
# TODO: actually create and use cgroups for IDE and db/pma/app servers | |
sudo apt-get -y update | |
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install cgroup-bin | |
sudo cgroups-mount | |
sudo service cgroup-lite restart | |
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_PASSWORD" | |
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD" | |
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password $MYSQL_PASSWORD" | |
sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" | |
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server phpmyadmin php5-mcrypt | |
# TODO: should probably autostart the c9 server | |
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential git nodejs npm | |
sudo ln -s /usr/bin/nodejs /usr/local/bin/node | |
git clone https://github.com/c9/core.git c9sdk | |
c9sdk/scripts/install-sdk.sh | |
# TODO: maybe install more versions | |
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 | |
curl -sSL https://get.rvm.io | bash -s stable | |
source /home/vagrant/.bashrc | |
source /home/vagrant/.rvm/scripts/rvm | |
rvm install 2.2 | |
rvm use 2.2 | |
echo "gem: --no-document" > /home/vagrant/.gemrc | |
gem install rails bundler | |
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install nano htop | |
echo $MYSQL_PASSWORD > /home/vagrant/.mysql-password | |
SCRIPT | |
Vagrant.configure(2) do |config| | |
config.vm.box = "fgrehm/trusty64-lxc" | |
config.vm.network "forwarded_port", guest: 8181, host: 8181, host_ip: "0.0.0.0" | |
config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "0.0.0.0" | |
config.vm.network "forwarded_port", guest: 80, host: 8000, host_ip: "0.0.0.0" | |
config.vm.provider :lxc do |lxc| | |
lxc.backingstore = 'overlayfs' | |
# lxc.customize 'cgroup.memory.limit_in_bytes', '7G' | |
# lxcfs, sub cgroups | |
lxc.customize 'mount.auto', 'cgroup:mixed' | |
lxc.customize 'autodev', '1' | |
lxc.customize 'kmsg', '0' | |
lxc.customize 'include', '/usr/share/lxc/config/common.conf.d/00-lxcfs.conf' | |
end | |
config.vm.provision "shell", inline: $script, privileged: false | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment