thanks to anyone, with your advices finally I’ve finished preparations
and I’ve started cooking my server.
I described some basic stuff like web server configuration till now.
Now I have more questions. It’s main function is serving about two
dozens of sites we developed and currently supporting. Adding a new site
is multi-step process. Script I wrote adds an user, setups a repository,
creates a database, adds a config for webserver and log analysis system.
There is currently no way to remove the site and no central repository
where the current configuration is stored. Also, there is a separate
host used for backups, it makes commits through ssh on a regular basis
and fetches them from the server. It’s scripts need tweaking after
adding a new site too.
I feel all this chaos can be greatly reduced with Chef. I hope, at
least. But I’m not sure, how best to represent “the site” in terms of
chef. For me it looks like some kind of resource having it’s attributes
like domain name, ip, username, passwords(?). Is it feasible to write an
extension to Chef? I’ve read it’s quite easy.
But also site can be described in terms of operations needed to set it
up, like add this user, create this file, put that file there and so on.
This way I may use Chef as is, but such imperative descriptions give me
an uncomfortable feeling.
I’d like to hear some thoughts from the community regarding my situation
and pros and conses of various approaches possible.