About Safestore

Safestore was created to provide an easy, free, high performance way to configure reliable backups for almost any infrastructure.

Fully Compatible Operating Systems

  • Arista EOS/vEOS 4.18+
  • Red Hat Enterprise Linux 7
  • Fedora 26 - 28

Potential Operating Systems

  • Red Hat Enterprise Linux 6 (no packing, services, or cron)
  • Debian (no packaging)
  • Most anything systemd based

Installation

Requirements

  • Python: 2.6 - 2.7
  • rsync
  • MySQL Python Bindings (for database snapshots)

Red Hat Enterprise Linux

7


# Import the key
root@safestore-el7.io # rpm --import https://repo01.safestore.io/RPM-GPG-KEY-safestore

# Add the official repository
root@safestore-el7.io # curl https://repo01.safestore.io/safestore-el7.repo > /etc/yum.repos.d/safestore-el7.repo

# Install Safestore
root@safestore-el7.io # yum install safestore

# Use the man pages!
root@safestore-el7.io # man safestore 1 
root@safestore-el7.io # man safestore 5
root@safestore-el7.io # man safestore 8

# Optionally, seed (start) the backup
root@safestore-el7.io # systemctl start safestore-backup.service

# Once configured, enable and start the timer(s)
root@safestore-el7.io # systemctl enable safestore-backup.timer --now
                    

Fedora

26+


# Import the key
root@safestore-fc.io # curl https://repo01.safestore.io/RPM-GPG-KEY-safestore | rpm --import

# Add the official repository (fc##, fc is latest)
root@safestore-fc.io # rpm --import https://repo01.safestore.io/safestore-fc.repo

# Install Safestore
root@safestore-fc.io # dnf install safestore

# Use the man pages!
root@safestore-fc.io # man safestore 1 
root@safestore-fc.io # man safestore 5
root@safestore-fc.io # man safestore 8

# Optionally, seed (start) the backup
root@safestore-fc.io # systemctl start safestore-backup.service

# Once configured, enable and start the timer(s)
root@safestore-fc.io # systemctl enable safestore-backup.timer --now
                    

Arista EOS (and vEOS)


# Import the key
-bash-4.3# rpm --import https://repo01.safestore.io/RPM-GPG-KEY-safestore

# Add the official repository (eos4xx = 4.xx)
-bash-4.3# curl https://repo01.safestore.io/safestore-eos418.repo > /etc/yum.repos.d/safestore-eos418.repo

# Install Safestore
-bash-4.3# yum install safestore

# Move the safestore directory
-bash-4.3# mv /etc/safestore /mnt/flash/
-bash-4.3# chmod 600 /mnt/flash/safestore

# Use the man pages!
-bash-4.3# man safestore 1 
-bash-4.3# man safestore 5
-bash-4.3# man safestore 8

# Modify the service to grab the configuration from /flash/safestore 
-bash-4.3# cp /usr/lib/systemd/system/safestore-backup.{timer,service} /etc/systemd/system/
-bash-4.3# sed -i 's/ExecStart.*/ExecStart=\/usr\/bin\/safestore backup --config \/mnt\/flash\/safestore\/safestore.json/; s/WorkingDirectory.*//' /etc/systemd/system/safestore-backup.service
-bash-4.3# systemctl daemon-reload

# Optionally, seed (start) the backup
-bash-4.3# systemctl start safestore-backup.service

# Once configured, enable and start the timer
-bash-4.3# systemctl enable safestore-backup.timer
-bash-4.3# systemctl start safestore-backup.timer
                    

Note: 99% of Arista configurations can use the following for safestore.json:


{
    "backup" : {
        "/mnt/flash/" : {
            "destination" : "serverName@my.server.example::serverName/flash",
            "passFile" : "/mnt/flash/safestore/serverName.secret"
        } 
    }
}

Testing

Testing repositories are available, but disabled by default in the repofile. They can be enabled by running:


# This enables *ALL* repositories, so that we get both testing and final releases
root@safestore-fc27.io # sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/safestore-*.repo