Projekt

Allgemein

Profil

Aktionen

ERPNext14 » Historie » Revision 13

« Zurück | Revision 13/64 (Vergleich) | Weiter »
Jeremias Keihsler, 16.02.2023 16:04


ERPNext 14

Bitnami based on Debian 11

out of the box ERPNext is installed. This describes what else can/needs to be done:

convert VirtualBox-ova to be used with KVM

untar .ova

tar xvf bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami.ova

convert .vmdk to .qcow2 while showing 'progress'

qemu-img convert -p -f vmdk -O qcow2 \
  bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.vmdk \
  bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2

this is a sample virsh dumpxml with a bridged interface

<domain type="kvm" id="7">
  <name>bitnami_erpnext</name>
  <uuid>acf57964-b3d8-4148-9391-b4552a72a32c</uuid>
  <metadata>
    <libosinfo:libosinfo>
    <libosinfo:os id="http://debian.org/debian/11"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit="KiB">4194304</memory>
  <currentMemory unit="KiB">4194304</currentMemory>
  <vcpu placement="static">2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch="x86_64" machine="pc-i440fx-rhel7.0.0">hvm</type>
    <boot dev="hd"/>
    <bootmenu enable="yes"/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode="host-passthrough" check="none">
    <topology sockets="1" cores="1" threads="2"/>
  </cpu>
  <clock offset="utc">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/../libvirt/images/bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2"/>
      <backingStore/>
      <target dev="vdb" bus="virtio"/>
      <alias name="virtio-disk1"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x0b" function="0x0"/>
    </disk>
    <controller type="usb" index="0" model="ich9-ehci1">
      <alias name="usb"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x7"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci1">
      <alias name="usb"/>
      <master startport="0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0" multifunction="on"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci2">
      <alias name="usb"/>
      <master startport="2"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x1"/>
    </controller>
    <controller type="usb" index="0" model="ich9-uhci3">
      <alias name="usb"/>
      <master startport="4"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x2"/>
    </controller>
    <controller type="pci" index="0" model="pci-root">
      <alias name="pci.0"/>
    </controller>
    <controller type="virtio-serial" index="0">
      <alias name="virtio-serial0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>
    </controller>
    <controller type="scsi" index="0" model="virtio-scsi">
      <alias name="scsi0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x0a" function="0x0"/>
    </controller>
    <interface type="bridge">
      <mac address="52:54:00:29:00:87"/>
      <source bridge="br0"/>
      <target dev="vnet1"/>
      <model type="virtio"/>
      <alias name="net0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
    </interface>
    <serial type="pty">
      <source path="/dev/pts/9"/>
      <target type="isa-serial" port="0">
        <model name="isa-serial"/>
      </target>
      <alias name="serial0"/>
    </serial>
    <console type="pty" tty="/dev/pts/9">
      <source path="/dev/pts/9"/>
      <target type="serial" port="0"/>
      <alias name="serial0"/>
    </console>
    <channel type="unix">
      <source mode="bind" path="/var/lib/libvirt/qemu/channel/target/domain-7-bitnami_erpnext/org.qemu.guest_agent.0"/>
      <target type="virtio" name="org.qemu.guest_agent.0" state="disconnected"/>
      <alias name="channel0"/>
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
    </channel>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0" state="disconnected"/>
      <alias name="channel1"/>
      <address type="virtio-serial" controller="0" bus="0" port="2"/>
    </channel>
    <input type="tablet" bus="usb">
      <alias name="input0"/>
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2">
      <alias name="input1"/>
    </input>
    <input type="keyboard" bus="ps2">
      <alias name="input2"/>
    </input>
    <graphics type="spice" port="5901" autoport="yes" listen="127.0.0.1">
      <listen type="address" address="127.0.0.1"/>
    </graphics>
    <sound model="ich6">
      <alias name="sound0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
    </sound>
    <video>
      <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
      <alias name="video0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
    </video>
    <redirdev bus="usb" type="spicevmc">
      <alias name="redir0"/>
      <address type="usb" bus="0" port="2"/>
    </redirdev>
    <redirdev bus="usb" type="spicevmc">
      <alias name="redir1"/>
      <address type="usb" bus="0" port="3"/>
    </redirdev>
    <memballoon model="virtio">
      <alias name="balloon0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0"/>
    </memballoon>
    <rng model="virtio">
      <backend model="random">/dev/urandom</backend>
      <alias name="rng0"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x09" function="0x0"/>
    </rng>
  </devices>
  <seclabel type="dynamic" model="selinux" relabel="yes">
    <label>system_u:system_r:svirt_t:s0:c328,c377</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c328,c377</imagelabel>
  </seclabel>
  <seclabel type="dynamic" model="dac" relabel="yes">
    <label>+107:+107</label>
    <imagelabel>+107:+107</imagelabel>
  </seclabel>
</domain>

set static IP address

taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-static-address/

check link and current IPs

sudo ifconfig
cd /etc/systemd/network
sudo touch 25-wired.network

add following lines

[Match]
Name=enp0s3

[Network]
Address=HOST-IP-ADDRESS
Gateway=GATEWAY-IP-ADDRESS

restart service

sudo systemctl restart systemd-networkd.service

activate SSH-Server

taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh/

sudo rm -f /etc/ssh/sshd_not_to_be_run
sudo systemctl enable ssh
sudo systemctl start ssh

... password-based SSH auth (are you serious?)

maybe ok for testing ..
taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh-password/

edit /etc/ssh/sshd_config and add/modify the following line

  PasswordAuthentication yes

restart SSH server

  sudo /etc/init.d/ssh force-reload
  sudo /etc/init.d/ssh restart

modify keyboard layout

taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-keyboard/

  sudo apt-get install keyboard-configuration console-setup
  sudo dpkg-reconfigure keyboard-configuration
  sudo systemctl restart keyboard-setup

alias ll

for everyone .. taken from https://www.server-world.info/en/note?os=Debian_11&p=initial_conf&f=2

sudo vim /etc/profile.d/command_alias.sh
# create new file
# add alias you'd like to set
alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
source /etc/profile.d/command_alias.sh

Install the Wkhtmltopdf extension

taken from https://docs.bitnami.com/aws/apps/erpnext/configuration/install-wkhtmltopdf/

find /opt/bitnami/common/bin -name fc-* | sudo xargs -I {} mv {} {}.bak
sudo apt-get install zlib1g fontconfig libxrender1 libfreetype6 libxext6 libx11-6
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/X.Y.Z/wkhtmltox_X.Y.Z.PLATFORM.deb
sudo apt install -f ./wkhtmltox_X.Y.Z.PLATFORM.deb
sudo /opt/bitnami/ctlscript.sh restart

Troubleshooting

If you experience issues with display resolution on Linux platforms, they could be related to the xfonts-75dpi or xfonts-100dpi packages. Uninstall them by executing:

sudo dpkg --remove --force-depends xfonts-75dpi
sudo dpkg --remove --force-depends xfonts-100dpi

migrate ERPNext to new server

backup

cd /opt/bitnami/erpnext/frappe-bench
bench backup-all-sites

files are saved very deep

cd /opt/bitnami/erpnext/frappe-bench/sites/erpnext/private/backups/

restore

copy files to new server into /home/bitnami

gunzip yyyymmdd_hhmmss-erpnext-database.sql.gz

connect to MariaDB (password is the same as application-password)
taken from https://docs.bitnami.com/general/apps/erpnext/get-started/connect-mariadb/

mysql -u root -p
DROP DATABASE bitnami_erpnext;
\q

as of 2023-02-07 restore seems not to work following the instructions

cd /opt/bitnami/erpnext/frappe-bench/
bench restore /home/bitnami

vanilla install based on Ubuntu

backup and load into test-site

To create a staging site from a production site backup:

cd <frappe/erpnext Verzeichnis>
mkdir ~/backup/

bench --site prod.example.net set-maintenance-mode on
bench --site prod.example.net set-config pause_scheduler 1
bench --site prod.example.net backup --with-files --compress --backup-path ~/backup/ 
# notice: Database Public & Private from stdout
bench --site prod.example.net set-maintenance-mode off

restore into other Staging instance:

bench new-site staging.example.net
bench --site staging.example.net set-maintenance-mode on

bench --site staging.example.net restore ~/backup/YYYYMMDD_HHMMSS-prod.example.net-database.sql.gz
  --with-public-files  ~/backup/YYYYMMDD_HHMMSS-prod.example.net-files.tar.gz
  --with-private-files ~/backup/YYYYMMDD_HHMMSS-prod.example.net-private-files.tar.gz
  MySQL root password:

bench --site staging.example.net mute_emails true
bench --site staging.example.net set-maintenance-mode off
rm -r ~/backup/

Von Jeremias Keihsler vor fast 2 Jahren aktualisiert · 13 Revisionen