Перейти к содержимому. | Перейти к навигации

Персональные инструменты

Вы здесь: Главная / Спиричев Вадим / DCM4CHEE v2.18 in Docker Container / Deploy DCM4CHEE v.2.18 на Debian 10

Deploy DCM4CHEE v.2.18 на Debian 10

 

1. Ставим Debian10 с диска netinst_x64

 2. Добавим пользователя deploy в файл /etc/sudoers, чтобы он мог выполнять команды root'a через sudo. Это        необходимо для работы ansible с host-сервером.

  # visudo

  и добавляем строчку с deploy после root 

# User privilege specification
root ALL=(ALL:ALL) ALL
deploy ALL=(ALL:ALL) NOPASSWD: ALL

  и сохраняем изменения. И далее работаем пользователем deploy.

3. Ставим net-tools, joe, netplan.io

4. Настраиваем сеть  /etc/netplan/01-netcfg.yaml

network:
version: 2
renderer: networkd
# wifis:
# wlx001731b1756e:
# dhcp4: no
# dhcp6: no
# addresses: [192.168.18.50/24]
# gateway4: 192.168.18.1
# nameservers:
# addresses: [192.168.1.232, 77.88.8.8]
# access-points:
# gate18:
# password: 3333383333

ethernets:
enp3s0:
dhcp4: no
dhcp6: no
addresses: [192.168.1.203/24]
gateway4: 192.168.1.1
mtu: 1500
# nameservers:
# addresses: [192.168.1.232, 77.88.8.8]
# nameservers:
# addresses: [195.189.108.6, 195.189.109.6]

##
# enp3s0:
# dhcp4: no
# dhcp6: no
## match:
## macaddress: 00:90:4C:C0:00:00
## macaddress: de:de:de:de:de:de
# addresses: [195.189.108.50/28]
# gateway4: 195.189.108.49
# mtu: 1500
# nameservers:
# addresses: [195.189.108.6, 195.189.109.6]


ВНИМАНИЕ! У файла расширегние yaml !!!

5. Применяем конфигурацию

Для проверки вводим:

netplan --debug generate

Для применения настроек

netplan apply

или временно (до нажатия ENTER в пределах 120с)

netplan try

Перезагружаем и пробуем настройки сети.

6. Ставим пакет resolvconf

Удаляем ссылку и/или делаем файл:

/etc/resolv.conf:
search uraltcom.ru
nameserver 195.189.108.6

это чтобы ставить пакеты, если apt-get update не работает.

 

далее действуем по статье (настраиваем пакет resolv.conf)

https://losst.ru/nastrojka-dns-v-debian

sudo apt-get update
sudo apt install resolvconf
sudo systemctl status resolvconf.service
sudo systemctl start resolvconf.service
sudo systemctl enable resolvconf.service
sudo systemctl status resolvconf.service
joe /etc/resolvconf/resolv.conf.d/head

пишем туда:

search uraltcom.ru
nameserver 195.189.108.6
nameservet 195.189.109.6

 

перезагружаем и проверяем:

cat /etc/resolv.conf
ping google.ru

 

 7. Настраиваем беспарольный вход с "deploy-машины" на новый сервер.

Generate a ssh key pair on your Ansible server:

ssh-keygen

Copy the public key to all your remote hosts you need to connect via this ssh key.

 ssh-copy-id -i ~/.ssh/id_rsa.pub deploy@<remote_host>

 deploy - пользователь на виртуалке с правами sudo

Пробуем зайти без пароля: slogin -l deploy 192.168.9.20

должен пускать!

 

8. Развертываем Docker ansible-плейбуком с "deploy-машины".

Пишем в инвентори-файл:

[devel-servers]
dcm12 ansible_host=192.168.1.208 ansible_user=deploy

запускаем плейбук ( docker_debian.yml ):

ansible-playbook -i ../hosts docker_debian.yml

 

9. Делаем каталог /storage и монтируем туда диск.

Определяем UUID для partition:

# dumpe2fs -h /dev/sda1 |grep -i uuid 

добавляем в /etc/fstab

UUID=41b80bc8-061d-4034-9619-86c80245b0aa     /storage            ext4  defaults        0       2

перезагрузить и проверить смонтированный диск.

10. Ставим пустую базу и инструментарий dcmtk ( 4chee2_dep.yml ):

 ansible-playbook -i hosts 4chee2_dep.yml

 папка DCM4CHEE_2 содержит архивы:

dcm4chee_dir.tgz

dcmho010320.tgz

mysql_dir.tgz

STORESCU_TEST.tgz

 

11. Делаем и запускаем docker-compose.yml

сначала заводим env-переменную в .bashrc

export DCM_STORAGE=/storage

и сам файл:

pacs:
image: 'jodogne/dcm4chee'
restart: always
hostname: 'pacs12'
ports:
- '8080:8080'
- '11112:11112'
volumes:
- '$DCM_STORAGE/data/dcm4chee:/var/local/dcm4chee'
- '$DCM_STORAGE/data/mysql:/var/lib/mysql'

стартуем 

docker-compose up -d

проверяем доступ через web-интерфейс.

12. Change the default AE Title (if you need...)

Connect to JBoss's JMX Console at http://localhost:8080/jmx-console/ and login using also the Administrator account 'admin', with password 'admin'.
Follow the link "service=AE" to the configuration page for AE (Application Entity - a DICOM term for a DICOM node on the network) service under the "dcm4chee.archive" heading.
Invoke the operation updateAETitle with the old AE Title (DCM4CHEE if unchanged from the default), and new AE Title as parameters.
This will update the following configurations:

  • update the retrieve AET of file systems, associated to the current retrieve AET of this node
  • update retrieveAETs of all instances, series and studies that have files on these filesystems
  • update the entry for the retrieve AE in the AE Configuration
  • update the AE Title of all services listed by attribute OtherServiceAETitleAttributesToUpdate

 

chaAETitle

There are currently no items in this folder.

 

 13. Chande default DCM4CHEE port

I find it, in service=DcmServer

chaDCMPort

There are currently no items in this folder.

 

P.S.

DCM4CHEE в DEBIAN НЕ БУДЕТ РАБОТАТЬ НА ПОРТУ < 1024 !!!

 

14. Закачка данных из существующего архива.

Скрипт закачки

#!/bin/bash
#
# You must have passwordless access to SERVER for deploy-user.
#
#
ARGC=$#
SCRIPTNAME=`basename $0`
if [ $ARGC -ne 1 ]; then
echo "Usage: $SCRIPTNAME <month>"
fi

SERV_IP="192.168.1.208"
SERV_PORT="11112"
SAET=DCM4CHEE
# Path to source archive and year
YEAR=2021
PA2AR=/mnt/1/lib/vservers/lin01/var/lib/dcm4chee/server/default/archive/$YEAR

list="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31"
# You can limit days in month
#list="1 2 3 4 5"
#list="25 26 27"
#echo $(dirname $PA2AR)
# Disable time synchronization
ssh deploy@$SERV_IP "sudo timedatectl set-ntp no"
# Find directories under the month (i.e. days for month)
for A in `find $PA2AR/$1 -maxdepth 1 -type d `
do
for B in $list
do
# Set limit for days by list-array
if [ "${A##*/}" == "$B" ]; then
# Pass the month-number directory (i.e. parent dir is year)
if [ "$(dirname $A)" != "$PA2AR" ]; then
# echo ==${A##*/}==
# echo _${A}_$B
echo ========day===========$B
echo "$YEAR-$1-$B 11:11:11"
# Set date on SERVER
ssh deploy@$SERV_IP "sudo timedatectl set-time \"$YEAR-$1-$B 11:11:11\""
sleep 2
# find $A -not -type d
# Send dcm-file to SERVER
find $A -not -type d -exec storescu -aet $SAET -aec $SAET $SERV_IP $SERV_PORT {} \;
# find $A -not -type d -exec storescu -aet BNK_INTEK -aec DCM4CHEE 192.168.1.203 11112 {} \;
# find $A -not -type d -exec echo {} \;
fi
fi
done
done
# Enable time synchronization (remote command)
ssh deploy@$SERV_IP "sudo timedatectl set-ntp yes"

...

 send_dicomf.sh