Что может быть главнее что шаги по разворачиванию и восстановлению, да ничего. Важно не только развернуть сервис и запустить его в продакшн, но и в случае чего восстановить его работоспособность из бекапа или поправить то что сломалось, к примеру из-за обновления, не верно внесенных настроек, смена физического оборудования. Вообще причин падения сервиса может быть множество, всех не перечислишь, но процедура восстановления должна быть отрепетирована. Надейтесь только на себя, а не на коллег если конечно они у Вас есть. Недаром ведь существует поговорка: – «Если хочешь сделать хорошо и чтобы не было стыдно, то сделай это сам». Я руководствуюсь этим и у меня в подконтрольном обслуживании все хорошо. Ранее я развернул (расписал) сервис корпоративного чата OpenFire во владении вверенной мне локальной сетью.
Итак у меня есть бекап сделанный в openfire версии 4.0.4:
ekzorchik@srv-host:~$ sudo mysqldump -u root -p712mbddr@ db_openfire > db_openfire.sql
ekzorchik@srv-host:~$ ls -lh db_openfire.sql -rw-rw-r-- 1 ekzorchik ekzorchik 39K Dec 7 06:48 db_openfire.sql
ekzorchik@srv-host:~$ file db_openfire.sql
db_openfire.sql: UTF-8 Unicode text, with very long lines
ekzorchik@srv-host:~$ mysql -Version
mysql Ver 14.14 Distrib 5.5.53, for debian-linux-gnu (x86_64) using readline 6.3
Текущая система развернутого сервиса OpenFire:
ekzorchik@srv-host:~$ uname -a && lsb_release -a
Linux srv-host 4.4.0-42-generic #62~14.04.1-Ubuntu SMP Fri Oct 7 23:15:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
ekzorchik@srv-host:~$ free -m | grep -E "Mem:|total"
total used free shared buffers cached
Mem: 3951 1075 2876 5 105 570
ekzorchik@srv-host:~$ cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
ekzorchik@srv-host:~$ sudo fdisk -l | grep -n -E "root:"
14:Disk /dev/mapper/srv–host–vg-root: 51.3 GB, 51250200576 bytes
Итого характеристики для восстановления из бекапа:
- OS: Ubuntu 14.04.5 Server amd64
- CPU = 2
- HDD = 50Gb (LVM)
- RAM = 4
Но помимо базы данных нужно бекапировать еще и сами файлы:
ekzorchik@srv-host:~$ sudo tar Pcf openfire.tar /etc/openfire/ /usr/share/openfire/ db_openfire.sql
Копирую себе файлы резервной копии сервиса openfire на локальную станцию:
ekzorchik@srv-host:~$ scp openfire.tar aollo@10.7.8.135:/home/aollo
Поднимаю VM на ESXi, на нее и разворачиваю по шагам установки openfire
для справки: IP адрес остался тот для новой машины т. к. я откатился на снапшот (OriginalSystem) и на него будут накатывать восстановление.
aollo@system:~$ ssh -l ekzorchik 10.7.8.175
ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/
ekzorchik@srv-host:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-host:~$ uname -a && lsb_release -a
Linux srv-host 4.4.0-42-generic #62~14.04.1-Ubuntu SMP Fri Oct 7 23:15:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
ekzorchik@srv-host:~$ sudo tasksel install lamp-server
New password for the MySQL “root” user:712mbddr@
Repeat password for the MySQL “root” user:712mbddr@
ekzorchik@srv-host:~$ mysql -u root -p712mbddr@
mysql> create database db_openfire;
mysql> create user 'openfire'@'localhost' identified by '612mbddr@';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on db_openfire.* to 'openfire'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Устанавливаю пакеты для работы с Java, т.к. сервис openfire работает с его помощью:
ekzorchik@srv-host:~$ sudo apt-get install openjdk-7-jre openjdk-7-jdk -y
ekzorchik@srv-host:~$ java -version
java version “1.7.0_121”
OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-1ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)
Теперь скачиваю с официального сайта самую последнюю версию пакета (openfire) для организации корпоративного чата:
ekzorchik@srv-host:~$ wget -c https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.0.4_all.deb
ekzorchik@srv-host:~$ mv downloadServlet\?filename\=openfire%2Fopenfire_4.0.4_all.deb openfire_4.0.4_all.deb
ekzorchik@srv-host:~$ sudo dpkg -i openfire_4.0.4_all.deb
Останавливаю openfire:
ekzorchik@srv-host:~$ sudo service openfire stop
best java alternative in: /usr/lib/jvm/java-7-openjdk-amd64/jre
Stopping openfire: openfire.
После на VM с еще не настроенным openfire передаю файлы ранее сделанного бекапа:
aollo@system:~$ scp openfire.tar ekzorchik@10.7.8.175:/home/ekzorchik
ekzorchik@srv-host:~$ mkdir openfire
ekzorchik@srv-host:~$ sudo tar xPf openfire.tar -C ~/openfire/
ekzorchik@srv-host:~$ cd openfire/
ekzorchik@srv-host:~/openfire$ sudo cp -R etc/ /etc
ekzorchik@srv-host:~/openfire$ sudo cp -R usr/ /usr
ekzorchik@srv-host:~/openfire$ mysql -u root -p712mbddr@ db_openfire < db_openfire.sql
Запускаю Openfire:
ekzorchik@srv-host:~/openfire$ sudo service openfire start
best java alternative in: /usr/lib/jvm/java-7-openjdk-amd64/jre
Starting openfire: openfire.
Открываю URL:
- https://10.7.8.175:9091/login.jsp?url=%2Findex.jsp
и меня успешно авторизует в Openfire
Проверив существующие настройки, группы, пользователей, комнаты все на месте. Получается что процедура восстановления из бекапа отрепетирована. Вот это то самое чувство, что за себя не обидно и не проклинаешь ну почему же так трудно работать на совесть, а не на отвали как делает большинство во всех областях и не только системном администрировании. Я же делаю все как для самого себя. А пока я прощаюсь и до новых нововведений, с уважением Олло Александр aka ekzorchik.