Skip to content

Added Vagrant configuration cookbook #2760

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3,213 commits into from

Conversation

wcluijt
Copy link

@wcluijt wcluijt commented Jun 23, 2013

Q A
Doc fix? no
New docs? yes
Applies to all
Fixed tickets n/a

A new cookbook article was added with an example Vagrant configuration that can be used with the Symfony Standard Edition.

@hacfi
Copy link
Contributor

hacfi commented Jun 23, 2013

Great @wcluijt ..thanks a lot!


$ mkdir vagrant
$ mkdir vagrant/puppet
$ mkdir vagrant/puppet/manifests
Copy link
Contributor

Choose a reason for hiding this comment

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

You can compress all 3 lines into mkdir -p vagrant/puppet/manifests

Copy link
Member

Choose a reason for hiding this comment

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

that doesn't work (at least, not on Windows)

Copy link
Contributor

Choose a reason for hiding this comment

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

You're right, mkdir on windows natively supports recursive creation.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/mkdir.mspx?mfr=true

@wouterj
Copy link
Member

wouterj commented Jun 23, 2013

Thank you for creating this article. I have no knowledge about vargant and this article looks a bit 'dummy copy past'. I prefer to have create guides in the symfony docs which really explains what the code means, does and why we need it. Is it possible to transform this article in such way?

@wouterj
Copy link
Member

wouterj commented Jun 23, 2013

You should also include a link to this article in components/map.rst.inc


$ vagrant up

A virtual machine is now being prepared in Virtualbox by Vagrant. This process
Copy link
Member

Choose a reason for hiding this comment

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

VirtualBox

@wcluijt
Copy link
Author

wcluijt commented Jun 24, 2013

@wouterj Yeah, I think the main intent of the article I had was something like "copy/paste, run these commands exactly, get something cool." :)

One thing I didn't really want to do was to get so much into the explanation of the third-party systems involved that it overshadowed the main task of creating files and executing some commands. But, more explanation can't hurt.

What kinds of questions initially came up for you when reading this? Maybe I can focus on answering those.

Also, you meant the cookbook/map.rst.inc file, right?

"fqdn" => "symfony.local",
"host_ipaddress" => "192.168.33.1",
}
end
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it intended that this ip address is different from the one above?

Copy link
Author

Choose a reason for hiding this comment

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

Great question. I don't think I was able to determine this information from the Vagrant docs (http://docs.vagrantup.com/v2/networking/private_network.html). I believe I had to run ifconfig in the virtual machine or possibly look at phpinfo() in the browser. But, the IP address of the host (your physical machine) should be based on the :private_network, ip: value with the last number being 1. So if the private IP address was set to 192.168.33.22, the host IP address should still be 192.168.33.1. As this bit of info seems important, I'll try to incorporate it.

Copy link
Contributor

Choose a reason for hiding this comment

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

Going through the setup of vagrant, I think a section talking about ip addresses and why they're set the way they are would be helpful. I'm already on a network that has 192.168.33.0/24 routed elsewhere, and I wasnt sure if the choices in this document were because of the precise32.box being used, vagrants set up, if i could change them or not and what kind of values I should be using.

@maxromanovsky
Copy link
Contributor

@wcluijt Could you also include improvements from my comments to symfony/symfony-standard#537?

@weaverryan
Copy link
Member

Hi guys!

I need to run through this entry, make sure it works, and add any necessary notes.

But before I do, have we thought about pointing people to https://puphpet.com/quickstart/symfony and collaborating and improving the options there instead of having this doc? Or alternatively, point to that link then explain some extra or advanced notes in this doc?

What do you guys think?

@wcluijt
Copy link
Author

wcluijt commented Sep 18, 2013

@weaverryan When I initially created this document, I don't think that particular PuPHPet page existed yet. So including a link to it sounds great to me! And they should be able to handle all kinds of cases, such as @maxromanovsky's comment about Apache EnableSendFile symfony/symfony-standard#537 (comment) which appears to be handled in PuPHPet already.

@cordoval
Copy link
Contributor

cordoval commented Jan 4, 2014

guys it has been 4 months already and https://puphpet.com/quickstart/symfony is a 404 now

and i see no signs of website repo here https://github.com/puphpet and no wonders, i think we should keep this PR because it easies integration with symfony, just adapt it to help the generic PHP docu.

I have always rejected vagrant even when using it, but I am willing to run down and test it by hand if it is the case. And maybe add a blog post on craftitonline.com about my experience :P if it is good now

other than that good job @wcluijt , keep pushing it

@wouterj
Copy link
Member

wouterj commented May 20, 2014

Indeed, the puPHPet page is gone. What's the status of this @wcluijt @weaverryan, can it be merged? Do you want more opinions of Vagrant experts? ...?

@wcluijt
Copy link
Author

wcluijt commented May 25, 2014

I went over the configuration again and pushed some new changes. The changes relate to the Apache and MySQL Puppet modules changing their syntax since I last checked some time ago. Other than that, I think it can be merged.

@wouterj
Copy link
Member

wouterj commented May 25, 2014

Great, thanks for your work on this @wcluijt !

@weaverryan
Copy link
Member

Hi guys!

Sorry for the delay, I've been thinking about this. I do think this is a good entry. But, why not actually create a repository (or adopt an existing repository) that actually contains all of this setup completely done? We could then include all kinds of information inside that repo's README for how to configure X or do Y. This entry could then basically point you to that repository. This would allow us to create a much much better user experience (imagine setting all of this stuff up manually) and would allow the community to add more features/options to that setup to make it better and better.

Thoughts? Are there clear existing leaders that would be good to recommend?

@wouterj
Copy link
Member

wouterj commented Aug 15, 2014

ping vagrant experts?

@mtotheikle
Copy link

This is a great PR and something that can help beginners a lot.

A little history about my experience with Vagrant and puppet. This is a little off topic and is more in response to @wouterj and @weaverryan to give some insight into experiences that I've had with Vagrant.

My team was using puphpet for sometime up until recently when I came across http://laravel.com/docs/homestead. While I thought puphpet and puppet in general was great, it really over complicated things as I look back. Puppet in generally is great for machine provisioning, but you can do things a lot easier without it.

For one, it introduces a new syntax that many people are not used to. Another obstacle with it is the learning curve it comes with in general. I thought this could easily be handled, but as time would show this was not the case. Getting new developers into the puppet files to have new things installed often encountered challenges and a lot of digging around for what puppet modules and syntax to actually use.

To add to the complexity of puppet, I stumbled across puphpet which I thought was a great tool to use; however as time would tell again we had problems with that as well. It was great to use the web interface to add things or reconfigure the box, but it often had BC problems as the project currently has no tags. You can imagine the problems that come with little BC support in larger teams. You can also take a look at some recent issues for experiences that people are having with that; hopefully this gets better over time. I will say that I'm sure there are ways to get around this, but I'm going for simplicity and I had too many team members having problems with puppet which was not needed.

As I said above, I recently stumbled across the Homestead project and I think this is a good example of how this article should be tailored.

Few things I like about it are:

  • It uses shell provisioning which makes it extremely easy for people to get into the project and customize it how they need.
  • It manages vhosts with simple shell scripts such as https://github.com/laravel/homestead/blob/master/scripts/serve.sh.
  • The amount of time it takes for that project to launch and provision the VM is less than 5 minutes in most cases where as using an image from puphpet took much longer.

Overall, I think this is a great start and something that should be added to the docs ASAP, however I would challenge people involved with this to take a look at Homestead. I've got a version working with apache that also supports ssl and is running multiple Symfony2 based projects right now. If people are interested I can publish this version.

I'm curious to hear what others have to share and going on what @weaverryan said in his latest comment, I think we should follow an approach similar to Homestead and add articles on how to customize it more. There is no need to re-invent the wheel and I feel Homestead has made it extremely easy to get Vagrant running and PHP project running inside of it. Granted I'm not saying puppet is bad, but I am more for getting people started with shell based provisioning as it's easy for most to see whats going on at first and customize without digging through many docs IMO. Now on the flip side, the Homestead project does not create any databases for you with provisioning but it's makes it very easy to connect the the DB in the VM so you can do what you need which in general I think is a better approach unless your using it for very specific projects such as what Sylius has done.

This PR was merged into the 2.3 branch.

Discussion
----------

Improved and fixed twig reference

| Q   | A
| --- | ---
| Doc fix? | yes
| New docs? | yes
| Applies to | 2.3+
| Ficket tickets | symfony#4301

Removed the ugly looking tables and added some more details.

Commits
-------

ad6b084 Improved and fixed twig reference
weaverryan and others added 16 commits December 20, 2014 15:59
… (Lumbendil)

This PR was merged into the 2.3 branch.

Discussion
----------

GetResponse*Events stop after a response was set

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | no
| Applies to    | All versions
| Fixed tickets | symfony#4516

The kernel.view and kernel.exception events stop propagation when a response is set, and it wasn't noted on the documentation.

Commits
-------

bebce0e Fix incorrect event name.
e729750 Changed phrasing to explain the effects off propagation stopping.
d13943a Add missing info about kernel.request event.
25e1069 Added notes specifying the propagation behaviour for kernel.view and kernel.exception.
This PR was merged into the 2.3 branch.

Discussion
----------

Normalization of method listings

| Q             | A
| ------------- | ---
| Doc fix?      | no
| New docs?     | no
| Applies to    | all
| Fixed tickets | fixes symfony#3903

Commits
-------

3fd3963 Changed to definition lists from Book section
dda1905 Changed to definition lists
3649bdb Fixed heading capitalization to follow the standards
6b68e48 Changed paragraph to heading
1d571ca Changed unordered list to definition list
… Symfony Installer (javiereguiluz)

This PR was merged into the 2.3 branch.

Discussion
----------

Updated installation instructions to use the new Symfony Installer

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | yes
| Applies to    | all
| Fixed tickets | -

Commits
-------

f58db71 Fixed section headers
4b8e805 Restored the original section title
b69a5cd Updated installation instructions to use the new Symfony Installer
…ony#4608

The vendors was removed because we really need to keep this focused on svn
and not repeat ourselves and create duplicate docs
This PR was merged into the 2.3 branch.

Discussion
----------

Removing some installation instructions

| Q             | A
| ------------- | ---
| Doc fix?      | no
| New docs?     | no
| Applies to    | all
| Fixed tickets | n/a

Hi guys!

This removes some duplicate installation instructions. I want less docs, without explaining less :). Duplicate like this is an opportunity to give users more paths for no reason. I'm sure we have more things like this - like details on handling parameters.yml or other things.

Thanks!

Commits
-------

3395b50 Re-wording parameters.yml section and removing note about vendor symfony#4608
9d925ff [symfony#4608] Using #. for numbered bullets
78e08f4 Removing some installation instructions
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes symfony#4640).

Discussion
----------

[Book] link to the API documentation

| Q             | A
| ------------- | ---
| Doc fix?      | no
| New docs?     | no
| Applies to    | all
| Fixed tickets |

Commits
-------

fae8c40 link to the API documentation
Edited organize to organization.
This PR was submitted for the 2.6 branch but it was merged into the 2.3 branch instead (closes symfony#4648).

Discussion
----------

Update forms.rst

Edited organize to organization.

Commits
-------

117cb78 Update forms.rst
…ing Symfony (javiereguiluz)

This PR was merged into the 2.3 branch.

Discussion
----------

Rewritten from scratch the chapter about installing Symfony

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | yes
| Applies to    | all
| Fixed tickets | symfony#4122, symfony#4089

Commits
-------

7de83a3 Replaced a "note" by a "seealso"
b45c338 Imrpoved the wording of the note about using using legacy PHP 5.3 version
40d7772 Reworded the reasons why you should use Composer-based installation
2e72138 Wrapped a line to follow doc standards
7e9cd04 Display the same version number on Linux and Windows to avoid confusions
12c2557 Add an explicit command to better explain that we recommend to move symfony.phar to projects directory
12eb76e Reworded a confusing phrase
b665d86 Added a note about verifying Symfony digital signatures
8f202c6 Re-added a wrongly deleted link reference
c291a73 Rewritten from scratch the chapter about installing Symfony
@wcluijt wcluijt force-pushed the vagrant_configuration branch from 5f96f15 to 2d0d7bb Compare December 21, 2014 20:52
@wcluijt wcluijt force-pushed the vagrant_configuration branch from 2d0d7bb to b3bea15 Compare December 21, 2014 21:10
@wcluijt
Copy link
Author

wcluijt commented Dec 21, 2014

I rebased to the 2.3 branch. I also created a new pull request: #4676

@weaverryan
Copy link
Member

Thanks @wcluijt - I'm closing this in favor of #4676

@weaverryan weaverryan closed this Dec 22, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.