Задача: Хочу разобрать средство, посредством которого я смогу выполнять резервное копирование конфигурационных файлов сетевого оборудования 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
Соглашаюсь с написанным в лицензионном соглашении: 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
и в ответ мастер проверяет конфигурационный файл, базу, директорию и т.д.
Отлично установка завершена.
Шаг №8:
Нажимаю на ссылку "login page"
тем самым URL
трансформируется в https://172.35.35.3/login.php
, сейчас процесс/этап авторизации
- Username: по дефолту admin
- Password: по дефолту admin
- Remember me on this computer: отмечаю галочкой
и нажимаю Login
После того как успешно авторизовались нужно удалить каталог 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:
Итого я разобрал как успешно установить rConfig
на CentOS 7
. А вот как добавлять в него оборудование Cisco
я разберу в следующей заметке, чтобы было одна заметка установка, вторая добавление. А пока на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.