Задача: Хочу разобрать средство, посредством которого я смогу выполнять резервное копирование конфигурационных файлов сетевого оборудования Cisco.

Все было хорошо в компании до тех пор, пока не пришел самый умный начальник, который забраковал все наши Mikrotik и как они настроены, слушать ничего не хотел и выбил деньги правда на б/у шные Cisco. Купили, я их настроил, теперь пора выбора средства, через которое снимать резервную копию. Правда этого начальника уволили потом, больше балабол чем практик.

Для цели резервного копирования у меня есть скрипт на связке bash + expect, вот только он порой работает, а порой в назначенное время на консоль не передаются строки, которые отслеживаются и вместо нужных команд отправляются другие. Такое было пару раз, но из-за этого я не могу оставить сервис и приходится самим следить.

В следствии этого поиск вывел меня на утилиту rConfig, правда адаптированную под CentOS + Web интерфейс. И вот ради этого придется вспомнить, как работать с CentOS.

Все ниже указанное отрабатываю под виртуализацией Debian 10 + Proxmox 6.4-13 и виртуальной машиной CentOS 7 (CentOS-7-x86_64-Minimal-2009.iso)

Под виртуальную машину у меня выделено:

  • RAM = 4Gb
  • CPU = 1 sockets, 2 cores
  • HDD = 50Gb

Системные требования под сервис rConfig опубликованные на официальном сайте:

Minimum Requirements

  • Centos 7+
  • PHP 7+
  • MySQL 5.6+
  • Apache 2.4+
  • Browser IE7+, Firefox3.5+, Chrome11+, Safari3+, Opera 9.4+

Шаг №1: Подключаюсь по SSH к Ubuntu 22.04 Server к системе с CentOS 7:

root@ekzorchik:~# ssh -l ekzorchik 172.35.35.3
ekzorchik@172.35.35.3's password:
Last login: Wed Oct 12 10:02:53 2022 from 10.8.0.1
[ekzorchik@localhost ~]$

Шаг №2: Обновляю информацию по установленным пакетам:

[ekzorchik@localhost ~]$ sudo yum clean
Loaded plugins: fastestmirror, priorities
Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
[ekzorchik@localhost ~]$ sudo yum update -y
[ekzorchik@localhost ~]$ uname -a && cat /etc/os-release
Linux localhost.localdomain 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[ekzorchik@localhost ~]$

Шаг №3: Скачиваю инсталляционный скрипт установки:

-A, --user-agent <name> Send User-Agent <name> to server

[ekzorchik@localhost ~]$ curl -O https://www.rconfig.com/downloads/scripts/install_rConfig.sh -A "Mozilla"

[ekzorchik@localhost ~]$ chmod +x install_rConfig.sh

[ekzorchik@localhost ~]$ sudo ./install_rConfig.sh

Checking CentOS version...

##########################(100%)

Launching CentOS 7 installation script...

Status: Launching CentOS 7 installation script...

Starting rConfig installation...

Testing internet connectivity...

##########################(100%)

You are Online!

Installing wget...

##########################(100%)

Status: wget is installed!

Now installing the login script...

##########################(100%)

Status: Login Script installed

Updating SELINUX File...

##########################(100%)

Status: SELINUX Updated

Updating Sudoers File...

##########################(100%)

Status: Sudoers Updated

Disabling Firewall...

##########################(100%)

Status: Firewall (firewalld) Disabled

Installing Repos...

##########################(100%)

Status: Repos installed installed...

Installing required packages... This will take a few moments....

All settings correct for using Composer

Downloading...

Composer (version 2.4.2) successfully installed to: /home/composer.phar

Use it: php composer.phar

./centos7_install.sh: line 223: composer: command not found

##########################(100%)

Status: Required packages installed...

Starting required services...

##########################(100%)

Status: Required services started...

Checking for PHP...

##########################(100%)

Status: PHP 7.2.34 is installed!

Checking for Apache...

##########################(100%)

Status:  Apache/2.4.6 (CentOS) is installed!

Checking for MYSQL...

##########################(100%)

Status: MySQL 5.6.51 is installed!

Setting up VSFTPD...

##########################(100%)

Do you want to allow Root access to FTP... (y/n)? нажимаю клавишу "y"

Status: VSFTPD is configured!

Configure NTP...

Do you want to enter your own NTP Server (default is time.nist.gov)?  (y/n)? нажимаю клавишу “y”

Please enter NTP Server Name or IP:172.35.35.100 (это мой NTP сервис который развернут на Mikrotik (см заметку "Сервер времени через Mikrotik в домашней сети")

172.35.35.100

##########################(100%)

Status: NTP Service is configured!

Getting Post-Reboot Script...

##########################(100%)

Status: Post-Reboot file retrieved!

rConfig system installation is almost complete...

Your final task will be to setup MySQL.

Once the MySQL Setup wizard is complete, Please REBOOT your server and then run the post installation script /home/centos7_postReboot.sh

The MySQL setup wizard will now launch

..............................................

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current

password for the root user.  If you've just installed MySQL, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

Enter current password for root (enter for none): нажимаю клавишу ENTER

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL

root user without the proper authorisation.

Set root password? [Y/n] нажимаю клавишу "y"

New password: указываю пароль 712mbddr@

Re-enter new password: повторяю пароль 712mbddr@

Password updated successfully!

Reloading privilege tables..

... Success!

By default, a MySQL installation has an anonymous user, allowing anyone

to log into MySQL without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] нажимаю клавишу "y"

... Success!

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] нажимаю клавишу "y"

... Success!

By default, MySQL comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] нажимаю клавишу "y"

- Dropping test database...

ERROR 1008 (HY000) at line 1: Can't drop database 'test'; database doesn't exist

... Failed!  Not critical, keep moving...

- Removing privileges on test database...

... Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] нажимаю клавишу "y"

... Success!

All done!  If you've completed all of the above steps, your MySQL

installation should now be secure.

Thanks for using MySQL!

Cleaning up...

<<<< End - Checking CentOS version... >>>>

[ekzorchik@localhost ~]$

Шаг №4: После установки предыдущем шагом следует отправить систему в перезагрузку:

[ekzorchik@localhost ~]$ sudo reboot

Шаг №5: После того как система загрузится следует выполнить скрипт из домашнего каталога centos7_postReboot.sh:

[ekzorchik@localhost home]$ ls -l
total 116
-rwxr-xr-x  1 root      root      17565 Oct 12 10:14 centos7_install.sh
-rwxr-xr-x  1 root      root       5493 Oct 12 10:20 centos7_postReboot.sh
drwx------. 3 ekzorchik ekzorchik   140 Oct 12 10:14 ekzorchik
-rw-r--r--  1 root      root      88299 Oct 12 10:21 install.log
[ekzorchik@localhost home]$ sudo ./centos7_postReboot.sh
[sudo] password for ekzorchik:
Starting rConfig post-reboot script...
Downloading and unzipping latest rConfig release...
##########################(100%)
Latest version of rConfig has been downloaded and unzipped...
Status: rConfig has been downloaded and unzipped

Updating php.ini...
##########################(100%)
php.ini has been updated...
Status: php.ini has been updated

Updating Home Directory for SELiunx security...
##########################(100%)
/home directory permissions have been set...
Status: SELINUX Updated


                                   _____              __ _
                                  /  __ \            / _(_)
                              _ __| /  \/ ___  _ __ | |_ _  __ _
                             |  __| |    / _ \|  _ \|  _| |/ _  |
                             | |  | \__/\ (_) | | | | | | | (_| |
                             |_|   \____/\___/|_| |_|_| |_|\__, |
                                                            __/ |
                                                           |___/



        ###############################################################################
        #
        # Congratulations!!! rConfig system build is complete.
        # Go to https://localhost.localdomain/install to complete installation
        #
        # Please visit www.rconfig.com for latest info, releases
        # donations, and blogs
        #
        # Enjoy this wonderful software - rConfig Team
        #
        ###############################################################################

Шаг №6: Создаем для сервиса rConfig базу данных, пользователя и пароль:

[ekzorchik@localhost home]$ sudo mysql -u root -p712mbddr@ -e "create database db_rconfig"
Warning: Using a password on the command line interface can be insecure.
[ekzorchik@localhost home]$ sudo mysql -u root -p712mbddr@ -e "grant all on *.* to 'us_rconfig'@'localhost' identified by '612mbddr@'"
Warning: Using a password on the command line interface can be insecure.
[ekzorchik@localhost home]$ sudo mysql -u root -p712mbddr@ -e "flush privileges"
Warning: Using a password on the command line interface can be insecure.
[ekzorchik@localhost home]$

Шаг №7: С рабочей системы (Desktop-редакция: Windows 10 Pro) запускаю браузер (Google Chrome: 106.0.5249.119) и через строку URL адреса обращаюсь к системе на которой устанавливаю rConfig, т.е. http://IP&DNS/install (http://172.35.35.3/install), тем самым открываем мастер инсталляции, вижу что по рекомендованному программному обеспечения стоит отметка Yes, а значит нажимаю Next

Проходим предпроверку установленного программного обеспечения на системе CentOS 7

Соглашаюсь с написанным в лицензионном соглашении: Accept License путем установки галочки и нажимаю Next

Соглашаюсь с лицензионный соглашением

Указываю для разворачиваемого сервиса rConfig параметры подключения к базе, проверяю введенные настройки и нажимаю Install Database. Если что их можно потом посмотреть includes/config.inc.php

[ekzorchik@localhost home]$ sudo mysql -u root -p712mbddr@ -e "CREATE DATABASE rconfig_db;"
[ekzorchik@localhost home]$ sudo mysql -u root -p712mbddr@ -e "grant all on rconfig_db.* to 'root'@'localhost';"
  • Database Server: localhost
  • Database Port: 3306
  • Database Name: db_rconfig
  • Database Username: root
  • Database Password: 712mbddr@

нажимаю Check Settings и важно в ответ получить зеленым цветом (Pass,Pass,Pass)

указываю параметры подключения к базе данных

а после нажимаю Install Database в ответ получаю "rConfig database installed successfully“, а уже потом нажимаю Next

Нажимаю Final Check и в ответ мастер проверяет конфигурационный файл, базу, директорию и т.д.

Нажимаю Final Check после инсталляции rConfig on CentOS 7

Отлично установка завершена.

Шаг №8: Нажимаю на ссылку "login page" тем самым URL трансформируется в https://172.35.35.3/login.php, сейчас процесс/этап авторизации

  • Username: по дефолту admin
  • Password: по дефолту admin
  • Remember me on this computer: отмечаю галочкой

и нажимаю Login

Авторизуюсь в Web-интерфейсе rConfig

После того как успешно авторизовались нужно удалить каталог install:

[ekzorchik@localhost home]$ sudo find / -name install
find: ‘/proc/2718’: No such file or directory
/usr/bin/install
/home/rconfig/www/install
[ekzorchik@localhost home]$ sudo rm -Rf /home/rconfig/www/install/
[ekzorchik@localhost home]$

Итого интерфейс после авторизации в Web-сервисе rConfig:

Итого интерфейс после авторизации в Web-сервисе rConfig:

Итого я разобрал как успешно установить rConfig на CentOS 7. А вот как добавлять в него оборудование Cisco я разберу в следующей заметке, чтобы было одна заметка установка, вторая добавление. А пока на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.