Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save drdaxxy/b3da7cd2108e110f22897ae060e26280 to your computer and use it in GitHub Desktop.
Save drdaxxy/b3da7cd2108e110f22897ae060e26280 to your computer and use it in GitHub Desktop.
$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