Skip to content

Instantly share code, notes, and snippets.

@index0h
Last active August 29, 2015 13:56
Show Gist options
  • Save index0h/8841431 to your computer and use it in GitHub Desktop.
Save index0h/8841431 to your computer and use it in GitHub Desktop.
Ubuntu 13.10 under Vagrant After install script (not finished)
###################################################################################################
# APT
apt-get -y update
apt-get -y upgrade
apt-get -y install linux-headers-$(uname -r) build-essential automake autoconf zlib1g-dev libssl-dev \
libreadline-gplv2-dev libyaml-dev vim dkms nfs-common zip unzip mc curl software-proprieties-common
###################################################################################################
###################################################################################################
# Vagrant
mkdir /home/vagrant/.ssh
chmod 700 /home/vagrant/.ssh
cd /home/vagrant/.ssh
wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
###################################################################################################
###################################################################################################
# VirtualBox
# Without libdbus virtualbox would not start automatically after compile
apt-get -y install --no-install-recommends libdbus-1-3
# Remove existing VirtualBox guest additions
/etc/init.d/virtualbox-ose-guest-utils stop
rmmod vboxguest
aptitude -y purge virtualbox-ose-guest-x11 virtualbox-ose-guest-dkms virtualbox-ose-guest-utils
aptitude -y install dkms
# Install the VirtualBox guest additions
VBOX_VERSION=$(cat /home/vagrant/.vbox_version)
VBOX_ISO=VBoxGuestAdditions_$VBOX_VERSION.iso
mount -o loop $VBOX_ISO /mnt
yes|sh /mnt/VBoxLinuxAdditions.run
umount /mnt
# Cleanup
rm $VBOX_ISO
###################################################################################################
###################################################################################################
# SUDO
groupadd -r admin
usermod -a -G admin vagrant
cp /etc/sudoers /etc/sudoers.orig
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers
###################################################################################################
###################################################################################################
# Java
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java7-installer
###################################################################################################
###################################################################################################
# Ruby
echo "gem: --no-document" > /etc/gemrc
chmod 755 /etc/gemrc
curl -sSL https://get.rvm.io | sudo bash -s stable
###################################################################################################
###################################################################################################
# NodeJS
add-apt-repository ppa:chris-lea/node.js -y
apt-get update
apt-get install -y nodejs
npm install mocha should uglify-js csso stulys less express db2md -g
###################################################################################################
###################################################################################################
# MySQL
debconf-set-selections <<< 'mysql-server mysql-server/root_password password root'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root'
apt-get install -y mysql-server mysql-client
###################################################################################################
###################################################################################################
# Apache
apt-get install -y apache2
# Apache listening 8080
echo "NameVirtualHost *:8080
Listen 8080" > /etc/apache2/ports.conf
rm /etc/apache2/sites-aviliable/default-ssl
# Apache dynamic hosts
a2enmod rewrite
a2enmod vhost_alias
echo '
<VirtualHost *:8080>
UseCanonicalName Off
ServerName localhost
ServerAlias *
VirtualDocumentRoot /var/www/%0
LogLevel warn
ErrorLog /var/log/%0-error.log
LogLevel warn
LogFormat "{ \"@timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \"@message\": \"%r\", \"@fields\": { \"http_host\": \"%0\", \"remote_addr\": \"%{X-Real-IP}i\", \"remote_user\": \"%u\", \"body_size\": \"%D\", \"request_time\": %D, \"status\": %s, \"request\": \"%U%q\", \"method\": \"%m\", \"http_referrer\": \"%{Referer}i\" \"http_user_agent\": \"%{User-agent}i\" } }" logstash_json
CustomLog /var/log/apache2/%0-access.log logstash_json
<Directory "/home/vagrant/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
' > /etc/apache2/sites-available/default
service apache2 restart
###################################################################################################
###################################################################################################
# NGINX
apt-get install -y nginx
echo '
server {
listen 80;
root /var/www/$http_host;
server_name $http_host;
log_format logstash_json "{ \"@timestamp\": \"$time_iso8601\", \"@fields\": { \"http_host\": \"$host\", \"remote_addr\": \"$remote_addr\", \"remote_user\": \"$remote_user\", \"body_size\": \"$body_bytes_sent\", \"request_time\": \"$request_time\", \"status\": \"$status\", \"request\": \"$request\", \"method\": \"$request_method\", \"http_referrer\": \"$http_referer\", \"http_user_agent\": \"$http_user_agent\" } }";
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/$host-error.log;
location @apache2 {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
location / {
try_files $uri @apache2;
}
}
' > /etc/nginx/sites-available/default
service nginx restart
###################################################################################################
###################################################################################################
# Logstash
wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
echo 'deb http://packages.elasticsearch.org/logstash/1.3/debian stable main' > /etc/apt/sources.list.d/logstash.list
apt-get update
apt-get install -y logstash
#
#echo '
#input {
# file {
# path => "/var/log/apache2/*-access.log"
# type => "apache2-access"
# format => json_event
# }
#
# file {
# path => "/var/log/apache2/*-error.log"
# type => "apache2-error"
# }
#
# filter {
# grok {
# type => "apache2-error"
#
# }
# }
#
# grok {
# type => "apache-error"
# match {
# "APACHE_LOG_LEVEL" => "(?:emerg|alert|crit|error|warn|notice|info|debug)"
# "APACHE_ERROR_LOG" => "\[%{DATESTAMP_OTHER:timestamp}\] \[%{APACHE_LOG_LEVEL:level}\] %{GREEDYDATA:message}"
# }
# pattern => "%{APACHE_ERROR_LOG}"
# }
#}
#
#output {
# stdout { debug => true }
#}
'
###################################################################################################
# Clean
apt-get -y autoremove
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
echo "cleaning up dhcp leases"
rm /var/lib/dhcp/*
echo "cleaning up udev rules"
rm /etc/udev/rules.d/70-persistent-net.rules
mkdir /etc/udev/rules.d/70-persistent-net.rules
rm -rf /dev/.udev/
rm /lib/udev/rules.d/75-persistent-net-generator.rules
echo "pre-up sleep 2" >> /etc/network/interfaces
exit
###################################################################################################
@index0h
Copy link
Author

index0h commented Feb 6, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment