CSR Geomatics Server Setup » History » Version 4
  Giulio Di Anastasio, 03/05/2021 11:43 
  
| 1 | 3 | Giulio Di Anastasio | h1. %{color:BLUE}  CSR Geomatics Server Setup% | 
|---|---|---|---|
| 2 | 1 | Giulio Di Anastasio | |
| 3 | 1 | Giulio Di Anastasio | |
| 4 | 1 | Giulio Di Anastasio | A dedicated server has been setup in CSR, for hosting the software and database. | 
| 5 | 1 | Giulio Di Anastasio | |
| 6 | 1 | Giulio Di Anastasio | Here below, technical information about the setup. | 
| 7 | 1 | Giulio Di Anastasio | |
| 8 | 1 | Giulio Di Anastasio | |
| 9 | 1 | Giulio Di Anastasio | dream.csr.av (192.168.0.12) | 
| 10 | 1 | Giulio Di Anastasio | |
| 11 | 1 | Giulio Di Anastasio | - Debian 9 | 
| 12 | 1 | Giulio Di Anastasio | - Xen hypervisor | 
| 13 | 1 | Giulio Di Anastasio | - libvirt for the orchestration of VMs | 
| 14 | 1 | Giulio Di Anastasio | - management with ansible | 
| 15 | 1 | Giulio Di Anastasio | |
| 16 | 1 | Giulio Di Anastasio | |
| 17 | 3 | Giulio Di Anastasio | h2. %{color:BLUE}  Dom0% | 
| 18 | 1 | Giulio Di Anastasio | |
| 19 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Installation% | 
| 20 | 1 | Giulio Di Anastasio | |
| 21 | 1 | Giulio Di Anastasio | Found minor issues with the installation (eg. issues with HDDs, Dell EFI boot). | 
| 22 | 1 | Giulio Di Anastasio | This document starts from a working Debian Xen server. | 
| 23 | 1 | Giulio Di Anastasio | |
| 24 | 1 | Giulio Di Anastasio | -Installed on a mirror of 2*2TB drives with btrfs.- | 
| 25 | 1 | Giulio Di Anastasio | |
| 26 | 1 | Giulio Di Anastasio | Update (see #7156): re-installed the OS on /dev/sdc2, ext4, without RAID/LVM. | 
| 27 | 1 | Giulio Di Anastasio | |
| 28 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Storage for domUs% | 
| 29 | 1 | Giulio Di Anastasio | |
| 30 | 1 | Giulio Di Anastasio | A LVM dream.csr has been created for the domUs. | 
| 31 | 1 | Giulio Di Anastasio | |
| 32 | 1 | Giulio Di Anastasio | |
| 33 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Networking% | 
| 34 | 1 | Giulio Di Anastasio | |
| 35 | 1 | Giulio Di Anastasio | With systemd.networkd: bridge "br0" to the physical ethernet. | 
| 36 | 1 | Giulio Di Anastasio | |
| 37 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Create a VM% | 
| 38 | 1 | Giulio Di Anastasio | |
| 39 | 1 | Giulio Di Anastasio | Adjust the parameters from: | 
| 40 | 1 | Giulio Di Anastasio | |
| 41 | 1 | Giulio Di Anastasio | <pre> | 
| 42 | 1 | Giulio Di Anastasio | export vm_name=infra.csr.av | 
| 43 | 1 | Giulio Di Anastasio | export vm_ip_addr=172.16.0.3 | 
| 44 | 1 | Giulio Di Anastasio | export vm_password=foobar | 
| 45 | 1 | Giulio Di Anastasio | </pre> | 
| 46 | 1 | Giulio Di Anastasio | |
| 47 | 1 | Giulio Di Anastasio | Create the domU: | 
| 48 | 1 | Giulio Di Anastasio | |
| 49 | 1 | Giulio Di Anastasio | <pre> | 
| 50 | 1 | Giulio Di Anastasio | root@dream:~# xen-create-image --broadcast=172.16.0.255 --dist=stretch --fs=ext4 --gateway=172.16.0.1 --hostname ${vm_name} --ip=${vm_ip_addr} --lvm=dream.csr --maxmem=512M --memory=256M --mirror=http://ftp.de.debian.org/debian/ --netmask=255.255.255.0 --password=${vm_password} --size=10G --swap=1G --vcpus=1 --bridge=br0 | 
| 51 | 1 | Giulio Di Anastasio | </pre> | 
| 52 | 1 | Giulio Di Anastasio | |
| 53 | 1 | Giulio Di Anastasio | Note that IP address will be set in the VM, and the vm_ip_addr isn't actually used. | 
| 54 | 1 | Giulio Di Anastasio | |
| 55 | 3 | Giulio Di Anastasio | h2. %{color:BLUE}  DomUs% | 
| 56 | 1 | Giulio Di Anastasio | |
| 57 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Migrate XL to libvirt% | 
| 58 | 1 | Giulio Di Anastasio | |
| 59 | 1 | Giulio Di Anastasio | After creation using xen-create-image, migrate the definition of the domU to libvirt: | 
| 60 | 1 | Giulio Di Anastasio | |
| 61 | 1 | Giulio Di Anastasio | <pre> | 
| 62 | 1 | Giulio Di Anastasio | virsh -c xen:/// domxml-from-native xen-xm /etc/xen/${vm_name}.cfg > /tmp/${vm_name}.xml | 
| 63 | 1 | Giulio Di Anastasio | virsh define /tmp/${vm_name}.xml | 
| 64 | 1 | Giulio Di Anastasio | </pre> | 
| 65 | 1 | Giulio Di Anastasio | |
| 66 | 1 | Giulio Di Anastasio | |
| 67 | 1 | Giulio Di Anastasio | From this point onward, one can log out from the dom0's console and use virsh or "Virtual Machine Manager" from your computer to administer the VM, eg: | 
| 68 | 1 | Giulio Di Anastasio | |
| 69 | 1 | Giulio Di Anastasio | * Set "Auto start" on dom0 boot | 
| 70 | 1 | Giulio Di Anastasio | * Set memory limits, etc | 
| 71 | 1 | Giulio Di Anastasio | |
| 72 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Start the domU% | 
| 73 | 1 | Giulio Di Anastasio | |
| 74 | 1 | Giulio Di Anastasio | Use "Virtual Machine Manager" or the command: | 
| 75 | 1 | Giulio Di Anastasio | |
| 76 | 1 | Giulio Di Anastasio | <pre> | 
| 77 | 1 | Giulio Di Anastasio | virsh -c xen+ssh://root@dream.csr.av/ start ${vm_name} | 
| 78 | 1 | Giulio Di Anastasio | </pre> | 
| 79 | 1 | Giulio Di Anastasio | |
| 80 | 1 | Giulio Di Anastasio | |
| 81 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  To do in a libvirt shell% | 
| 82 | 1 | Giulio Di Anastasio | |
| 83 | 1 | Giulio Di Anastasio | Start a libvirt shell, with "Virtual Machine Manager" or with the command: | 
| 84 | 1 | Giulio Di Anastasio | |
| 85 | 1 | Giulio Di Anastasio | <pre> | 
| 86 | 1 | Giulio Di Anastasio | virsh -c xen+ssh://root@dream.csr.av/ console ${vm_name} | 
| 87 | 1 | Giulio Di Anastasio | </pre> | 
| 88 | 1 | Giulio Di Anastasio | |
| 89 | 1 | Giulio Di Anastasio | Log in as root in the libvirt console. | 
| 90 | 1 | Giulio Di Anastasio | |
| 91 | 1 | Giulio Di Anastasio | |
| 92 | 3 | Giulio Di Anastasio | h4. %{color:BLUE}  Network config% | 
| 93 | 1 | Giulio Di Anastasio | |
| 94 | 1 | Giulio Di Anastasio | Add @/etc/systemd/network/50-wired.network@ (adjust the IP): | 
| 95 | 1 | Giulio Di Anastasio | |
| 96 | 1 | Giulio Di Anastasio | <pre> | 
| 97 | 1 | Giulio Di Anastasio | [Match] | 
| 98 | 1 | Giulio Di Anastasio | Name=eth0 | 
| 99 | 1 | Giulio Di Anastasio | |
| 100 | 1 | Giulio Di Anastasio | [Network] | 
| 101 | 1 | Giulio Di Anastasio | Address=192.168.0.14/24 | 
| 102 | 1 | Giulio Di Anastasio | Gateway=192.168.0.10 | 
| 103 | 1 | Giulio Di Anastasio | DNS=192.168.0.10 | 
| 104 | 1 | Giulio Di Anastasio | </pre> | 
| 105 | 1 | Giulio Di Anastasio | |
| 106 | 1 | Giulio Di Anastasio | Then: | 
| 107 | 1 | Giulio Di Anastasio | <pre> | 
| 108 | 1 | Giulio Di Anastasio | systemctl enable --now systemd-networkd.socket | 
| 109 | 1 | Giulio Di Anastasio | systemctl enable --now systemd-networkd.service | 
| 110 | 1 | Giulio Di Anastasio | systemctl disable --now networking.service | 
| 111 | 1 | Giulio Di Anastasio | </pre> | 
| 112 | 1 | Giulio Di Anastasio | |
| 113 | 3 | Giulio Di Anastasio | h4. %{color:BLUE}  Post-install ssh config% | 
| 114 | 1 | Giulio Di Anastasio | |
| 115 | 1 | Giulio Di Anastasio | Allow ssh root login with password in @/etc/ssh/sshd_config@: | 
| 116 | 1 | Giulio Di Anastasio | |
| 117 | 1 | Giulio Di Anastasio | <pre> | 
| 118 | 1 | Giulio Di Anastasio | sed -i -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config | 
| 119 | 1 | Giulio Di Anastasio | systemctl restart ssh.service | 
| 120 | 1 | Giulio Di Anastasio | </pre> | 
| 121 | 1 | Giulio Di Anastasio | |
| 122 | 1 | Giulio Di Anastasio | From this point onwards, one can close the console session opened via @libvirt@. | 
| 123 | 1 | Giulio Di Anastasio | |
| 124 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  DNS% | 
| 125 | 1 | Giulio Di Anastasio | |
| 126 | 1 | Giulio Di Anastasio | Log in to the local DNS server with: | 
| 127 | 1 | Giulio Di Anastasio | |
| 128 | 1 | Giulio Di Anastasio | <pre> | 
| 129 | 1 | Giulio Di Anastasio | ssh root@infra.csr.av | 
| 130 | 1 | Giulio Di Anastasio | </pre> | 
| 131 | 1 | Giulio Di Anastasio | |
| 132 | 1 | Giulio Di Anastasio | Update the 2 files in @/etc/bind/zones@ (@zones/db.csr.av@ @zones/db.192.168.0@) and reload the DNS with: | 
| 133 | 1 | Giulio Di Anastasio | <pre> | 
| 134 | 1 | Giulio Di Anastasio | rndc reload | 
| 135 | 1 | Giulio Di Anastasio | </pre> | 
| 136 | 1 | Giulio Di Anastasio | |
| 137 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  DNS% | 
| 138 | 1 | Giulio Di Anastasio | |
| 139 | 1 | Giulio Di Anastasio | Log in to the local DNS server, *update the 2 files in @/etc/bind9/zones@*, and run: | 
| 140 | 1 | Giulio Di Anastasio | <pre> | 
| 141 | 1 | Giulio Di Anastasio | rndc reload | 
| 142 | 1 | Giulio Di Anastasio | </pre> | 
| 143 | 1 | Giulio Di Anastasio | |
| 144 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Allow yourself to log in easily with your ssh key% | 
| 145 | 1 | Giulio Di Anastasio | |
| 146 | 1 | Giulio Di Anastasio | Copy your ssh key to the domU: run from your own computer: | 
| 147 | 1 | Giulio Di Anastasio | <pre> | 
| 148 | 1 | Giulio Di Anastasio | ssh-copy-id root@${ip_addr} | 
| 149 | 1 | Giulio Di Anastasio | </pre> | 
| 150 | 1 | Giulio Di Anastasio | |
| 151 | 1 | Giulio Di Anastasio | |
| 152 | 3 | Giulio Di Anastasio | h2. %{color:BLUE}  Ansible% | 
| 153 | 1 | Giulio Di Anastasio | |
| 154 | 1 | Giulio Di Anastasio | Using the Ansible project developed in Blue Light: https://redmine.bluelightav.org/projects/ansible | 
| 155 | 1 | Giulio Di Anastasio | |
| 156 | 1 | Giulio Di Anastasio | h3. Prepare the host | 
| 157 | 1 | Giulio Di Anastasio | |
| 158 | 1 | Giulio Di Anastasio | Install Python | 
| 159 | 1 | Giulio Di Anastasio | |
| 160 | 1 | Giulio Di Anastasio | <pre> | 
| 161 | 1 | Giulio Di Anastasio | apt install -y python | 
| 162 | 1 | Giulio Di Anastasio | </pre> | 
| 163 | 1 | Giulio Di Anastasio | |
| 164 | 1 | Giulio Di Anastasio | |
| 165 | 4 | Giulio Di Anastasio | h1. %{color:BLUE}  Database% | 
| 166 | 1 | Giulio Di Anastasio | |
| 167 | 1 | Giulio Di Anastasio | The Postgis database runs on its specific domU (gisdb.csr.av, 192.168.0.18). | 
| 168 | 1 | Giulio Di Anastasio | |
| 169 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Installation% | 
| 170 | 1 | Giulio Di Anastasio | |
| 171 | 1 | Giulio Di Anastasio | After installing the Postgis package (eg. assign the "postgis" Ansible's role), follow up to [[Db-support]] | 
| 172 | 1 | Giulio Di Anastasio | |
| 173 | 1 | Giulio Di Anastasio | |
| 174 | 3 | Giulio Di Anastasio | h2. %{color:BLUE}  Jupyter% | 
| 175 | 1 | Giulio Di Anastasio | |
| 176 | 1 | Giulio Di Anastasio | The Jupyter server runs on its specific domU (jupyter.csr.av, 192.168.0.19). | 
| 177 | 1 | Giulio Di Anastasio | |
| 178 | 3 | Giulio Di Anastasio | h3. %{color:BLUE}  Installation% | 
| 179 | 1 | Giulio Di Anastasio | |
| 180 | 1 | Giulio Di Anastasio | See #6990 . |