Backup service » Historique » Version 1

Bruno STEVANT, 19/07/2018 14:17

1 1 Bruno STEVANT
h1. Configuration Backup and Versioning service
2 1 Bruno STEVANT
3 1 Bruno STEVANT
*Disclaimer* This service is for the moment dedicated for NOC managed servers and equipments. It could be extended to servers inside research platforms (but use it with care). This service is far from being production-ready.
4 1 Bruno STEVANT
5 1 Bruno STEVANT
h2. Storage solutions
6 1 Bruno STEVANT
7 1 Bruno STEVANT
All backups are saved in the additional disk storage of the [[Hermes]] server. A partition is dedicated for backup'd content ("Current usage":http://rsm.enstb.fr/graphs/graph_8.html).
8 1 Bruno STEVANT
9 1 Bruno STEVANT
Some configurations can also be stored inside the SVN versioning system provided by TB
10 1 Bruno STEVANT
 https://svn.telecom-bretagne.eu/repository/noc-rsm/
11 1 Bruno STEVANT
This repository is also accessible from the "redmine tools":/projects/srcd-disi-noc/repository/noc-rsm/entry/
12 1 Bruno STEVANT
13 1 Bruno STEVANT
h2. Backup of network equipments configuration (rancid)
14 1 Bruno STEVANT
15 1 Bruno STEVANT
Rancid is a tool to backup configuration of network equipments through the remote administration console (ie. does not work with web-only admin consoles). Based on a database of the network equipments, the rancid script connects to each console to backup the configuration.
16 1 Bruno STEVANT
17 1 Bruno STEVANT
h3. Current installation details
18 1 Bruno STEVANT
19 1 Bruno STEVANT
* Server: [[Hermes]]
20 1 Bruno STEVANT
* Process: rancid
21 1 Bruno STEVANT
* Launch from: rancid user crontab
22 1 Bruno STEVANT
** TODO: Backup this file ?
23 1 Bruno STEVANT
* Config file: (hermes)/usr/local/rancid/etc/rancid.conf
24 1 Bruno STEVANT
** TODO: Backup this file
25 1 Bruno STEVANT
* Equipments databases:
26 1 Bruno STEVANT
** "RSM-B25":/projects/srcd-disi-noc/repository/noc-rsm/entry/rancid/rsm-b25/router.db
27 1 Bruno STEVANT
** "Labo4g":/projects/srcd-disi-noc/repository/noc-rsm/entry/rancid/labo4g/router.db
28 1 Bruno STEVANT
29 1 Bruno STEVANT
Passwords are stored in the .cloginrc file in the rancid user homedir.
30 1 Bruno STEVANT
* TODO: Backup this file ?
31 1 Bruno STEVANT
32 1 Bruno STEVANT
h3. Versionning in the noc-rsm svn project
33 1 Bruno STEVANT
34 1 Bruno STEVANT
Rancid write the configurations in a "subdirectory":/projects/srcd-disi-noc/repository/noc-rsm/entry/rancid. The rancid process performs a commit after completion of the backup (parameters for the svn commit are in rancid.conf).
35 1 Bruno STEVANT
36 1 Bruno STEVANT
*Note* the automatic commit to the versioning system requires to hardcode credentials to authenticate with the HTTP SVN server of TB :(
37 1 Bruno STEVANT
* TODO: Fix this by switching to ssh ? 
38 1 Bruno STEVANT
** *Note* git can also be an alternative solution for this, but step one is to open a local service before going to production.
39 1 Bruno STEVANT
40 1 Bruno STEVANT
h2. Backup of servers configuration and content (saved)
41 1 Bruno STEVANT
42 1 Bruno STEVANT
Backup for Linux servers is done by a simple home-made script, named saved. This tool allow mirroring of servers configuration and content in a central storage.
43 1 Bruno STEVANT
44 1 Bruno STEVANT
First, this tool daily performs a local backup on the host by copying specified directories into one backup directory. A database backup can also be performed. Data are locally accessible through the directory /backup/{files,databases}.
45 1 Bruno STEVANT
46 1 Bruno STEVANT
Each local backup tree+db is then rsync'd from [[Hermes]] to a directory in its additional storage (/sauv/hosts/<host>/{files,databases}). Rsync is done through ssh, authenticated by public key.
47 1 Bruno STEVANT
48 1 Bruno STEVANT
h3. Current installation details
49 1 Bruno STEVANT
50 1 Bruno STEVANT
Local backup on hosts:
51 1 Bruno STEVANT
* Server: <host to backup>
52 1 Bruno STEVANT
* Process: sauv.daily
53 1 Bruno STEVANT
** "Source of the script":/projects/srcd-disi-noc/repository/noc-rsm/entry/tools/saved/local/sauv.daily
54 1 Bruno STEVANT
* Launch by: /etc/crontab
55 1 Bruno STEVANT
* Config file (example): source:tools/saved/local/a_sauvegarder
56 1 Bruno STEVANT
** One line per directory to be backup'd
57 1 Bruno STEVANT
58 1 Bruno STEVANT
Remote backup of hosts local backup:
59 1 Bruno STEVANT
* Server: [[Hermes]]
60 1 Bruno STEVANT
* Process: save
61 1 Bruno STEVANT
** "Source of the script":/projects/srcd-disi-noc/repository/noc-rsm/entry/tools/saved/remote/save
62 1 Bruno STEVANT
* Launch by: saved user crontab
63 1 Bruno STEVANT
* "Config file (example)":/projects/srcd-disi-noc/repository/noc-rsm/entry/tools/saved/remote/save.d/fqdn.host.sauv
64 1 Bruno STEVANT
** One line per directory to be backup'd
65 1 Bruno STEVANT
** Filename needs to be the host FQDN
66 1 Bruno STEVANT
67 1 Bruno STEVANT
*Note*: To rsync to the targeted host, the public key of the saved user needs to be authorized by a local saved user on the host. Be sure to verify that the Hermes saved user can log directly without password to the host.
68 1 Bruno STEVANT
69 1 Bruno STEVANT
h3. Versionning in the noc-rsm svn project
70 1 Bruno STEVANT
71 1 Bruno STEVANT
Some part of the backup trees available on hermes in /sauv/hosts/ can be part of the noc-rsm subversion directory. This allow each modification of backup'd content to be journalized.
72 1 Bruno STEVANT
73 1 Bruno STEVANT
How to enable versioning of a part of the backup tree:
74 1 Bruno STEVANT
* Create and commit an empty directory into the noc-rsm repository.
75 1 Bruno STEVANT
* Checkout this directory in the backup tree at the targeted directory. 
76 1 Bruno STEVANT
* Add all files and sub-directory then commit.
77 1 Bruno STEVANT
* The remote backup script will commit automatically after rsync (provided the svn authentication works) (test of the presence of a .ssh directory)
78 1 Bruno STEVANT
79 1 Bruno STEVANT
Example: source:/projects/srcd-disi-noc/repository/noc-rsm/entry/config/rhada.ipv6.enstb.fr