суббота, 7 декабря 2019 г.

Настройка сервера 1с в контейнере lxd

$ sudo adduser lxduser
$ sudo adduser lxduser lxd
от него и будем работать в дальнейшем. 

$ sudo su - lxduser

lxc launch ubuntu:18.04 srv1c
lxc config device add srv1c hasp3 unix-char path=/dev/bus/usb/001/003 mode=0777
lxc config device add srv1c hasp4 unix-char path=/dev/bus/usb/001/004 mode=0777
lxc config device add srv1c aks2 unix-char path=/dev/aks/hasp/1-3 mode=0777
lxc config device add srv1c aks3 unix-char path=/dev/aks/hasp/1-4 mode=0777
printf 'lxc.cgroup.devices.allow = c 198:* rwm' | lxc config set srv1c raw.lxc -
lxc restart srv1c
lxc exec srv1c -- sudo --user ubuntu --login
sudo apt update
sudo apt upgrade
sudo apt install mc samba -y
sudo dpkg-reconfigure locales
sudo dpkg-reconfigure tzdata
sudo dpkg-reconfigure keyboard-configuration
git clone  http://gitlab.lxd/user/setup-1c.git
cd setup-1c/scripts
sh download-pg.sh
#./download-pg.sh
Version: 10.10-4.1C
sudo sh setup-pg10.sh
#sudo ./setup-pg10.sh
Version: 10.10-4.1C
sh download-1c.sh
#./download-1c.sh
Version: 8.3.15.1778
sudo sh setup-1c.sh
Version: 8.3.15.1778
sudo poweroff
lxc copy srv1c srv1c-cop
lxc start srv1c
lxc list




=======================================================================

Обновление pg 10

git clone  http://gitlab.lxd/user/setup-1c.git
cd setup-1c
sh download-pg.sh
#Делаем dump баз и останавливаем сервер 1с
sudo sh dump.sh

sudo sh update-pg10.sh

Обновление 1с

git clone  http://gitlab.lxd/user/setup-1c.git
cd setup-1c
sh download-1c.sh
Version: 8.3.15.1778
sudo sh update-1c.sh
Version: 8.3.15.1778

=======================================================================

git config user.name user
git config user.email "you@example.com"
git add README.md
git commit -am "."
# git remote add origin http://192.168.0.221/user/setup-1c.git
git push -u origin master

четверг, 5 декабря 2019 г.

Установка lxd на ubuntu 18.04

Настройка Ubuntu 18.04.3 для работы с Back-UPS ES 700G от APC
systemd-networkd-wait-online.service Failed to start Wait for Network to be Configured with bridge
Использование journalctl для управления журналированием в systemd
решение для поддержки virtualbox
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install mc samba ssh
$ sudo reboot
$ sudo sh -c 'echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" >> /etc/apt/sources.list.d/virtualbox.list'
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt update
$ sudo apt install virtualbox-6.0
#$ sudo apt autoremove --purge virtualbox-6.0
$ sudo usermod -a -G vboxusers $USER
$ sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
$ sudo reboot

$ sudo apt-get install bridge-utils -y
$ ip a
enp0s31f6 192.168.0.5

$ sudo nano /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      dhcp4: yes

  bridges:
    br0:
      interfaces: [enp0s31f6]
      addresses: [192.168.0.7/24]
      gateway4: 192.168.0.1
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no

Сохранить.

$ sudo netplan generate
$ sudo netplan --debug apply


$ cat /proc/cpuinfo | grep MHz
$ sudo systemctl stop ondemand
$ sudo systemctl disable ondemand

$ nano tuning.sh
 
#!/bin/bash
# отключим ipv6
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo '#net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
#тюнинг postgresql
sudo /bin/su -c "echo 'vm.swappiness=1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_migration_cost_ns = 5000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_autogroup_enabled = 0' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_background_bytes = 67108864' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_bytes = 536870912' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.zone_reclaim_mode = 0' >> /etc/sysctl.conf"
#lxd
sudo /bin/su -c "echo 'fs.inotify.max_queued_events = 1048576' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'fs.inotify.max_user_instances = 1048576' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'fs.inotify.max_user_watches = 1048576' >> /etc/sysctl.conf"
sudo sysctl -p

Сохранить.

$ sudo sh tuning.sh
$ sudo reboot

$ mkdir archive
$ ls -l /dev/disk/by-uuid
$ sudo nano /etc/fstab
Добавить:
UUID=5238c225-69c3-4c28-a633-5177867f0696 /home/user/archive ext4 defaults 0 0
Сохранить.
$ sudo reboot
Конвертировать OVA в Qcow2


1. На хосте созаем файл (берем с машины где стоят драйвера)
$ sudo nano /etc/udev/rules.d/80-hasp.rules
# HASP rules
ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0001", MODE="664", ENV{HASP}="1", SYMLINK+="aks/hasp/%k", RUN+="/usr/sbin/aksusbd_x86_64 -c $root/aks/hasp/$kernel"
ACTION=="remove", ENV{HASP}=="1", RUN+="/usr/sbin/aksusbd_x86_64 -r $root/aks/hasp/$kernel"

# SENTINEL rules
ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0003", KERNEL!="hiddev*", MODE="666", GROUP="plugdev", ENV{SENTINELHID}="1", SYMLINK+="aks/sentinelhid/%k"

# SENTINEL rules для второго серверного ключа добавить еще запись:
ACTION=="add|change|bind", SUBSYSTEM=="usb", ATTRS{idVendor}=="0529", ATTRS{idProduct}=="0004", KERNEL!="hiddev*", MODE="666", GROUP="plugdev", ENV{SENTINELHID}="1", SYMLINK+="aks/sentinelhid/%k"

$ sudo reboot

$ ls -alFhR /dev/aks/


 

$ sudo lxd init

Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (btrfs, dir, lvm) [default=btrfs]: dir
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]: no
Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes
Name of the existing bridge or host interface: br0
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:


Создадим пользователя lxduser для работы  с консолью контейнеров без доступа sudo

$ sudo adduser lxduser
$ sudo adduser lxduser lxd

от него и будем работать в дальнейшем.

$ sudo su - lxduser

Восстанавливаем контейнер gitlab:

$ lxc image import gitlab-2019-12-06.tar.gz --alias gitlab-backup
$ lxc launch gitlab-backup gitlab

$ lxc image list
$ lxc image delete gitlab-backup


Восстанавливаем контейнер vbox:
$ lxc image import vbox.tar.gz --alias vbox-backup
Образ, импортирован с снимком: 4cc93c869cbc7686c61eabed84579b8386f4633ac1e0f7b7493c87274d000
$ lxc launch vbox-backup vbox
$ lxc stop vbox

На хосте проверим:
user@lxd:~$  ls -la /dev | grep vbox


crw-rw----  1 root vboxusers  10,  55 дек  5 16:18 vboxdrv
crw-rw-rw-  1 root root       10,  54 дек  5 16:18 vboxdrvu
crw-rw----  1 root vboxusers  10,  53 дек  5 16:18 vboxnetctl
drwxr-x---  3 root vboxusers       60 дек  5 16:18 vboxusb

#$ lxc start vbox
$ lxc config device add vbox vboxdrv unix-char path=/dev/vboxdrv mode=0777
$ lxc config device add vbox vboxdrvu unix-char path=/dev/vboxdrvu mode=0777
$ lxc config device add vbox vboxnetctl unix-char path=/dev/vboxnetctl mode=0777

#$ lxc config set vbox linux.kernel_modules overlay
#$ lxc config set vbox security.privileged true 
$ printf 'lxc.cgroup.devices.allow = c 10:53 rwm lxc.cgroup.devices.allow = c 10:54 rwm lxc.cgroup.devices.allow = c 10:55 rwm' | lxc config set vbox raw.lxc -
Проверить:
$ lxc config edit vbox
  ......
  image.release: bionic
  raw.lxc: lxc.cgroup.devices.allow = c 10:53 rwm lxc.cgroup.devices.allow = c 10:54
    rwm lxc.cgroup.devices.allow = c 10:55 rwm
  .......
 $ lxc start vbox

$ lxc image import test-2019-11-12.tar.gz --alias test-backup
Образ, импортирован с снимком: f442e1c60b9c1353f3d665a61e67bb7c13d383fe65af530fbe7f482699233

$ lxc launch test-backup srv1c
$ lxc config device add srv1c hasp3 unix-char path=/dev/bus/usb/001/003 mode=0777
$ lxc config device add srv1c hasp4 unix-char path=/dev/bus/usb/001/004 mode=0777
$ lxc config device add srv1c aks2 unix-char path=/dev/aks/hasp/1-3 mode=0777
$ lxc config device add srv1c aks3 unix-char path=/dev/aks/hasp/1-4 mode=0777
#$ lxc config set srv1c security.privileged true
$ printf 'lxc.cgroup.devices.allow = c 198:* rwm' | lxc config set srv1c raw.lxc -

$ lxc config edit srv1c
$ lxc restart srv1c
$ lxc exec srv1c -- rm -rf /home/usr1cv8/.server1c-8.3.15.1700
$ lxc restart srv1c


Поскольку сервер рабочий настроим архивацию

Настройка Ubuntu 16.04, 18.04

$ sudo nano /etc/default/rsync

#RSYNC_ENABLE=false
RSYNC_ENABLE=true

Сохранить.


$ sudo nano /etc/rsyncd.conf

[backup]
# destination directory to copy

path = /home/user/archive
# hosts you allow to access

hosts allow = 192.168.0.0/255.255.255.0
hosts deny = *
list = true
uid = user
gid = user
read only = false

Сохранить.

#$ sudo mkdir -p  /home/user/archive
$ sudo systemctl enable rsync
$ sudo systemctl start rsync


Под windows 10 :


Можно сделать один скрипт и поставить в планировщик:

ping -n 1 -w 1000 192.168.0.5|Find "TTL=">nul
If %ErrorLevel%==0 (
CALL d:\Copy\rsync\rsync -avz  /cygdrive/D/Copy/Archiv 192.168.0.5::backup --progress
) Else (
Echo Offline
)

 $ sudo crontab -e
@reboot fstrim / -v

$ nano backup_lxd.sh

#!/usr/bin/env bash
set -ex

BACKUP_DIR=/home/user/archive/lxd/backup
HOSTS=$(lxc list -c n --format csv)
for HOST in ${HOSTS}

do
    BACKUP_NAME=${HOST}-$(date +"%Y-%m-%d")

    lxc snapshot ${HOST} auto-backup
    lxc publish ${HOST}/auto-backup --alias ${BACKUP_NAME}
    #lxc image export ${BACKUP_NAME} ${BACKUP_DIR}/${BACKUP_NAME}.tar.gz
    lxc image export ${BACKUP_NAME} ${BACKUP_DIR}/${BACKUP_NAME}
    lxc image delete ${BACKUP_NAME}
    lxc delete ${HOST}/auto-backup
done

Сохранить.

$ sh backup_lxd.sh

+ date +%Y-%m-%d
+ BACKUP_NAME=ud1804-2019-11-10
+ lxc snapshot ud1804 auto-backup
+ lxc publish ud1804/auto-backup --alias ud1804-2019-11-10
Контейнер публикуется с отпечатком: b900ce0db69f0a57afd52af682f8a47229b5ea8fcdfa2a566af2034a6f6766a2
+ lxc image export ud1804-2019-11-10 /home/user/backup/ud1804-2019-11-10.tar.gz
Image exported successfully!
+ lxc image delete ud1804-2019-11-10
+ lxc delete ud1804/auto-backup

Восстановление на другом компьютере:

$ lxc image import ud1804-2019-11-10.tar.gz.tar.gz --alias ud1804-backup
Образ, импортирован с снимком: b900ce0db69f0a57afd52af682f8a47229b5ea8fcdfa2a566af2034a6f6766a2
$ lxc launch ud1804-backup ud1804
#lxc image delete ud1804-backup

$ lxc info gitlab
$ lxc delete gitlab/auto-backup
$ lxc image list
$ lxc image delete gitlab-2019-12-06

среда, 4 декабря 2019 г.

вторник, 3 декабря 2019 г.

rsync-time-backup

Настройка Git-сервера в контейнере lxd

Установка GitLab в Ubuntu 18.04 
Как настроить Git-сервер на Linux
4.4 Git on the Server - Setting Up the Server
Linode:Install GitLab on Ubuntu 18.04
DO:Установка Git в Ubuntu 18.04 [Краткое руководство]
DO:Установка Git в Ubuntu 18.04

Запись А gitlab.examle.com host  в DNS домена example.com

$ lxc launch ubuntu:18.04 gitlab
$ lxc exec gitlab /bin/bash
# adduser user
# usermod -aG sudo user
# apt update
# apt upgrade
## apt install qemu-user-static -y
# apt install mc samba sudo ssh wget -y
# dpkg-reconfigure locales
## Выбираем ru_RU.UTF-8 ru_RU.UTF-8 UTF-8
# locale -a  
## timedatectl set-timezone Europe/Moscow
# dpkg-reconfigure tzdata
## apt install keyboard-configuration
# dpkg-reconfigure keyboard-configuration
# nano /etc/ssh/sshd_config
#PasswordAuthentication no
PasswordAuthentication yes
Сохранить.
# systemctl reload sshd
##apt install tasksel
## tasksel --list-tasks 
## tasksel install xubuntu-core
## apt install xrdp
## systemctl enable xrdp
## apt install x2goserver x2goserver-xsession
# reboot

Зайти по ssh

$ sudo apt install -y postfix
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
$ ip a

### Запись А gitlab.examle.com host  в DNS домена example.com, должна существовать,
### если указать "https" - будет попытка создать сертификат.
### предполагаем, что преобразованием https займется haproxy.
$ sudo EXTERNAL_URL=://gitlab.example.com" apt-get install gitlab-ee

http://gitlab
Ввести пароль для root не менее 8 символов
Зайти.

$ lxc list
| gitlab     | RUNNING | 192.168.0.221 (eth0) |      | PERSISTENT | 0         |

$ mkdir /home/user/setup-1c
$ cd /home/user/setup-1c
$ git init
Инициализирован пустой репозиторий Git в /home/user/setup-1c/.git/
$ git config user.name user
$ git config user.email "you@example.com"
$ git add README.md
$ git commit -am "Update README.md"
#$ git remote add origin http://192.168.0.221/user/setup-1c.git
$ git push -u origin master
=============================

user@lxd:~$ lxc delete u1804
user@lxd:~$ lxc copy u1804-cop u1804
user@lxd:~$ lxc start u1804
$ git clone http://192.168.0.221/user/setup-1c.git
$ cd setup-1c
$ sudo sh setup-1c.sh

Настройка почты с отправкой через yandex:
ещё

$ lxc exec gitlab bash
# nano /etc/gitlab/gitlab.rb
Добавить в конец
external_url 'http://gitlab'
gitlab_rails['gitlab_email_from'] = 'user@yandex.ru'
gitlab_rails['gitlab_email_display_name'] = 'Private GitLab'
gitlab_rails['gitlab_email_reply_to'] = 'user@yandex.ru'
gitlab_rails['gitlab_email_subject_suffix'] = ''
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yandex.ru"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "user@yandex.ru"
gitlab_rails['smtp_password'] = "password_user@yandex.ru"
gitlab_rails['smtp_domain'] = "yandex.ru"
#gitlab_rails['gitlab_email_from'] = 'user@yandex.ru'
#gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

Сохранить.


# reboot
# gitlab-rails console
Notify.test_email('mail@domen.com', 'Message Subject', 'Message Body').deliver_now

Дальнейшая настройка (если понадобиться)

$ lxc exec gitlab -- sudo --user ubuntu --login
$ sudo nano /etc/gitlab/gitlab.rb

external_url 'http://gitlab.example.com'
 
Сохранить.

$ sudo gitlab-ctl reconfigure
$ exit



   

PGConf.Сибирь 2019