Tag Info

Hot answers tagged

52

I have tested this at home (~ 3 hosts) for some time now, trying different scms (RCS, Subversion, git). The setup that works perfectly for me right now is git with the setgitperms hook. Things you need to consider: Handling of file permissions and ownership RCS: does this natively Subversion: last I tried, you needed a wrapper around svn to do this git: ...


28

I've done it informally with git, but there's also the etckeeper project which is a more completist and detailed implementation.


23

Another option is to use an automated server configuration tool like Puppet or Cfengine to script your server configurations in a declarative language. It's extra work on the front-end, but using a utility like Puppet allows you to automatically rebuild and configure a server with very little human intervention.


20

If you are using apache: <Directory ~ "\.svn"> Order allow,deny Deny from all </Directory> That will block people from accessing .svn directories remotely (using the browser) but you can keep then (and svn capabilities) on the project. BTW you can substitute \.svn for \.git or \.cvs if you are using something different than ...


14

Disclaimer: I am one of the developers of Puppet. The obvious way is to just apply the concepts: define a cycle of development/test/production, and push changes through them. Use version control to track systems. In short order, starting down that path leads to discovering that you really want tools that automate those things - essentially, that you want ...


14

Short answer is "OS deployment management", "Configuration Management" and "Software Packaging". Long answer follows. I'd like to add to Daniel Pittman's reply with a breakdown of what forms a "system" in systems administration. A system or an environment is going to comprise of: Servers Operating System Configuration Vendor packages; and Local packages ...


14

I've got etckeeper on my personal workstation, but I've not had to do much with it yet (other than have it track all my changes). Seems like it does a reasonable job of making sure you at least know what's been fiddled with. I wouldn't write off Puppet as a solution -- as long as some of the services on the machine are your responsibility to maintain, then ...


11

You can read about it in exorbitant detail in the HTTP specification, but here's the gist: when the browser needs to request a file, it first checks its local cache. There are three main possibilities: The browser has a local (cached) version of the file that is marked as expiring as a certain time, and that time is in the future. In this case, the browser ...


10

I have been experimenting with etckeeper which seems to work pretty well. I doesn't require a centralized server, which may be important in some situations. You can use several different DVCS backends, so you can choose the one you are most familiar with. It seems to work very well for me, but I haven't tried getting the other techs where I work to start ...


10

It's helpful to have everything versioned, even for designers. And if implemented well with good training, I think they'll find it more helpful than burdensome. If you're just starting out, I'd strongly suggest using a distributed version control system like git or mercurial. This is the general trend in the world, and there are a lot of advantages. It's ...


8

Offsite is good, but if it's pushed via network then it's not enough. Imagine someone breaking into your main server, which contains credentials to your off-site backup server. Ta-da, all your data - including backups - is on the mercy of the cracker. Physical backups on DVDs stored off-site is way safer than any of these cloud hacks, IMHO. Possibly you ...


7

My answer to that question would always be: ask the users, in your case the developers. IT systems do not have an intrinsic value of their own, they always fulfill a role within the context of the business they are used in. Therefore the better you can make them do what is needed in that context, the better for the business. Some more specific answers: ...


6

The canonical answer to this is: Use what you are familiar with. Since you are not familiar with either, it's a really close call. So here is a semi-philosophical argument: Debian is an original community distribution. Do you value a direct feedback channel and the possibility to shape the future of what you use? CentOS is a community distribution based ...


6

http://mercurial.selenic.com/wiki/CGIinstall says under "Setup a cgi script to refer to your repository" Copy the hgweb.cgi script from the mercurial sources to /var/www/cgi-hg/index.cgi So it appears you need to download the source version to get that file.


6

You may want to look at Tripwire or AIDE Both will track config file changes on your machines.


6

I have been looking into Chef lately. Not only does it keep templatable (.erb) configs in version control, but allows you to perform actions (like restarting a service after you uploaded the configs to the node). Chef helps with package management so you can verify dependencies with any node you interface with (i.e. has to have sudo package installed). ...


6

If you're on a Linux/UNIX commandline: svn status | grep '\?' | awk '{print $2;}' | xargs svn add


6

You'll find that they are very much of a muchness when it comes to binary files. The mutterings you have heard are most likely originating from the notion that version controlling binaries is a little bit at odds with the power of version control. Binary files can't be diffed or merged, so they are treated as dumb copies. The whole file is replaced on every ...


6

VisualSVN Server allows you to manage svn repository permissions using AD users and groups. And the standard edition is free and meets most organization's needs.


6

It depends on how you have your server configured to serve content. If over ssh: git clone user@192.168.100.18:repo/repository.git or if a webserver is providing the content (http or https) https://user@192.168.100.18/repo/repository.git or if available via a file path: git clone file://path/to/repo or if the server is running the git daemon: ...


5

Don't reinvent the wheel. The tools exist to do what you need. You may want to look at bcfg2, especially since you seem to be particularly focused on configuration files. Think about services, too. Where does the central repository need to be in relation to the production server? Maybe an intermediate option could be carful modification of the output of the ...


5

I am assuming you are using one of the mayor distributions If I needed to do the same as you I would use git for everything related to config files (/etc, /usr/local/etc, etc) I would avoid to version bin files unless you are compiling your own packages. And I would use the native package manager of each distribution to replicate the installation of the ...


5

This situation is fairly well documented. Check out the "Collaborating with other people" section of the very useful HG Book. In short, you can configure ssh access to the Mercurial repository, and limit access to specific users. Some more reference guides: Multiple Committers Guide TortoiseHg


5

The two classic web-based project management system with VCS integration and issue tracking are: Redmine (based on Ruby) Trac


4

you should change apache configuration so that it denies acess to .svn folder. this thread has more info http://stackoverflow.com/questions/398008/deny-access-to-svn-folders-on-apache


4

From the hgrc manpage, put the following in your configuration file: [web] allow_archive = bz2, gz, zip


4

Output to stderr from your script should be marhsalled back to the client. If you have control over the output yourself, consider appending >&2 to the relevant echoes ref: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.reposhooks.post-commit This will get the output as far as the svn client libraries, but I'm not sure that every client ...


4

Not really. There are a lot of continually changing files under directories like /var/log that are not suited to using a version control tool. Also, files under /dev and /proc are not regular files and can't really be versioned in the way a VC tool would expect them too. Backup software is a much better fit for what you're after, probably something like: ...


4

I've looked at etckeeper, but I haven't used it. However, I have used Changetrack. I've been using it on all of my home machines for many years, and at my previous job it was part of our standard server install. We used it there for the last five years, and had it installed on about 200 boxes. The setup is trivial (I created an RPM for it at my last ...



Only top voted, non community-wiki answers of a minimum length are eligible