vagrant-yarrs-and-yamls 0.8.3 → 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +13 -5
  2. data/Gemfile +2 -0
  3. data/README.md +58 -11
  4. data/Yarrs.example.yaml +20 -0
  5. data/example.Vagrantfile +2 -8
  6. data/lib/scripts/apache2.sh +34 -0
  7. data/lib/scripts/apache2_ssl.sh +24 -0
  8. data/lib/scripts/base.sh +32 -0
  9. data/lib/scripts/composer.sh +28 -0
  10. data/lib/scripts/deploy.sh +38 -0
  11. data/lib/scripts/deploy_init.sh +11 -0
  12. data/lib/scripts/export_vars.sh +16 -0
  13. data/lib/scripts/git.sh +11 -0
  14. data/lib/scripts/hhvm.sh +33 -0
  15. data/lib/scripts/install-nodejs-modules.sh +19 -0
  16. data/lib/scripts/mariadb.sh +35 -0
  17. data/lib/scripts/mysql-create-databases.sh +19 -0
  18. data/lib/scripts/mysql.sh +28 -0
  19. data/lib/scripts/mysql_client.sh +22 -0
  20. data/lib/scripts/newrelic_php.sh +37 -0
  21. data/lib/scripts/nginx.sh +26 -0
  22. data/lib/scripts/nginx_site.sh +27 -0
  23. data/lib/scripts/nodejs.sh +24 -0
  24. data/lib/scripts/nvm.sh +30 -0
  25. data/lib/scripts/permissions.sh +18 -0
  26. data/lib/scripts/php.sh +25 -0
  27. data/lib/scripts/php_configure.sh +18 -0
  28. data/lib/scripts/php_xdebug.sh +18 -0
  29. data/lib/scripts/phpbrew.sh +11 -0
  30. data/lib/scripts/postfix.sh +13 -0
  31. data/lib/scripts/pubkeys.sh +35 -0
  32. data/lib/scripts/rvm.sh +35 -0
  33. data/lib/scripts/test.sh +48 -0
  34. data/lib/scripts/tz.sh +8 -0
  35. data/lib/scripts/wp_env.sh +16 -0
  36. data/lib/scripts/wpcli.sh +27 -0
  37. data/lib/templates/apache2.conf +151 -0
  38. data/lib/templates/apache2_vhost_http.conf +8 -0
  39. data/lib/templates/apache2_vhost_https.conf +16 -0
  40. data/lib/templates/apache2_vhost_redirect_http.conf +17 -0
  41. data/lib/templates/apache2_vhost_redirect_https.conf +18 -0
  42. data/lib/templates/gitconfig.conf +32 -0
  43. data/lib/templates/logrotate.conf +14 -0
  44. data/lib/templates/nginx.conf +56 -0
  45. data/lib/templates/nginx_vhost.erb +45 -0
  46. data/lib/templates/proxy_params.conf +3 -0
  47. data/lib/templates/xdebug.ini +6 -0
  48. data/lib/vagrant-yarrs-and-yamls/api.rb +423 -0
  49. data/lib/vagrant-yarrs-and-yamls/plugin.rb +4 -48
  50. data/lib/vagrant-yarrs-and-yamls/version.rb +1 -1
  51. data/vagrant-yarrs-and-yamls.gemspec +1 -1
  52. metadata +51 -8
  53. data/example.Vagrantfile.yml +0 -8
  54. data/lib/vagrant-yarrs-and-yamls/v1.rb +0 -234
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+
3
+ echo "mysql-create-databases.sh: provisioning starts"
4
+
5
+ # check if not installed
6
+ if ! which mysql > /dev/null 2>&1; then
7
+ echo "mysql is not installed" 1>&2
8
+ exit 1
9
+ fi
10
+
11
+ [ ! -z $MYSQL_ROOT_PASSWORD ] && PASS=" -p=$MYSQL_ROOT_PASSWORD" || PASS=''
12
+
13
+ for DB in "$@"
14
+ do
15
+ echo "mysql-create-databases.sh: creating databse: $DB ..."
16
+ mysql -uroot$PASS -e "CREATE DATABASE IF NOT EXISTS \`$DB\`;" > /dev/null
17
+ done
18
+
19
+ echo "mysql-create-databases.sh: provisioning ends"
@@ -0,0 +1,28 @@
1
+ #!/bin/sh
2
+
3
+ echo "mysql.sh: provisioning starts"
4
+
5
+ # MySQL
6
+ if ! mysql --version > /dev/null 2>&1; then
7
+ sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q install mysql-server mysql-client
8
+ fi
9
+
10
+ # check if not installed
11
+ if ! which mysql > /dev/null 2>&1; then
12
+ echo "mysql.sh: mysql failed to install :/" 1>&2
13
+ exit 1
14
+ fi
15
+
16
+ # reset root mysql password
17
+ [ ! -z $MYSQL_ROOT_PASSWORD ] && PASS=" -p=$MYSQL_ROOT_PASSWORD" && mysqladmin -uroot password $MYSQL_ROOT_PASSWORD > /dev/null 2>&1 || PASS=''
18
+
19
+ if test -d "/home/vagrant"; then
20
+ echo "mysql.sh: Setting up vagrant mysql user" 1>&2
21
+ mysql -uroot -p$PASS -e "CREATE USER 'vagrant'@'localhost' IDENTIFIED BY '';" > /dev/null 2>&1
22
+ mysql -uroot -p$PASS -e "CREATE USER 'vagrant'@'%' IDENTIFIED BY '';" > /dev/null 2>&1
23
+ mysql -uroot -p$PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'localhost' WITH GRANT OPTION;" > /dev/null 2>&1
24
+ mysql -uroot -p$PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'%' WITH GRANT OPTION;" > /dev/null 2>&1
25
+ mysql -uroot -p$PASS -e "FLUSH PRIVILEGES;" > /dev/null 2>&1
26
+ fi
27
+
28
+ echo "mysql.sh: provisioning ends"
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+
3
+ echo "mysql_client.sh: provisioning starts"
4
+
5
+ # MySQL
6
+ if ! mysql --version > /dev/null 2>&1; then
7
+ sudo DEBIAN_FRONTEND=noninteractive apt-get -y -q install mysql-client
8
+ fi
9
+
10
+ # check if not installed
11
+ if ! which mysql > /dev/null 2>&1; then
12
+ echo "mysql.sh: mysql failed to install :/" 1>&2
13
+ exit 1
14
+ fi
15
+
16
+ echo "-+-+-+- software versions:"
17
+ mysql --version
18
+
19
+ echo "-+-+-+- service status:"
20
+ service mysql status
21
+
22
+ echo "mysql_client.sh: provisioning ends"
@@ -0,0 +1,37 @@
1
+ #!/bin/sh
2
+
3
+ # Docs: https://docs.newrelic.com/docs/agents/php-agent
4
+
5
+ echo "new_relic_php.sh: provisioning starts"
6
+
7
+ ENV=/var/www/.env
8
+
9
+ if [[ -e $ENV ]]; then
10
+ echo "new_relic_php.sh: Sourcing $ENV"
11
+ source $ENV
12
+ else
13
+ echo "new_relic_php.sh: Failed to load env settings"
14
+ exit 1
15
+ fi
16
+
17
+ if [[ -n "$NEW_RELIC_APP_NAME" || -n $NEW_RELIC_LICENSE_KEY ]]; then
18
+ echo "new_relic_php.sh: Updating newrelic.ini"
19
+ echo newrelic-php5 newrelic-php5/application-name string "$NEW_RELIC_APP_NAME" | sudo debconf-set-selections
20
+ echo newrelic-php5 newrelic-php5/license-name string "$NEW_RELIC_LICENSE_KEY" | sudo debconf-set-selections
21
+
22
+ cat <<EOT > /etc/php5/apache2/conf.d/newrelic.ini
23
+ newrelic.appname="$NEW_RELIC_APP_NAME"
24
+ newrelic.license="$NEW_RELIC_LICENSE_KEY"
25
+ EOT
26
+ fi
27
+
28
+ wget -O - https://download.newrelic.com/548C16BF.gpg | sudo apt-key add -
29
+ sudo sh -c 'echo "deb http://apt.newrelic.com/debian/ newrelic non-free" > /etc/apt/sources.list.d/newrelic.list'
30
+ sudo apt-get update
31
+ sudo apt-get install -y newrelic-php5
32
+ sudo newrelic-install install
33
+
34
+ sudo service apache2 restart
35
+ sudo service php5-fpm restart
36
+
37
+ echo "new_relic_php.sh: provisioning ends"
@@ -0,0 +1,26 @@
1
+ #!/bin/sh
2
+
3
+ echo "nginx.sh: provisioning starts"
4
+
5
+ # web server
6
+ if ! which nginx > /dev/null 2>&1; then
7
+ nginx=stable # use nginx=development for latest development version
8
+ add-apt-repository ppa:nginx/$nginx
9
+ apt-get update
10
+ sudo apt-get install -y nginx
11
+ sudo apt-get install -y python-software-properties
12
+ sudo service nginx restart
13
+ fi
14
+
15
+ # check if not installed
16
+ if ! which nginx > /dev/null 2>&1; then
17
+ echo "nginx.sh: nginx failed to install :/" 1>&2
18
+ exit 1
19
+ fi
20
+
21
+ rm /etc/nginx/sites-available/* > /dev/null 2>&1
22
+ rm /etc/nginx/sites-enabled/* > /dev/null 2>&1
23
+
24
+ service nginx start
25
+
26
+ echo "nginx.sh: provisioning ends"
@@ -0,0 +1,27 @@
1
+ #!/bin/sh
2
+
3
+ # Exit if no args are passed in
4
+ [ -z $1 ] && exit
5
+
6
+ echo "nginx_site.sh: provisioning starts"
7
+
8
+ HOST=$1
9
+ HOSTPATH=$2
10
+ CONFIG=$3
11
+
12
+ # SSL
13
+ mkdir -p /etc/nginx/ssl 2>/dev/null
14
+ openssl genrsa -out "/etc/nginx/ssl/$HOST.key" 1024 2>/dev/null
15
+ openssl req -new -key /etc/nginx/ssl/$HOST.key -out /etc/nginx/ssl/$HOST.csr -subj "/CN=$HOST/O=Vagrant/C=UK" 2>/dev/null
16
+ openssl x509 -req -days 365 -in /etc/nginx/ssl/$HOST.csr -signkey /etc/nginx/ssl/$HOST.key -out /etc/nginx/ssl/$HOST.crt 2>/dev/null
17
+
18
+ # CONFIG
19
+
20
+ echo "nginx_ensite $HOST"
21
+ echo $CONFIG > "/etc/nginx/sites-available/$HOST"
22
+ ln -fs "/etc/nginx/sites-available/$HOST" "/etc/nginx/sites-enabled/$HOST"
23
+
24
+ service nginx restart 2>/dev/null
25
+ service php5-fpm restart 2>/dev/null
26
+
27
+ echo "nginx_site.sh: provisioning ends"
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+
3
+ echo "nodejs.sh: provisioning starts"
4
+
5
+ # MySQL
6
+ if ! node --version > /dev/null 2>&1; then
7
+ curl -sL https://deb.nodesource.com/setup | sudo bash -
8
+ apt-get install -y nodejs
9
+ fi
10
+
11
+ # check if not installed
12
+ if ! which node > /dev/null 2>&1; then
13
+ echo "nodejs.sh: node failed to install :/" 1>&2
14
+ exit 1
15
+ fi
16
+
17
+ echo "nodejs.sh: provisioning ends"
18
+
19
+ # BLEEDING - OR just use NGINX
20
+
21
+ # Run Node.js apps on low ports without running as root
22
+ # http://technosophos.com/2012/12/17/run-nodejs-apps-low-ports-without-running-root.html
23
+ # sudo apt-get install libcap2-bin
24
+ # sudo setcap cap_net_bind_service=+ep $(which iojs)
@@ -0,0 +1,30 @@
1
+ #!/bin/sh
2
+
3
+ echo "nvm.sh: provisioning starts"
4
+
5
+ rm /etc/profile.d/nvm.sh > /dev/null 2>&1
6
+
7
+ cat > /etc/profile.d/nvm.sh <<- NVM
8
+ if [[ \$- == *i* ]]; then
9
+
10
+ if ! nvm --version > /dev/null 2>&1; then
11
+ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash
12
+ fi
13
+
14
+ source ~/.nvm/nvm.sh
15
+
16
+ nvm --version
17
+ nvm install stable
18
+ nvm use stable
19
+ fi
20
+ NVM
21
+
22
+ echo "nvm.sh: provisioning ends"
23
+ exit
24
+
25
+ # BLEEDING - OR just use NGINX
26
+
27
+ # Run Node.js apps on low ports without running as root
28
+ # http://technosophos.com/2012/12/17/run-nodejs-apps-low-ports-without-running-root.html
29
+ # sudo apt-get install libcap2-bin
30
+ # sudo setcap cap_net_bind_service=+ep $(which iojs)
@@ -0,0 +1,18 @@
1
+ #!/bin/sh
2
+
3
+ echo "permissions.sh: provisioning starts"
4
+
5
+ WEB_GROUP=www-data
6
+ WEB_DIR=/var/www
7
+
8
+ if [ -d /home/ubuntu ]; then
9
+ sudo usermod -g $WEB_GROUP ubuntu
10
+ else
11
+ echo "permissions.sh: failed adding ubuntu to $WEB_GROUP."
12
+ fi
13
+
14
+ sudo chown -R root:$WEB_GROUP $WEB_DIR
15
+ sudo chmod 2775 $WEB_DIR
16
+ sudo chown $WEB_GROUP $WEB_DIR/web/.htaccess
17
+
18
+ echo "permissions.sh: provisioning ends"
@@ -0,0 +1,25 @@
1
+ #!/bin/sh
2
+
3
+ echo "php.sh: provisioning starts"
4
+
5
+ # PHP
6
+ sudo apt-get -y install php5-fpm php5-cli
7
+ sudo apt-get -y install php5-mysql php5-curl php5-gd php5-imagick php5-mcrypt
8
+
9
+ sudo php5enmod mcrypt
10
+
11
+ if ! which php > /dev/null 2>&1; then
12
+ echo "php.sh: php failed to install :/" 1>&2
13
+ exit 1
14
+ fi
15
+
16
+ rm /etc/php5/fpm/conf.d/00-xdebug.ini
17
+ rm /etc/php5/apache2/conf.d/00-xdebug.ini
18
+
19
+ echo "php.sh: -+-+-+- software versions:"
20
+ php --version
21
+
22
+ echo "php.sh: -+-+-+- service status:"
23
+ service php5-fpm status
24
+
25
+ echo "php.sh: provisioning ends"
@@ -0,0 +1,18 @@
1
+ #!/bin/sh
2
+
3
+ echo "php_configure.sh: provisioning starts"
4
+
5
+ # check prereq
6
+ if ! which php > /dev/null 2>&1; then
7
+ echo "php_configure.sh: php not installed :/" 1>&2
8
+ exit 1
9
+ fi
10
+
11
+ # https://raw.githubusercontent.com/php/php-src/PHP-7.0.0/php.ini-development
12
+ # https://raw.githubusercontent.com/php/php-src/PHP-7.0.0/php.ini-production
13
+
14
+ # php.ini
15
+ sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/fpm/php.ini
16
+ sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php5/apache2/php.ini
17
+
18
+ echo "php_configure.sh: provisioning ends"
@@ -0,0 +1,18 @@
1
+ #!/bin/sh
2
+
3
+ echo "php_xdebug.sh: provisioning starts"
4
+
5
+ # check if not installed
6
+ if ! which php > /dev/null 2>&1; then
7
+ echo "php_xdebug.sh: Abort. php not installed :/" 1>&2
8
+ exit 1
9
+ fi
10
+
11
+ ## PHP
12
+ sudo apt-get install -y php5-xdebug
13
+
14
+ [ ! -z $1 ] && cat $1 > /etc/php5/fpm/conf.d/00-xdebug.ini
15
+
16
+ sudo service php5-fpm restart
17
+
18
+ echo "php_xdebug.sh: provisioning ends"
@@ -0,0 +1,11 @@
1
+ #!/bin/sh
2
+
3
+ echo "phpbrew.sh: provisioning starts"
4
+
5
+ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
6
+ chmod +x phpbrew
7
+ sudo mv phpbrew /usr/bin/phpbrew
8
+
9
+ phpbrew init
10
+
11
+ echo "phpbrew.sh: provisioning ends"
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+
3
+ echo "postfix.sh: provisioning starts"
4
+
5
+ echo "postfix postfix/mailname string `hostname`" | debconf-set-selections
6
+ echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
7
+ DEBIAN_FRONTEND=noninteractive apt-get install -y -q --force-yes postfix
8
+ sudo apt-get install -y postfix
9
+ sudo apt-get install -y mailutils default-mta
10
+
11
+ sudo service postfix restart
12
+
13
+ echo "postfix.sh: provisioning ends"
@@ -0,0 +1,35 @@
1
+ #!/bin/sh
2
+
3
+ echo "pubkeys.sh: provisioning starts"
4
+
5
+ if [ -z $1 ]; then
6
+ echo "no users are passed in.\n";
7
+ exit 1
8
+ fi
9
+
10
+ for zeUser in "$@"
11
+ do
12
+ echo "[github_ssh_keys]: $zeUser"
13
+
14
+ if [ ! -e /home/$zeUser ]; then
15
+ sudo useradd -d /home/$zeUser $zeUser
16
+ fi
17
+
18
+ ## create new non-root user
19
+ sudo usermod -a -G www-data $zeUser
20
+ sudo mkdir -p /home/$zeUser/.ssh
21
+
22
+ if [ ! -e ~/$zeUser.keys ]; then
23
+ sudo wget https://github.com/$zeUser.keys
24
+ fi
25
+
26
+ if [ -e ~/$zeUser.keys ]; then
27
+ sudo cat $zeUser.keys > /home/$zeUser/.ssh/authorized_keys
28
+ fi
29
+
30
+ sudo chown -R $zeUser: /home/$zeUser
31
+ sudo chmod 600 /home/$zeUser/.ssh/authorized_keys
32
+ sudo chmod 700 /home/$zeUser/.ssh/
33
+ done
34
+
35
+ echo "pubkeys.sh: provisioning ends"
@@ -0,0 +1,35 @@
1
+ # RVM Install
2
+
3
+ echo "rvm.sh: provisioning starts"
4
+
5
+ FILE=/etc/profile.d/rvm.sh
6
+ SCRIPT=~/.rvm/scripts/rvm
7
+
8
+ cat > $FILE <<- RVM
9
+ if [[ \$- == *i* ]]; then
10
+
11
+ echo progress-bar >> ~/.curlrc
12
+
13
+ if [[ ! -e $SCRIPT ]]; then
14
+ echo "NOT THERE"
15
+ else
16
+ echo "YES ITS THERE"
17
+ fi
18
+
19
+ if [[ ! -e ~/.rvmrc ]]; then
20
+ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
21
+ sudo \curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler"
22
+ rvm get head --auto-dotfiles
23
+ sudo rvm install 2.0.0-p195
24
+ sudo gem install bundler zeus
25
+ fi
26
+
27
+ echo "sudo source $SCRIPT"
28
+ source $SCRIPT
29
+ fi
30
+ RVM
31
+
32
+ chmod +x $FILE
33
+
34
+ echo "rvm.sh: provisioning ends"
35
+ exit
@@ -0,0 +1,48 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ # Updating and Upgrading dependencies
6
+ sudo apt-get update -y -qq > /dev/null
7
+ sudo apt-get upgrade -y -qq > /dev/null
8
+
9
+ # Install necessary libraries for guest additions and Vagrant NFS Share
10
+ sudo apt-get -y -q install linux-headers-$(uname -r) build-essential dkms nfs-common
11
+
12
+ # Install necessary dependencies
13
+ sudo apt-get -y -q install curl wget git tmux firefox xvfb vim
14
+
15
+ # Setup sudo to allow no-password sudo for "admin"
16
+ groupadd -r admin
17
+ usermod -a -G admin vagrant
18
+ cp /etc/sudoers /etc/sudoers.orig
19
+ sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
20
+ sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers
21
+
22
+
23
+ ##########
24
+
25
+ # # Installing vagrant keys
26
+ # mkdir ~/.ssh
27
+ # chmod 700 ~/.ssh
28
+ # cd ~/.ssh
29
+ # wget --no-check-certificate 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' -O authorized_keys
30
+ # chmod 600 ~/.ssh/authorized_keys
31
+ # chown -R vagrant ~/.ssh
32
+
33
+ # # Node.js Setup
34
+ # wget --retry-connrefused -q -O - https://raw.github.com/creationix/nvm/master/install.sh | sh
35
+ # source ~/.nvm/nvm.sh
36
+ #
37
+ # nvm install 0.10.18
38
+ # nvm alias default 0.10.18
39
+ #
40
+ # echo "source ~/.nvm/nvm.sh" >> ~/.bash_profile
41
+
42
+ # # RVM Install
43
+ # wget --retry-connrefused -q -O - https://get.rvm.io | bash -s stable
44
+ # source /home/vagrant/.rvm/scripts/rvm
45
+ #
46
+ # rvm autolibs read-fail
47
+ # rvm install 2.0.0-p195
48
+ # gem install bundler zeus