I am trying to improve my development workflow but am running into some major roadblocks. Currently, we develop on local Windows machines running XAMPP then after tested on an individual machine, push the changes to our live server one by one via FTP. This (I know) is highly inefficient.
We use Mediatemple's Dedicate Virtual servers for our hosting services and I have recently been learning about he advantages of developing locally using virtual machines with provisioning services. This led me to learn about Vagrant and Chef. Getting vagrant up and running is easy enough but I am struggling to try and re-produce our live server given how they are provisioned (mainly because of the Plesk interface) and that I need to use specific versions of programs. For example, my server is running CentOS 5.9 the following:
Apache
- /usr/sbin/httpd -v
- Apache/ 2.2.22 (Unix)
PHP
- php -v
- PHP 5.3.5
NGINX (used as a front-end for apache to handle PHP files)
- /usr/sbin/nginx -v
- nginx/1.3.0
These are just a few of the items I am needing to create in a chef cookbook. I am using Hosted Chef however and cannot instructions on how to specify versions of the software I need to add to mimic my live server.
Has anybody had luck doing this? I'm not 100% tied to chef (could also use Puppet) but have heard recommendations on Chef over puppet primarily.
Thank you!
Yes, you can install specific versions of packages you want installed. The package resource has a special version attribute. You can read more about the package resource here: http://docs.opscode.com/resource_package.html
The code will look something like this: