Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Nov 27, 2020. It is now read-only.

Adding vagrant config files #407

Closed
wants to merge 29 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
787c920
Add vagrant files
chregu Sep 4, 2012
46c5773
use modphp
chregu Sep 4, 2012
cd12875
Allow 192.168.22.1 as well for vagrant
chregu Sep 4, 2012
3666ef7
add .vagrant
chregu Sep 4, 2012
3b39229
Merge remote-tracking branch 'origin/master' into vagrant
chregu Sep 6, 2012
9303e7d
Some cleanup
chregu Sep 6, 2012
d750cae
Added a README about vagrant
chregu Sep 6, 2012
1bed672
Added sqlite
chregu Sep 6, 2012
a9bbc6f
Set the timeout for composer install to 20 minutes
chregu Sep 6, 2012
1291f88
add a note that it takes long to start up the machine the first time
chregu Sep 6, 2012
35623bf
use UTC
chregu Sep 7, 2012
bdf55fb
remove dummy file
chregu Sep 7, 2012
8dd00c5
make a 5_3 also possible
chregu Sep 9, 2012
1ef895c
Simple Windows detection, for NFS setting
aderuwe Sep 11, 2012
da4ba81
Merge pull request #1 from aderuwe/vagrant-windows
chregu Sep 11, 2012
91293c8
do apt-get upgrade before install of php-cli
chregu Sep 11, 2012
85edbe6
don't forward mysql port
chregu Sep 11, 2012
24c0c56
try something else with that xdebug.ini
chregu Sep 11, 2012
af85150
add a comment about PHP 5.4
chregu Sep 12, 2012
a68f646
Added php5-xhprof
chregu Sep 12, 2012
3f9b32f
Merge remote-tracking branch 'origin/vagrant_with_5_3' into vagrant
chregu Sep 12, 2012
ff07d11
xhprof is only available with PHP 5.4
chregu Sep 12, 2012
9e3279d
remove mod_actions.
chregu Sep 12, 2012
6741ed1
clean up the manifest
chregu Sep 12, 2012
5ea7e5e
Added mysql (optional)
chregu Sep 12, 2012
905dba8
put the includes on top to make them more visible and update the READ…
chregu Sep 12, 2012
52f58f6
add the mysql credentials to the readme
chregu Sep 12, 2012
bc95c76
Fixing Vagrantbox Path
dasrecht Mar 27, 2013
f3032cb
Merge pull request #3 from dasrecht/vagrant
chregu Mar 27, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ build/
vendor
bin
composer.phar

/.vagrant
38 changes: 38 additions & 0 deletions README.vagrant.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Using Symfony Standard Edition with Vagrant

## Get Vagrant, if you don't have already

From http://vagrantup.com/


## startup vagrant

vagrant up

(this takes up to 15-20 minutes the first time, especially the "composer.phar install" part)

## watch site

go to http://192.168.22.22/app_dev.php and start playing.

## PHP 5.4

If you want PHP 5.4, open the file `vagrant/puppet/manifests/main.pp` and uncomment the line
`include php54dotdeb` and comment out `include php53debian` so that it looks like this

````
include php54dotdeb
#include php53debian
````

## Mysql

If you want to use Mysql, open the file `vagrant/puppet/manifests/main.pp` and uncomment the line
`include mysql` so that it looks like this

````
include mysql
````

The database is named `symfony`, the user is `symfony` and the password `Shub9aiJ`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why putting a hard password if this is for development, does not make sense, put symfony


24 changes: 24 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

# -*- mode: ruby -*-

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have duplicated vi header here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree please remove

# vi: set ft=ruby :

def Kernel.is_windows
processor, platform, *rest = RUBY_PLATFORM.split("-")
platform == "mingw32"
end

Vagrant::Config.run do |config|
config.vm.define :main do |main_config|
main_config.vm.box = "liip-squeeze64"
main_config.vm.box_url = "http://vagrantbox-public.liip.ch/liip-squeeze64.box"
main_config.vm.network :hostonly, "192.168.22.22"
main_config.vm.share_folder "v-root", "/vagrant", ".", :nfs => !Kernel.is_windows

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kernel.is_windows is not necessary i would only use :
main_config.vm.share_folder "v-root", "/vagrant", ".", :nfs => (RUBY_PLATFORM =~ /linux/ or RUBY_PLATFORM =~ /darwin/)

main_config.vm.provision :puppet, :module_path => "vagrant/puppet/modules" do |puppet|
puppet.manifests_path = "vagrant/puppet/manifests"
puppet.manifest_file = "main.pp"
end
end
end

214 changes: 214 additions & 0 deletions vagrant/puppet/manifests/main.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
include apt_update
include php5

# If you want PHP 5.4 uncomment the following line, and comment out the php53debian line
# then run "vagrant provision" and you should have php 5.4

#include php54dotdeb
include php53debian

include otherstuff
include apache
include groups
include composer
include symfony

# If you want the mysql package and server, uncomment the following line
# then run "vagrant provision"
# The database is named `symfony`, the user is `symfony` and the password `Shub9aiJ`

#include mysql


class apt_update {
exec { "aptGetUpdate":
command => "apt-get update",
path => ["/bin", "/usr/bin"]
}
}

class apache {
package { "apache2-mpm-prefork":
ensure => latest,
require => Exec["aptGetUpdate"]
}

package { "libapache2-mod-php5":
ensure => latest,
require => Package["apache2-mpm-prefork"],
notify => Service["apache2"],
}

service { "apache2":
ensure => running,
require => Package["apache2-mpm-prefork"],
subscribe => File["main-vhost.conf", "httpd.conf", "mod_rewrite"]
}

file { "main-vhost.conf":
path => '/etc/apache2/conf.d/main-vhost.conf',
ensure => file,
content => template('default/main-vhost.conf'),
require => Package["apache2-mpm-prefork"]
}

file { "httpd.conf":
path => "/etc/apache2/httpd.conf",
ensure => file,
content => template('default/httpd.conf'),
require => Package["apache2-mpm-prefork"]
}

file { "mod_rewrite":
path => "/etc/apache2/mods-enabled/rewrite.load",
ensure => "link",
target => "/etc/apache2/mods-available/rewrite.load",
require => Package["apache2-mpm-prefork"]
}
}

class php5 {

package { "php5-cli":
ensure => latest,
require => Exec["aptGetUpdate"],
}

package { ["php5-xdebug", "php5-intl", "php5-sqlite"]:
ensure => latest,
require => Package["libapache2-mod-php5"],
notify => Service["apache2"]
}

package { "php5-suhosin":
ensure => purged,
notify => Service["apache2"]
}

file { "php-timezone.ini":
path => "/etc/php5/cli/conf.d/30-timezone.ini",
ensure => file,
content => template('default/php-timezone.ini'),
require => Package["php5-cli"]
}
}

class php54dotdeb {
file { "dotdeb.list":
path => "/etc/apt/sources.list.d/dotdeb.list",
ensure => file,
owner => "root",
group => "root",
content => "deb http://ftp.ch.debian.org/debian squeeze main contrib non-free\ndeb http://packages.dotdeb.org squeeze all\ndeb-src http://packages.dotdeb.org squeeze all\ndeb http://packages.dotdeb.org squeeze-php54 all\ndeb-src http://packages.dotdeb.org squeeze-php54 all",
notify => Exec["dotDebKeys"]
}

#there's a conflict when you upgrade from 5.3 to 5.4 in xdebug.ini.
# you don't need this, if you directly install 5.4
file { "xdebug.ini":
path => "/etc/php5/mods-available/xdebug.ini",
ensure => file,
owner => "root",
group => "root",
source => "/usr/share/php5/xdebug/xdebug.ini",
require => Package['php5-xdebug']
}

exec { "dotDebKeys":
command => "wget -q -O - http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -",
path => ["/bin", "/usr/bin"],
notify => Exec["aptGetUpdate"],
unless => "apt-key list | grep dotdeb"
}

package { ["php5-apc", "php5-xhprof"]:
ensure => latest,
require => Package["libapache2-mod-php5"],
notify => Service["apache2"],
}

package { ["phpapi-20090626", "php-apc"]:
ensure => purged,
}

}

class php53debian {
package { "php-apc":
ensure => latest,
require => Package["libapache2-mod-php5"]
}

file { "dotdeb.list":
path => "/etc/apt/sources.list.d/dotdeb.list",
ensure => absent,
notify => Exec["aptGetUpdate"],
}
}

class symfony {

exec { "vendorsInstall":
cwd => "/vagrant",
command => "php composer.phar install",
timeout => 1200,
path => ["/bin", "/usr/bin"],
creates => "/vagrant/vendor",
logoutput => true,
require => Exec["composerPhar"],
}
}

class composer {
exec { "composerPhar":
cwd => "/vagrant",
command => "curl -s http://getcomposer.org/installer | php",
path => ["/bin", "/usr/bin"],
creates => "/vagrant/composer.phar",
require => Package["php5-cli", "curl", "git"],
}
}

class groups {
group { "puppet":
ensure => present,
}
}

class otherstuff {
package { ["git", "curl", "nfs-common"]:
ensure => latest,
}
}

class mysql {
service { "mysql":
ensure => running,
require => Package["mysql-server"],
}

mysqldb { "symfony":
user => "symfony",
password => "Shub9aiJ"
}

package { ["mysql-client", "mysql-server"]:
ensure => latest,
}

package { ["php5-mysql"]:
ensure => latest,
require => Package["libapache2-mod-php5", "mysql-client"],
notify => Service["apache2"],
}

}

define mysqldb( $user, $password ) {
exec { "create-${name}-db":
unless => "/usr/bin/mysql -u${user} -p${password} ${name}",
command => "/usr/bin/mysql -uroot -p$mysql_password -e \"CREATE DATABASE ${name}; GRANT ALL ON ${name}.* TO ${user}@localhost IDENTIFIED BY '$password'; GRANT ALL ON ${name}.* TO ${user}@'%' IDENTIFIED BY '$password'; GRANT ALL ON ${name}.* TO root@'%'; FLUSH PRIVILEGES;\"",
require => Service["mysql"],
}
}

4 changes: 4 additions & 0 deletions vagrant/puppet/modules/default/templates/httpd.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
User vagrant
Group vagrant

EnableSendfile off
9 changes: 9 additions & 0 deletions vagrant/puppet/modules/default/templates/main-vhost.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<VirtualHost *:80>

ServerAdmin [email protected]
DocumentRoot /vagrant/web
ErrorLog /var/log/apache2/symfony-error_log
CustomLog /var/log/apache2/symfony-access_log combined
RewriteEngine On

</VirtualHost>
1 change: 1 addition & 0 deletions vagrant/puppet/modules/default/templates/php-timezone.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
date.timezone = UTC
1 change: 1 addition & 0 deletions web/app_dev.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], array(
'127.0.0.1',
'192.168.22.1',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could this be an ip like 10.0.0.1 or something simpler too?

'::1',
))
) {
Expand Down