| 247 | |
| 248 | = Version control = |
| 249 | |
| 250 | At the moment, installing our deployment scripts relies on the target system having ssh access to our svn repository in order to checkout the current version of the scripts. |
| 251 | |
| 252 | Two problems with this. Firstly, we rely on using SSH agent forwarding to access the svn repository, which is a potential security issue. The second is that it is difficult to ensure that productions systems don't pick up experimental changes from svn. Although we could control the versioning using tags and branches in svn, it would be fragile and easy to make a mistake. |
| 253 | |
| 254 | A better solution would be to package our scripts as installable OS packages (rpm packages for Suse and RedHat, deb packages for Debian and Ubuntu). |
| 255 | That way the first step in the install process would be to add our own package repository to the OS package installer, and then we install specific versions of our packages using the native OS package install process to handle installation, dependencies and updates. |