Version controlling for operating system configurations

No Thumbnail Available
Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
Uva Wellassa University of Sri Lanka
Abstract
When developing software, the use of a version controlling system is considered a good practice among software developers. Advantages of using a distributed version controlling system include automatic backups, ability to verify content authenticity, the ability to control versions and branching. It also benefits the programmer by enco uraging them to focus on one task at a time. When used properly, a version controlled system provides a very detailed history of when and why something changed. This can be extremely useful when a new user tries to understand an existing system. Meanwhile, operating system configurations are mostly managed by a single user according to requirements and their own preferences. This goal of this study is to apply distributed version controlling technology to manage changes made to server configurations in order to make them more maintainable. Methodology In order to test whether software versioning software can be used as is for versioning system states, a distributed version controlling system is used to perform all basic version controlling operations on system configurations. Version controlling operations tests by this study includes: 1. 2. 3. 4. Store system state by creating commit points Restore system to a previous state by reverting to any commit point Creating branches to store different system states Applying changes by merging branches In order to prove compatibility, no changes are made to the version controlling software when used. Therefore, it must be possible to perform all system versioning operations without using any third party software other than a version controlling software. The system repository is also tested for compatibility with services built around version controlling systems such as repository hosting services such as Github and Continuous Integration services. The following information are expected to be stored and changed successfully by the system when performing versioning operations: 1. 2. Software installed on a system and their versions System wide configurations for installed services When implementing, Ubuntu Server 14.04 is used as the target operating system for this study. Git is used as the distributed version controlling system. It is assured that no Git incompatible changes are made to the repository and the system is kept stable at all stages. Therefore it can be used with repository hosting services such as Github A Git repository which can be placed anywhere on the system is used to track files inside the /etc directory. Git is configured to use these paths using environment variables. Therefore, the repository can be used with any Git client with proper settings. For this test, a repository is made at the root directory and properly configured to make sure it does not disturb other operating system functions. Git-hooks play a major role for integration because it allows commands to be run when performing version controlling tasks. This allows for performing necessary tasks on the system when a change is made by Git commands.
Description
Keywords
Operating system, System, Science and Technology, Computer Science, Information Technology
Citation