Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sysadmin:scripts:bash:npm_copy_crt [23:09:2025 23:22] School Sysadminsysadmin:scripts:bash:npm_copy_crt [30:09:2025 23:51] (текущий) School Sysadmin
Строка 1: Строка 1:
 ====== Копирование сертификатов с NPM на сервер (VM) ====== ====== Копирование сертификатов с NPM на сервер (VM) ======
  
-Скрипт копирует сертификаты с NPM на промежуточную машину с OMV7 (Openmediavaut) по NFS.\\+Скрипт копирует сертификаты с NPM Nginx Proxy Manager) на промежуточную машину с OMV7 (Openmediavaut) по NFS.\\
 На OMV в секции **Services -> NFS -> Shares -> Extra optinons** необходимо добавить **rw,subtree_check,secure,no_root_squash**, иначе доступа на запись не будет.\\ На OMV в секции **Services -> NFS -> Shares -> Extra optinons** необходимо добавить **rw,subtree_check,secure,no_root_squash**, иначе доступа на запись не будет.\\
 Предварительно на всех VM установлен и настроен **NFS client**, на OMV7 **NFS Server**.\\ Предварительно на всех VM установлен и настроен **NFS client**, на OMV7 **NFS Server**.\\
 +[[https://interface31.ru/tech_it/2023/07/nastraivaem-setevuyu-faylovuyu-sistemu-nfs-v-debian-i-ubuntu.html|Источник]]
 +===== NPM =====
 Создать каталог в домашней директории пользователя **root**\\ Создать каталог в домашней директории пользователя **root**\\
 <code bash> <code bash>
Строка 10: Строка 12:
 Содать файл в каталоге **scripts** Содать файл в каталоге **scripts**
 <code> <code>
-touch ~/script/cert_from_npm.sh+touch ~/script/copy_certs.sh
 </code> </code>
 Скопировать и вставить Скопировать и вставить
-<file bash cert_from_npm.sh>+<file bash copy_certs.sh>
 #!/bin/bash #!/bin/bash
  
-Server details+Certificate directory on the server
 REMOTE_DIR="/srv/appdata/npm/letsencrypt/archive" REMOTE_DIR="/srv/appdata/npm/letsencrypt/archive"
-mount -t nfs4 172.26.1.252:/cert /mnt/nfs/cert+# Mounting the certificate directory 
 +mount -t nfs4 IP_OMV:/certs /mnt/nfs/certs
  
-for varname in 2 4 13 17 18 19 20 21 23 27+# Number proxy host npm-X 
 +for varname in 2
 do do
 if [$varname -eq 0] if [$varname -eq 0]
Строка 27: Строка 31:
  
 fi fi
-mkdir /mnt/nfs/cert/npm-$varname +mkdir /mnt/nfs/certs/npm-$varname 
-cat "$(ls -rt $REMOTE_DIR/npm-$varname/fullchain* | tail -n1)" |  tee /mnt/nfs/c +cat "$(ls -rt $REMOTE_DIR/npm-$varname/fullchain* | tail -n1)" |  tee /mnt/nfs/certs/npm-$varname/fullchain.pem 
-cat "$(ls -rt $REMOTE_DIR/npm-$varname/privkey* | tail -n1)" | tee /mnt/nfs/cert +cat "$(ls -rt $REMOTE_DIR/npm-$varname/privkey* | tail -n1)" | tee /mnt/nfs/certs/npm-$varname/privkey.pem
 done done
  
-umount -t nfs4 172.26.1.252:/cert /mnt/nfs/cert+umount -t nfs4 IP_OMV:/certs /mnt/nfs/certs
 history -c history -c
 reset reset
 </file> </file>
 где где
-for varname in **1 2 3 4 5 6 7 8 9 10** - цифра соответствует номеру папки с сертификатами типа **npm-X**;\\+**for varname in 1 2 3 4 5 6 7 8 9 10** - цифра соответствует номеру папки с сертификатами типа **npm-X**;\\
 **IP_OMV** ip адрес OMV7. **IP_OMV** ip адрес OMV7.
 Cделать исполняемый скрипт для владельца файла Cделать исполняемый скрипт для владельца файла
 <code> <code>
-mcedit ~/scripts/cert_from_npm.sh+mcedit ~/scripts/copy_certs.sh
 </code> </code>
 Cделать исполняемый скрипт для владельца файла Cделать исполняемый скрипт для владельца файла
 <code> <code>
-chmod u+x ~/scripts/cert_from_npm.sh+chmod u+x ~/scripts/copy_certs.sh
 </code> </code>
  
-В cron заносим его выполнение по необходимому вам расписанию.+В cron задаем его выполнение по расписанию.
  
 <code>crontab -e</code> <code>crontab -e</code>
 +<code>0 0 25 */2 * /root/scripts/copy_certs.sh</code>
 +Если, что то не работает смотрим log
 +<code>sudo grep 'CRON' /var/log/syslog/</code>
 +===== На сервере (VM) =====
 +Создать каталог\\
 +<code bash>mkdir ~/scripts</code>
 +Содать файл\\
 +<code>touch ~/script/copy_cert.sh</code>
 +Скопировать и вставить
 +<file bash copy_cert.sh>
 +#!/bin/bash
  
-<code bash>+# Certificate directory on the server 
 +CERT_DIR="/etc/apache2/certs/WEB_SITE"
  
-0 0 28 */2 * /root/scripts/cert_from_npm.sh +# NPM certificate directory 
-</code>+CERT_DIR_NPM="npm-1"
  
-<code bash> +Mounting the certificate directory 
-#!/bin/bash+mount -t nfs4 IP_OMV:/certs/$CERT_DIR_NPM /mnt/nfs/cert
  
-CRT_DIR="/var/www/r7-office/Data/certs/"+# Copying certificates to the server 
 +cp /mnt/nfs/cert/privkey.pem $CERT_DIR/privkey.pem 
 +cp /mnt/nfs/cert/fullchain.pem $CERT_DIR/fullchain.pem
  
-mount -t nfs4 IP_OMV:/crt /mnt/crt+# Changing certificate permissions 
 +chmod 400 $CERT_DIR/privkey.pem
  
-cp /mnt/crt/npm-8/privkey.pem $CRT_DIR/privkey.pem +# Restart Apache2 
-cp /mnt/crt/npm-8/fullchain.pem $CRT_DIR/fullchain.pem+systemctl restart apache2
  
-chmod 400 $CRT_DIR/privkey.pem+# or Restart NGINX 
 +#service nginx restart
  
-sudo service nginx restart+# Unmounting the certificate directory 
 +umount -t nfs4 IP_OMV:/certs/$CERT_DIR_NPM /mnt/nfs/cert
  
-umount -t nfs4 IP_OMV:/crt /mnt/crt +history -
-</code>+reset 
 +</file> 
 + 
 +Cделать исполняемый скрипт для владельца файла 
 +<code>mcedit ~/scripts/copy_cert.sh</code> 
 +Cделать исполняемый скрипт для владельца файла 
 +<code>chmod u+x ~/scripts/copy_cert.sh</code> 
 + 
 +В cron задаем его выполнение по расписанию. 
 + 
 +<code>crontab -e</code> 
 +<code>3 0 25 */2 * /root/scripts/copy_cert.sh</code>
  • Последнее изменение: 23:09:2025 23:22