Установка МИС на сервер с Linux
В данной статье будет описан процесс установки и настройки сервера «Медицинской информационной системы» на основе Ubuntu Server 16.04.1 LTS.
Основную часть этого мануала написал Малахов С.М. (Большая ему благодарность), а я только немного добавил и исправил ошибки.
Часть I Подготовка
1) Скачиваем дистрибутив операционной системы. Автором данной статьи использовалась Ubuntu 16.04 LTS, но вы можете выбрать другой.
2) Записываем образ на cd-диск / USB-диск / монтируем образ через IPMI (или другим интерфейсом управления сервером).
3) Рекомендуется подключить интернет соединение, так как некоторые пакеты будем устанавливать с официальных репозиториев.
Часть II Установка
- Загружаем с выбранного носителя и приступаем к установке.
- Выбираем язык
- При выборе раскладки - выбираем -нет
- Выбираем страну
- Выбираем способ переключения языков
- Задаем имя нашего сервера. Выбор имени сервера оставляем за вами.
- Создаем нового пользователя. Имя пользователя должно быть отличным от administrator, admin, root. Этот пользователь будет sudo user, и может выполнять команд от имени root.
- Настраиваем часовой пояс как Europe/Moscow.
Разметка диска
Предполагается, что вы будете использовать зеркальный рейд (raid 1 mirror), поэтому будем использовать программный MD (Multiple Devices) рейд, он не требует наличия аппаратного рейд контроллера (но вы можете пользоваться и им).
- Выбираем пункт Вручную
- Создаем новую пустую таблицу разделов на каждом диске
- У нас появился пункт "настройка программного RAID" выбираем его. Нажимаем создать MD устройство -> выбираем RAID1 -> число разделов 2 -> число резервных 0 -> пробелом выбираем 2 диска (sda sdb). Сохраняем изменения.
- Теперь настроим логические тома. Выбираем пункт Настройка менеджера логических дисков (LVM), и первым делом создаем группу томов. Называем ее gr0 и включаем в нее созданный ранее рейд массив.
- Далее создаем логические тома. Выбираем группу gr0 и делаем согласно таблице ниже:
Название тома | Примерный размер |
---|---|
boot | 512Mb |
root | 10 - 80 Gb |
swap | 2 - 4 Gb |
var | 100 - 200 Gb |
home | Оставшееся место |
В итоге у нас получилось 5 томов (boot - загрузчик grub; root - системные файлы; swap - файл подкачки; var - под программу МИС и MySQL; home - домашняя директория), нажимаем закончить.
Далее создаем точки монтирования для созданных томов согласно таблице:
ТОМ | Использовать как | Точка монтирования |
---|---|---|
boot | ext4 | /boot |
root | ext4 | / |
swap | раздел подкачки | отсутствует |
var | ext4 | /var |
home | ext4 | /home |
Закончить разметку и записать изменения на диск.
Завершение установки
Далее система установит все необходимое, просто наблюдаем. Тип обновлений "без автоматического обновления"; из программного обеспечения выберите Samba,OpenSSH Server и стандартные системные утилиты.
GRUB устанавливаем в главную загрузочную запись.
Система успешно установлена.
Далее можно либо продолжать работать через консоль, либо подключиться по SSH[1]
Часть III Настройка системы
Подготовим систему
- Заходим в систему используя созданную учетную запись
- Обновляем пакеты и апгрейдим систему
$ sudo apt-get update && sudo apt-get upgrade -y && sudo reboot
- После перезагрузки, доставим необходимые пакеты
$ sudo apt install mysql-server-5.7 mysql-client-5.7 mc
- Во время установки mysql сервера вас попросят задать пароль пользователя mysql root, пишите qwerty
- После установки можно проверить версию mysql
$ mysql --version
Настраиваем сеть.
Находим название сетевого интерфейса
$ ifconfig enp0s3 Link encap:Ethernet HWaddr 08:00:27:58:54:bb inet addr:192.168.1.143 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe58:54bb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3423 errors:0 dropped:0 overruns:0 frame:0 TX packets:878 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1989544 (1.9 MB) TX bytes:84171 (84.1 KB) lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:166 errors:0 dropped:0 overruns:0 frame:0 TX packets:166 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:12178 (12.1 KB) TX bytes:12178 (12.1 KB)
В нашем случае - это enp0s3
$ sudo nano /etc/network/interfaces auto enp0s3 iface enp0s3 inet static address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 8.8.8.8
Перезапускам сетевой интерфейс и проверяем настройки сети:
sudo ifdown -a && sudo ifup -a $ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:126785 errors:0 dropped:0 overruns:0 frame:0 TX packets:135453 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:116474217 (116.4 MB) TX bytes:102473947 (102.4 MB) lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:104371 errors:0 dropped:0 overruns:0 frame:0 TX packets:104371 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:720253620 (720.2 MB) TX bytes:720253620 (720.2 MB)
Настроим SMB
- Скопируем стандартный файл конфигурации
$sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
- Очистим smb.conf
$sudo echo 1>/etc/samba/smb.conf
- Отредактируем
$sudo nano /etc/samba/smb.conf
сохраняем комбинацией клавиш ctrl + O, ctrl + X для выхода
содержимое smb.conf
[global] server string = Medical Information System MIAC workgroup = WORKGROUP netbios name = MIS server string = MIS Server # need for netbios informations sharing over the network wins support = Yes directory mask = 0775 create mask = 0664 log file = /var/log/samba/%m.log max log size = 50 syslog = 0 # this way samba will not ask for password to connect to the machine security = user passdb backend = tdbsam // в каком порядке использовать сервисы имен для получения IP адреса. // bcast : Сделать широковещательный запрос по всем известным интерфейсам. // Это самый ненадежный из всех методов определения имен, т.к. зависит от подключения // компьютера к локальной сети. name resolve order = bcast host acl allow execute always = True [homes] comment = Home Directories valid users = %S #path = /home/%S/ path = /home/%U/mis/ browseable = no #writable = yes read only = no [mysql] comment = MIS base Directories path = /var/mis public = yes printable = no read only = no admin users = user1,user2 # В данном устройстве файлы будут создаваться, как есть preserve case = yes short preserve case = yes default case = lower directory mask = 0777 create mask = 0666 force group = usermis
4. Создадим группу пользователей МИС
$sudo groupadd usermis
и добавим нашего пользователя в SAMBA
$sudo smbpasswd -a %USERNAME% $sudo smbpasswd -e %USERNAME%
где %USERNAME% имя вашей учетной записи,
а также добавим его в группу usermis
$sudo usermod -a -G usermis %USERNAME%
5. Создаем папку для программы МИС
$sudo mkdir /var/mis
и назначим права на папку
$sudo chown :usermis /var/mis && sudo chmod 770 /var/mis
6. Перезагрузим smbd
$sudo service smbd restart
Создаем дампы МИС
1) Идем на сервер с МИС и открываем командную строку cmd.exe
2) Переходим по пути где лежат исполняемые файлы mysql (D:\mysql\bin) и набираем в командной строке:
D: cd mysql\bin mysqldump -uroot -pqwerty new > d:\new.dump.sql mysqldump -uroot -pqwerty kadry > d:\kadry.dump.sql
3) Сейчас мы можем открыть расшаренную папку linux сервера либо по ip-адресу либо по net-bios имени, и скопировать туда программу МИС и свежие дампы mysql
Настройка MySQL сервера
1) Делаем архив файла конфигурации
cd /etc/mysql/mysql.conf.d $sudo cp mysqld.cnf mysqld.cnf.dist
2) Редактируем файл mysql.cnf
$sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
В блоке [mysqld] меняем
bind-address = 127.0.0.1
на
bind-address = 0.0.0.0
Добавляем строки в конец файла
# Кодировка init_connect='SET NAMES cp1251' character-set-server=cp1251 collation-server=cp1251_general_ci skip-character-set-client-handshake lower_case_table_names=1 open_files_limit = 24000 join_buffer_size = 256K # Чтобы не выхавала варнинги на DNS skip-host-cache skip-name-resolve # Включить совместимость в 5.6 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3) Перезагрузим сервер mysql
$sudo service mysql restart
4) Подключаемся к mysql серверу и создаем пользователя и 2 базы.
passwd - пароль пользователя nataly.
$mysql -uroot -pqwerty mysql>CREATE USER 'nataly'@'%' IDENTIFIED BY 'passwd'; mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER ON *.* TO 'nataly'@'%' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES; mysql>create database new; mysql>create database kadry; mysql>\q
5) Базы созданы, теперь можно накатывать дампы на сервер:
$mysql -uroot -pqwerty new < /var/mis/new.dump.sql $mysql -uroot -pqwerty kadry < /var/mis/kadry.dump.sql
Базы успешно перенесены
Назначаем права на папку МИС
$sudo chown -R :usermis /var/mis/mysql $sudo chmod -R 0660 /var/mis/mysql $cd /var/mis $find * -type d -print0 | xargs -0 sudo chmod 0770
Редактируем файл sql.cfg
Можно с виндовой машины. Файл лежит на новом сервере с путем //ip_addr_serv/mysql/programm/sql.cfg
Допустим IP адресс нового сервера 192.168.1.5, тогда файл должен выглядеть примерно так.
192.168.1.5;new;//192.168.1.5/mysql/programm/
Создаем пользователей samba
Иванов Иван Иванович
Заводим пользователя в систему
$sudo useradd -s /usr/bin/nologin -g usermis ivanovii
Добавляем пользователя в SAMBA
$sudo smbpasswd -a ivanovii $sudo smbpasswd -e ivanovii
Заводим сколько требуется пользователей
Сервер готов!