Мне срочно потребовалось написать скрипт для резервного копирования моих репозитариев кода которые я стал последнее время вести с применением Mercurial. Сам сервис (ось: Ubuntu 18.04 Server amd64) Web+Mercurial у меня на моем железе HP MicroServer Gen8. А для единоличного доступа всех моих устройств и хранения наработок я использую на Ubuntu Trusty Server amd64 сервис OwnCloud (9.1.1). Он у меня уже несколько лет заменят Dropbox, Yandex-disk. И при составлении скрипта я столкнулся, что нужны действия, как через webdav произвести подключение к OwnCloud чтобы сбросить файлы резервного копирования создаваемые каждый день.
ekzorchik@srv-bionic:~$ hg clone --insecure https://172.33.33.40/hg/dproject
(172.33.33.40
→ адрес текущей системы где содержаться репозитарии моего кода под различные проекты)
ekzorchik@srv-bionic:~$ sudo ./dproject/default
Устанавливаю на систему где у меня установлена связка Web+Mercurial пакет davfs2:
ekzorchik@srv-bionic:~$ sudo apt-get install davfs2 -y
Should unprivileged users be allowed to mount WebDAV resources?
No
Создаю файл с логином и паролем на подключение к домашнему OwnCloud хранилищу:
(172.33.33.50
→ мое OwnCloud хранилище в локальной сети)
ekzorchik@srv-bionic:~$ sudo nano /etc/davfs2/secrets
https://172.33.33.50/remote.php/webdav/tips_bhg<TAB>ekzorchik<TAB>712mbddr@
ekzorchik@srv-bionic:~$ sudo nano /etc/fstab
https://172.33.33.50/remote.php/webdav/tips_bhg<TAB>/media/tips_bhg<TAB>davfs<TAB>rw,user,auto 0 0
ekzorchik@srv-bionic:~$ sudo mount -a
/sbin/mount.davfs: the server certificate does not match the server name
/sbin/mount.davfs: the server certificate is not trusted
issuer: Internet Widgits Pty Ltd, Some-State, AU
subject: Internet Widgits Pty Ltd, Some-State, AU
identity: 172.33.33.50
fingerprint: 77:47:09:7d:88:62:36:0f:bd:a6:fc:8c:c4:8e:e6:3a:f8:fc:8b:4c
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N]
Нажимаю клавишу y
/sbin/mount.davfs: warning: the server does not support locks
ekzorchik@srv-bionic:~$ sudo mkdir /media/tips_bhg/1
Повторяю действия, отключаю подключенный через webdav каталог:
ekzorchik@srv-bionic:~$ sudo umount /media/tips_bhg
/sbin/umount.davfs: waiting while mount.davfs (pid 812) synchronizes the cache .. OK
Запрашиваю монтирование удаленного каталога через webdav и снова запрос на подтверждение сертификата (он у меня самоподписанный)
ekzorchik@srv-bionic:~$ sudo mount -a
Accept certificate for this session? [y,N]
Задача: Как предопределить ответ «Да
» на использование самоподписанного сертификата?
Можно с рабочего сервера где развернута роль owncloud скопировать сертификат:
ekzorchik@srv-owncloud:~$ cat /etc/apache2/sites-available/owncloud-ssl.conf | grep pem
SSLCertificateFile /etc/ssl/certs/owncloud.pem
ekzorchik@srv-owncloud:~$ scp /etc/ssl/certs/owncloud.pem ekzorchik@172.33.33.50:/home/ekzorchik
или подключившись к нему сохранить сертификат:
ekzorchik@srv-bionic:~$ openssl s_client -connect 172.33.33.50:443 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > certificate.pem
ekzorchik@srv-bionic:~$ sudo cp certificate.pem /etc/davfs2/certs/
ekzorchik@srv-bionic:~$ sudo nano /etc/davfs2/davfs2.conf
trust_server_cert<TAB>/etc/davfs2/certs/certificate.pem
ekzorchik@srv-bionic:~$ sudo mount -a
/sbin/mount.davfs: warning: the server does not support locks
ekzorchik@srv-bionic:~$ df -h | grep tips_bhg
https://172.33.33.50/remote.php/webdav/tips_bhg 16E 0 16E 0% /media/tips_bhg
Оба результата получения сертификата и прописывания его в конфигурационный файл davfs2 отрабатывают. Отлично, я разобрал, что меня интересовало. Работает. Теперь можно сделать скрипт резервного копирования репозитариев Mercurial на личный облачный сервис базируемый на OwnCloud системы Ubuntu Trusty Server amd64. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik
.