Update documentation to reflect current infrastructure

This commit is contained in:
2023-04-26 16:35:47 +02:00
parent 200a58bf56
commit 284b636c55
22 changed files with 55 additions and 1003 deletions
+1 -3
View File
@@ -29,9 +29,7 @@ parts:
- file: infrastructure-guide/boot_server
- file: infrastructure-guide/sysdb_server
- file: infrastructure-guide/puppet01
- file: infrastructure-guide/repo00
- file: infrastructure-guide/repo01
- file: infrastructure-guide/reposync
- file: infrastructure-guide/repo_server
- file: infrastructure-guide/lxweb00
- file: infrastructure-guide/login
- file: infrastructure-guide/influx00
+1 -1
View File
@@ -29,7 +29,7 @@ use the internal one.
Source Destination (internal) Destination (external) Ports Purpose
------- ----------------------- ---------------------- ------------- --------------------
any puppet01 puppet01 8080, 8140 Puppet
any repo00 repo00 80, 443 Software Packages
any repos.psi.ch repos.psi.ch 80, 443 Software Packages
======= ======================= ====================== ============= ====================
@@ -5,7 +5,7 @@ participant "BIOS Node\n(legacy boot)" as bootnode
participant "QIP DHCP" as dhcp
participant "boot.psi.ch" as pxeserver
participant "sysdb.psi.ch" as sysdb
participant "repo00.psi.ch" as reposerver
participant "repos.psi.ch" as reposerver
admin -> bootnode : boots up
@@ -5,7 +5,7 @@ participant "UEFI Node" as bootnode
participant "QIP DHCP" as dhcp
participant "boot.psi.ch" as pxeserver
participant "sysdb.psi.ch" as sysdb
participant "repo01.psi.ch" as reposerver
participant "repos.psi.ch" as reposerver
admin -> bootnode : boots up
+3 -2
View File
@@ -17,11 +17,12 @@ other for production, with the following hostnames:
+--------------------+----------------+-----------------+
| Role | testing host | production host |
+====================+================+=================+
| boot server | - | boot.psi.ch |
| sysdb server | - | sysdb.psi.ch |
+--------------------+----------------+-----------------+
| puppet server | puppet00-test | puppet01 |
+--------------------+----------------+-----------------+
| repository server | repo00-test | repo00 |
| repository server | - | repos.psi.ch |
+--------------------+----------------+-----------------+
The Sysdb Server
@@ -49,7 +50,7 @@ The service that provides clones of different repositories (RHEL,
Puppetlabs, Google Chrome) plus some internally developed ones for
specific products (eg. GPFS).
You can reach the production one at: `<http://repo00.psi.ch/el7/>`_.
You can reach the production one at: `<https://repos.psi.ch/rhel7/>`_.
Deployment of an infrastructure server
======================================
+8 -8
View File
@@ -12,16 +12,16 @@ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/in
```
[root@repo01 tmp]# cd /tmp
[root@repo01 tmp]# curl -OL http://repos.psi.ch/rhel9/iso/rhel-baseos-9.1-x86_64-dvd/BaseOS/Packages/shim-x64-15.6-1.el9.x86_64.rpm
[root@ tmp]# cd /tmp
[root@ tmp]# curl -OL http://repos.psi.ch/rhel9/iso/rhel-baseos-9.1-x86_64-dvd/BaseOS/Packages/shim-x64-15.6-1.el9.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 471k 100 471k 0 0 92.0M 0 --:--:-- --:--:-- --:--:-- 92.0M
[root@repo01 tmp]# curl -LO http://repos.psi.ch/rhel9/iso/rhel-baseos-9.1-x86_64-dvd/BaseOS/Packages/grub2-efi-x64-2.06-46.el9.x86_64.rpm
[root@lx-repos-01 tmp]# curl -LO http://repos.psi.ch/rhel9/iso/rhel-baseos-9.1-x86_64-dvd/BaseOS/Packages/grub2-efi-x64-2.06-46.el9.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1333k 100 1333k 0 0 8550k 0 --:--:-- --:--:-- --:--:-- 8550k
[root@repo01 tmp]# rpm2cpio shim-x64-15.6-1.el9.x86_64.rpm | cpio -dimv
[root@ tmp]# rpm2cpio shim-x64-15.6-1.el9.x86_64.rpm | cpio -dimv
./boot/efi/EFI/BOOT/BOOTX64.EFI
./boot/efi/EFI/BOOT/fbx64.efi
./boot/efi/EFI/redhat/BOOTX64.CSV
@@ -30,7 +30,7 @@ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/in
./boot/efi/EFI/redhat/shimx64-redhat.efi
./boot/efi/EFI/redhat/shimx64.efi
9232 blocks
[root@repo01 tmp]# rpm2cpio grub2-efi-x64-2.06-46.el9.x86_64.rpm | cpio -dimv
[root@ tmp]# rpm2cpio grub2-efi-x64-2.06-46.el9.x86_64.rpm | cpio -dimv
./boot/efi/EFI/redhat/grubx64.efi
./boot/grub2/fonts
./boot/grub2/fonts/unicode.pf2
@@ -40,9 +40,9 @@ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/in
./etc/grub2-efi.cfg
./etc/grub2.cfg
9612 blocks
[root@repo01 tmp]# ls boot/efi/EFI/redhat/
[root@ tmp]# ls boot/efi/EFI/redhat/
BOOTX64.CSV grubx64.efi mmx64.efi shim.efi shimx64.efi shimx64-redhat.efi
[root@repo01 tmp]# ls -la boot/efi/EFI/redhat/
[root@ tmp]# ls -la boot/efi/EFI/redhat/
total 6088
drwxr-xr-x. 2 root root 122 Mar 1 16:16 .
drwxr-xr-x. 4 root root 32 Mar 1 16:16 ..
@@ -52,7 +52,7 @@ drwxr-xr-x. 4 root root 32 Mar 1 16:16 ..
-rwx------. 1 root root 946736 Jun 7 2022 shim.efi
-rwx------. 1 root root 946736 Jun 7 2022 shimx64.efi
-rwx------. 1 root root 938808 Jun 7 2022 shimx64-redhat.efi
[root@repo01 tmp]#
[root@ tmp]#
```
+1 -1
View File
@@ -23,7 +23,7 @@ Setting up bob
The `bob` tool is already set up on `lxsup00.psi.ch`.
You might connect with `ssh` and use it from there.
Altenatively you many have on your workstation a local copy of `bob`. This can be done by installing the RPM from the pli-misc repository - https://repo00.psi.ch/el7/manual/pli-misc/
Altenatively you many have on your workstation a local copy of `bob`. This can be done by installing the RPM from the pli-misc repository - https://repos.psi.ch/rhel7/latest/pli-misc/
You might need to set a `PSI_BOB_USER` environment variable (`export PSI_BOB_USER=<you-name-it>`) or use the option `--user` if your local user is different from
the one on sysdb.
+2 -2
View File
@@ -38,7 +38,7 @@ Description of the package repository.
URL where the repository is available from, e.g.::
https://repo01.psi.ch/el8/tags/$pli_repo_tag/epel/
https://repos.psi.ch/rhel8/tags/$pli_repo_tag/epel/
``gpgkey``
@@ -46,7 +46,7 @@ URL where the repository is available from, e.g.::
URL or file path where the signing GPG key is available from, e.g.::
https://repo01.psi.ch/el8/keys/RPM-GPG-KEY-EPEL-8
https://repos.psi.ch/rhel8/keys/RPM-GPG-KEY-EPEL-8
``gpgcheck``
@@ -35,8 +35,8 @@ Example::
rpm_repos::repo::epel_rhel8:
name: 'epel'
descr: "Extra Packages for Enterprise Linux 8"
baseurl: 'https://repo01.psi.ch/el8/tags/$pli_repo_tag/epel/'
gpgkey: 'https://repo01.psi.ch/el8/keys/RPM-GPG-KEY-EPEL-8'
baseurl: 'https://repos.psi.ch/rhel8/tags/$pli_repo_tag/epel/'
gpgkey: 'https://repos.psi.ch/rhel8/keys/epel.gpg'
disable: false
gpgcheck: true
osversion: 8
@@ -46,7 +46,7 @@ Example::
rpm_repos::repo::epel_rhel7:
name: 'epel'
descr: "Extra Packages for Enterprise Linux 7"
baseurl: 'https://repo00.psi.ch/el7/tags/$pli_repo_tag/epel/'
baseurl: 'https://repos.psi.ch/rhel7/tags/$pli_repo_tag/epel/'
disable: false
gpgcheck: false
osversion: 7
+1 -2
View File
@@ -58,8 +58,7 @@ We maintain an internal mirror for every repository that we use, or at least a
local repository containing the specific packages. We never point ``yum.conf``
(or any other package manager) to an external repository directly.
The repository server is ``repo00.psi.ch``, and there is a corresponding test
system, ``repo00-test.psi.ch``.
The repository server is ``repos.psi.ch``.
Currently we maintain the following repositories:
+1
View File
@@ -0,0 +1 @@
# Boot Server
@@ -9,9 +9,7 @@ __Core Infrastructure:__
* [puppet01](puppet01) - puppet.psi.ch - 129.129.160.118 - Runs the puppet server for the RHEL7 infra
* [repo00](repo00) - 129.129.160.212 - RPM/Yum repository server for RHEL7
* [repo01](repo01) - 129.129.190.190 - RPM/Yum repository server for RHEL8
* [repos.psi.ch](repo_server) - RPM/Yum repository server for RHEL7/8/...
* [lxweb00](lxweb00) - http://linux.web.psi.ch - 129.129.190.46 - Exports further repositories from AFS
@@ -40,7 +38,7 @@ __Enduser Systems__
## Metrics
* [Overview Infrastructure](https://metrics.psi.ch/d/1SL13Nxmz/gfa-linux-tabular?orgId=1&from=now-6h&to=now&refresh=30s&var-env=telegraf_pli&var-host=influx00.psi.ch&var-host=lxweb00.psi.ch&var-host=metrics00.psi.ch&var-host=puppet01.psi.ch&var-host=repo00.psi.ch&var-host=reposync.psi.ch)
* [Overview Infrastructure](https://metrics.psi.ch/d/1SL13Nxmz/gfa-linux-tabular?orgId=1&from=now-6h&to=now&refresh=30s&var-env=telegraf_lx&var-host=influx00.psi.ch&var-host=lx-boot-01.psi.ch&var-host=lx-puppet-01.psi.ch&var-host=lx-repos-01.psi.ch&var-host=lx-sysdb-01.psi.ch&var-host=lxweb00.psi.ch&var-host=metrics00.psi.ch&var-host=puppet01.psi.ch)
# Procedures
+2 -8
View File
@@ -1,12 +1,6 @@
**Adding a new RHEL version to the RHEL7 install mechanism**
Download the iso image on repo00 from https://id-sat-prd.ethz.ch/pub/isos/
```
[root@repo00 ~]# cd /var/www/html/iso/
[root@repo00 iso]# wget https://id-sat-prd.ethz.ch/pub/isos/7Server/rhel-server-7.9-x86_64-dvd.iso
[root@repo00 iso]# systemctl restart pli-mount-iso-images.service
```
Download the iso image on repos.psi.ch from https://id-sat-prd-02.ethz.ch/pub/isos/ and add it to the /packages/rhel[7/8]/iso directory
The service restart mounts the iso as a loop device into a directory of the same name.
@@ -24,4 +18,4 @@ Once the change is committed, the changes have to be pulled on sysdb.psi.ch:
[root@sysdb ~]# systemctl restart httpd
```
The changes only come live after a restart of the httpd.
The changes only come live after a restart of the httpd.
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 80 KiB

-19
View File
@@ -1,19 +0,0 @@
# boot.psi.ch
This server hosts the tftp service (port 69) used for pxe booting.
# Important
For any changes in the pxe config settings there might be a delay of 30 seconds before the clients see the changes!
# pxelinux.cfg directory
(/afs/psi.ch/service/linux/tftpboot/pxelinux.cfg /tftpboot/pxelinux.cfg)
There are several syntax variants, which can be used for specific pxelinux configuration files. It can do hostnames, ip addresses, hexa encoded expressions of either an IP or a subnet, partial or full MACs. etc.. For details see: https://wiki.syslinux.org/wiki/index.php?title=PXELINUX
# grub.cfg files
(/afs/psi.ch/service/linux/tftpboot/grub.cfg* /tftpboot/grub.cfg*)
Beside the default `grub.cfg` there can similar to `pxelinux` a host or network specific `grub` configuration files.
For details see the [Grub Manual](https://www.gnu.org/software/grub/manual/grub/grub.html#Network), but note that the MAC address documentation is wrong: smiliar as for `pxelinux` the MAC address must be prepended with `01-` to denote the network hardware type Ethernet.
-125
View File
@@ -1,125 +0,0 @@
# repo00
This machine is a RHEL7 system **not** under Puppet control. This machine has no AFS dependencies.
The basic service provided by this system is: httpd
This machine acts as a mirror for the RHEL7 iso images.
The installer iso images are downloaded from https://id-sat-prd.ethz.ch/pub/isos/ and put into /var/www/html/iso manually
The iso images in `/var/www/html/iso` then (automatically) mounted as loop devices by the `pli-mount-iso-images.service`. This is an enabled service and it runs once on system boot automatically. Otherwise changes are not monitored, if one puts an iso there and wants it mounted, a manual restart of the service is required for anything to happen.
```
[root@repo00 ~]# df -kh | grep /var/www
/dev/mapper/vg_repo-repofiles 1.4T 1003G 373G 73% /var/www/html
/dev/loop2 7.1G 7.1G 0 100% /var/www/html/iso/HP.SPP.2020.03
/dev/loop3 903M 903M 0 100% /var/www/html/iso/IP330.2019_0207.248
/dev/loop4 12M 12M 0 100% /var/www/html/iso/Memtest86-7.5
/dev/loop6 158M 158M 0 100% /var/www/html/iso/MLNX_OFED_LINUX-4.1-1.0.2.0-rhel7.4-x86_64
/dev/loop7 163M 163M 0 100% /var/www/html/iso/MLNX_OFED_LINUX-4.2-1.0.0.0-rhel7.4-x86_64
/dev/loop9 163M 163M 0 100% /var/www/html/iso/MLNX_OFED_LINUX-4.2-1.2.0.0-rhel7.4-x86_64
/dev/loop10 275M 275M 0 100% /var/www/html/iso/MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.6-x86_64
/dev/loop11 275M 275M 0 100% /var/www/html/iso/MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.7-x86_64
/dev/loop12 5.5G 5.5G 0 100% /var/www/html/iso/P03093_001_spp-Gen8.1-SPPGen81.4
/dev/loop13 5.7G 5.7G 0 100% /var/www/html/iso/P14481_001_spp-2019.03.0-SPP2019030.2019_0206.85
/dev/loop14 5.8G 5.8G 0 100% /var/www/html/iso/P19473_001_spp-2019.09.0-SPP2019090.2019_0905.39
/dev/loop15 7.0G 7.0G 0 100% /var/www/html/iso/P26228_001_spp-2019.12.0-SPP2019120.2019_1209.4
/dev/loop17 7.9G 7.9G 0 100% /var/www/html/iso/rhel-8.2-x86_64-dvd
/dev/loop18 8.9G 8.9G 0 100% /var/www/html/iso/rhel-8.3-x86_64-dvd
/dev/loop19 3.8G 3.8G 0 100% /var/www/html/iso/rhel-server-7.4-x86_64-dvd
/dev/loop20 4.4G 4.4G 0 100% /var/www/html/iso/rhel-server-7.5-x86_64-dvd
/dev/loop21 4.2G 4.2G 0 100% /var/www/html/iso/rhel-server-7.6-x86_64-dvd
/dev/loop22 4.2G 4.2G 0 100% /var/www/html/iso/rhel-server-7.7-x86_64-dvd
/dev/loop23 4.3G 4.3G 0 100% /var/www/html/iso/rhel-server-7.8-x86_64-dvd
/dev/loop24 4.3G 4.3G 0 100% /var/www/html/iso/rhel-server-7.9-x86_64-dvd
```
The `pli-repo-mirror.timer` runs a daily sync (at 21:30), which pulls the repos into `/var/www/html/el7/sources` . The name is misleading, these are actually all the latest repos.
From the above, a weekly snapshot (at Sun 23:30) is taken by the `pli-repo-snapshot.timer`.
The `/opt/pli/libexec/pli-repo-zoom.sh` is run via the `pli-repo-zoom.timer` timer, it maintains the zoom repo at /var/www/html/zoom/
The `/opt/pli/libexec/pli-repo-yfs` script is run via the `pli-repo-yfs.timer` timer. It syncs the auristor repo and apparently also create tags.
The scripts and files in /opt/pli (as well as a copy of the systemd files) can be found in this repository:
https://git.psi.ch/linux-infra/repo00_pli-scripts
Provided http services:
```
[root@repo00 ~]# netstat -tulnp | grep http
tcp6 0 0 :::80 :::* LISTEN 11278/httpd
tcp6 0 0 :::443 :::* LISTEN 11278/httpd
[root@repo00 ~]#
```
The httpd configuration can be found in /etc/httpd/conf.d
```
[root@repo00 ~]# ls -l /etc/httpd/conf.d/
total 12
-rw-r--r--. 1 root root 694 Apr 9 2019 25-repo00.psi.ch_non_ssl.conf
-rw-r--r--. 1 root root 1131 Apr 9 2019 25-repo00.psi.ch_ssl.conf
-rw-r--r--. 1 root root 366 Oct 9 2020 README
[root@repo00 ~]#
```
The ssh certificate is located in `/etc/pki/tls/`
# Directory Structure / Services
![](repo00_overview.drawio.svg)
# Questions / TODO
- I added the /opt/pli directory under git control, the repo is https://git.psi.ch/linux-infra/repo00_pli-scripts. Ideally the pli-* service files in /etc/systemd/system should be replaced with links to the /opt/pli/systemd/pli* files. Could you please do that and test whether things still work.
- SELinux is enforcing, this will not work.
- Can you explain a little bit more the structure of the /var/www/html/ directory (what is where, who is responsible for certain directories, what are they needed for, ...). The content of the web directory:
```
[root@repo00 ~]# ls -la /var/www/html/
total 56
drwxr-xr-x. 11 root root 4096 Mar 29 11:32 .
drwxr-xr-x. 4 root root 31 Oct 9 2020 ..
drwxr-xr-x. 7 root root 71 Apr 12 2019 el7
drwxr-xr-x. 3 root root 16 Sep 21 2020 fcos
drwxr-xr-x. 3 root root 4096 Apr 24 2020 HP.FW.RPMs
drwxr-xr-x. 23 root root 4096 Apr 12 14:27 iso
-rw-r--r--. 1 root root 8605 Jun 11 2019 lxdev00.ks
-rw-r--r--. 1 root root 8604 Jun 13 2019 lxdev01.ks
drwxr-xr-x. 5 root root 4096 Oct 30 2018 mt86
drwxr-xr-x. 2 root root 87 Aug 31 2020 ppc
drwxr-xr-x. 5 root root 69 Apr 24 2020 rhcos
-rw-r--r--. 1 root root 356 Feb 18 13:58 rhel7_hashes.txt
-rw-r--r--. 1 root root 211 Nov 27 2018 rhel8.ipxe
drwxr-xr-x. 25 root root 4096 Nov 21 2019 yum
drwxr-xr-x. 3 root root 4096 Apr 12 23:23 zoom
```
* el7 - where the automated mirroring and snapshotting is done
* iso - where the images are placed and mounted
* zoom - zoom repo
The rest were put there by hand. Much of it is probably not needed, but wouldn't know who needed them.
- Is there any additional documentation on how this system was set up? Where can I find this? If not, could you add here some more details which packages and configs are important (beside the /opt/pli scripts/services)
- I know of no further documentation and it was set up by Kai, years ago. It would take quite a bit of trial and error to reproduce.
- Is the mentiond httpd config everything that is needed, who is taking care of this certificate, how is it installed? how is the expiration monitored?
- I don't think anything further is needed. The cert is requested from SWITCH and placed here manually. It is not monitored. The owner/admin of this server must take care of this.
- Could you replace the files in /etc/httpd/conf.d/25* with a link to /opt/pli/httpd/25* and see whether things still work (this way also the httpd config would be versioned).
- No, SELinux.
- Who belongs this repo? https://repo00.psi.ch/mt86/ (I guess mt86 is a person short code - unfortunately I cannot find this code in the phonebook)
- It's memory test for x86 systems, not a person at PSI.
@@ -1,629 +0,0 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="722px" height="1151px" viewBox="-0.5 -0.5 722 1151" content="&lt;mxfile&gt;&lt;diagram id=&quot;YoGKqzShSu5ctwl8dmzY&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<rect x="101" y="40" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 102.39 80 L 112.08 57.72 C 112.72 56.44 114.33 55.47 115.65 55.44 L 150.5 55.44 C 151.68 55.49 153.09 56.75 152.17 58.78 L 143.46 80 Z M 101 77.89 L 101 48.38 C 101 46.73 102.48 45.61 103.68 45.61 L 125.43 45.61 L 128.5 41.41 C 128.93 40.85 129.88 40.03 130.98 40 L 144.17 40 C 145.59 40 146.94 41.22 146.94 42.75 L 146.94 53.33 L 115.72 53.33 C 113.7 53.33 111.41 54.65 110.35 56.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 87px; margin-left: 127px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
el7
</div>
</div>
</div>
</foreignObject>
<text x="127" y="99" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
el7
</text>
</switch>
</g>
<rect x="91" y="1080" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 92.39 1120 L 102.08 1097.72 C 102.72 1096.44 104.33 1095.47 105.65 1095.44 L 140.5 1095.44 C 141.68 1095.49 143.09 1096.75 142.17 1098.78 L 133.46 1120 Z M 91 1117.89 L 91 1088.38 C 91 1086.73 92.48 1085.61 93.68 1085.61 L 115.43 1085.61 L 118.5 1081.41 C 118.93 1080.85 119.88 1080.03 120.98 1080 L 134.17 1080 C 135.59 1080 136.94 1081.22 136.94 1082.75 L 136.94 1093.33 L 105.72 1093.33 C 103.7 1093.33 101.41 1094.65 100.35 1096.59 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1127px; margin-left: 117px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
zoom
</div>
</div>
</div>
</foreignObject>
<text x="117" y="1139" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
zoom
</text>
</switch>
</g>
<rect x="91" y="880" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 92.39 920 L 102.08 897.72 C 102.72 896.44 104.33 895.47 105.65 895.44 L 140.5 895.44 C 141.68 895.49 143.09 896.75 142.17 898.78 L 133.46 920 Z M 91 917.89 L 91 888.38 C 91 886.73 92.48 885.61 93.68 885.61 L 115.43 885.61 L 118.5 881.41 C 118.93 880.85 119.88 880.03 120.98 880 L 134.17 880 C 135.59 880 136.94 881.22 136.94 882.75 L 136.94 893.33 L 105.72 893.33 C 103.7 893.33 101.41 894.65 100.35 896.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 927px; margin-left: 117px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
iso
</div>
</div>
</div>
</foreignObject>
<text x="117" y="939" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
iso
</text>
</switch>
</g>
<rect x="171" y="987" width="49.49" height="38" fill="none" stroke="none" pointer-events="all"/>
<path d="M 172.32 1025 L 181.53 1003.84 C 182.14 1002.62 183.66 1001.69 184.92 1001.67 L 218.03 1001.67 C 219.15 1001.71 220.49 1002.91 219.62 1004.84 L 211.34 1025 Z M 171 1023 L 171 994.96 C 171 993.39 172.4 992.33 173.55 992.33 L 194.21 992.33 L 197.12 988.34 C 197.54 987.81 198.44 987.03 199.49 987 L 212.02 987 C 213.37 987 214.64 988.16 214.64 989.61 L 214.64 999.67 L 184.98 999.67 C 183.06 999.67 180.89 1000.92 179.88 1002.76 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1032px; margin-left: 196px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
xxx
</div>
</div>
</div>
</foreignObject>
<text x="196" y="1044" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xxx
</text>
</switch>
</g>
<rect x="178.72" y="920" width="34.04" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 178.72 960 L 178.72 920 L 202.48 920 L 212.76 930.16 L 212.76 960 Z M 180.65 958.1 L 210.83 958.1 L 210.83 932.07 L 201.2 932.07 L 201.2 921.91 L 180.65 921.91 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 967px; margin-left: 196px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
xxx.iso
</div>
</div>
</div>
</foreignObject>
<text x="196" y="979" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xxx.iso
</text>
</switch>
</g>
<path d="M 229 940 L 253.7 963.16 Q 261 970 254.72 977.78 L 232.72 1005.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 229.42 1009.13 L 231.09 1001.48 L 232.72 1005.04 L 236.54 1005.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="311" y="950" width="26.54" height="30" fill="none" stroke="none" pointer-events="all"/>
<path d="M 324.27 964.11 L 312.04 957.05 L 324.27 950 L 336.45 957.05 Z M 324.92 980 L 324.92 965.32 L 337.54 958.05 L 337.54 972.73 Z M 323.62 979.99 L 311 972.73 L 311 958.13 L 323.62 965.41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 987px; margin-left: 324px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 11px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-align: center ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(255 , 255 , 255) ; display: inline ; float: none">
pli-mount-iso-images.service
<br/>
[on system/manual (re)start]
<br/>
</span>
</div>
</div>
</div>
</foreignObject>
<text x="324" y="999" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
pli-...
</text>
</switch>
</g>
<rect x="151" y="1080" width="130" height="40" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 1100px; margin-left: 152px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
yum repo, definitely wrong place !!!
</div>
</div>
</div>
</foreignObject>
<text x="216" y="1104" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
yum repo, definitely...
</text>
</switch>
</g>
<rect x="311" y="1085" width="26.54" height="30" fill="none" stroke="none" pointer-events="all"/>
<path d="M 324.27 1099.11 L 312.04 1092.05 L 324.27 1085 L 336.45 1092.05 Z M 324.92 1115 L 324.92 1100.32 L 337.54 1093.05 L 337.54 1107.73 Z M 323.62 1114.99 L 311 1107.73 L 311 1093.13 L 323.62 1100.41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1122px; margin-left: 324px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="text-align: center ; text-indent: 0px ; display: inline ; float: none">
pli-repo-zoom.service
<br/>
[23:23
</span>
]
</div>
</div>
</div>
</foreignObject>
<text x="324" y="1134" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
pli-...
</text>
</switch>
</g>
<rect x="178.4" y="80" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 179.79 120 L 189.48 97.72 C 190.12 96.44 191.73 95.47 193.05 95.44 L 227.9 95.44 C 229.08 95.49 230.49 96.75 229.57 98.78 L 220.86 120 Z M 178.4 117.89 L 178.4 88.38 C 178.4 86.73 179.88 85.61 181.08 85.61 L 202.83 85.61 L 205.9 81.41 C 206.33 80.85 207.28 80.03 208.38 80 L 221.57 80 C 222.99 80 224.34 81.22 224.34 82.75 L 224.34 93.33 L 193.12 93.33 C 191.1 93.33 188.81 94.65 187.75 96.59 Z" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 127px; margin-left: 204px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
keys
</div>
</div>
</div>
</foreignObject>
<text x="204" y="139" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
keys
</text>
</switch>
</g>
<rect x="269.27" y="80" width="170" height="20" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 168px; height: 1px; padding-top: 87px; margin-left: 271px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
gpg keys for yum repos
<br/>
<b>
(most probably outdated)
<br/>
(seems now things are in /etc/pki/rpm-gpg/ ????
<span>
)
</span>
</b>
</div>
</div>
</div>
</foreignObject>
<text x="271" y="99" fill="#000000" font-family="Helvetica" font-size="12px">
gpg keys for yum repos...
</text>
</switch>
</g>
<rect x="178.4" y="160" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 179.79 200 L 189.48 177.72 C 190.12 176.44 191.73 175.47 193.05 175.44 L 227.9 175.44 C 229.08 175.49 230.49 176.75 229.57 178.78 L 220.86 200 Z M 178.4 197.89 L 178.4 168.38 C 178.4 166.73 179.88 165.61 181.08 165.61 L 202.83 165.61 L 205.9 161.41 C 206.33 160.85 207.28 160.03 208.38 160 L 221.57 160 C 222.99 160 224.34 161.22 224.34 162.75 L 224.34 173.33 L 193.12 173.33 C 191.1 173.33 188.81 174.65 187.75 176.59 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 207px; margin-left: 204px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
manual
</div>
</div>
</div>
</foreignObject>
<text x="204" y="219" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">
manual
</text>
</switch>
</g>
<rect x="269.27" y="160" width="130" height="20" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 128px; height: 1px; padding-top: 167px; margin-left: 271px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
repos created manually
</div>
</div>
</div>
</foreignObject>
<text x="271" y="179" fill="#000000" font-family="Helvetica" font-size="12px">
repos created manually
</text>
</switch>
</g>
<rect x="11" y="0" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 12.39 40 L 22.08 17.72 C 22.72 16.44 24.33 15.47 25.65 15.44 L 60.5 15.44 C 61.68 15.49 63.09 16.75 62.17 18.78 L 53.46 40 Z M 11 37.89 L 11 8.38 C 11 6.73 12.48 5.61 13.68 5.61 L 35.43 5.61 L 38.5 1.41 C 38.93 0.85 39.88 0.03 40.98 0 L 54.17 0 C 55.59 0 56.94 1.22 56.94 2.75 L 56.94 13.33 L 25.72 13.33 C 23.7 13.33 21.41 14.65 20.35 16.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 47px; margin-left: 37px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
/var/www/html
</div>
</div>
</div>
</foreignObject>
<text x="37" y="59" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
/var/www/...
</text>
</switch>
</g>
<rect x="261" y="200" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 262.39 240 L 272.08 217.72 C 272.72 216.44 274.33 215.47 275.65 215.44 L 310.5 215.44 C 311.68 215.49 313.09 216.75 312.17 218.78 L 303.46 240 Z M 261 237.89 L 261 208.38 C 261 206.73 262.48 205.61 263.68 205.61 L 285.43 205.61 L 288.5 201.41 C 288.93 200.85 289.88 200.03 290.98 200 L 304.17 200 C 305.59 200 306.94 201.22 306.94 202.75 L 306.94 213.33 L 275.72 213.33 C 273.7 213.33 271.41 214.65 270.35 216.59 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 247px; margin-left: 287px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
nxserver
<br/>
</div>
</div>
</div>
</foreignObject>
<text x="287" y="259" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
nxserver&#xa;
</text>
</switch>
</g>
<rect x="331" y="200" width="150" height="20" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 148px; height: 1px; padding-top: 207px; margin-left: 333px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
accessible only by specific hosts - protected by .htaccess file
</div>
</div>
</div>
</foreignObject>
<text x="333" y="219" fill="#000000" font-family="Helvetica" font-size="12px">
accessible only by specif...
</text>
</switch>
</g>
<rect x="178.4" y="280" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 179.79 320 L 189.48 297.72 C 190.12 296.44 191.73 295.47 193.05 295.44 L 227.9 295.44 C 229.08 295.49 230.49 296.75 229.57 298.78 L 220.86 320 Z M 178.4 317.89 L 178.4 288.38 C 178.4 286.73 179.88 285.61 181.08 285.61 L 202.83 285.61 L 205.9 281.41 C 206.33 280.85 207.28 280.03 208.38 280 L 221.57 280 C 222.99 280 224.34 281.22 224.34 282.75 L 224.34 293.33 L 193.12 293.33 C 191.1 293.33 188.81 294.65 187.75 296.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 327px; margin-left: 204px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
sources
</div>
</div>
</div>
</foreignObject>
<text x="204" y="339" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
sources
</text>
</switch>
</g>
<rect x="392.73" y="320" width="26.54" height="30" fill="none" stroke="none" pointer-events="all"/>
<path d="M 406 334.11 L 393.77 327.05 L 406 320 L 418.18 327.05 Z M 406.65 350 L 406.65 335.32 L 419.27 328.05 L 419.27 342.73 Z M 405.35 349.99 L 392.73 342.73 L 392.73 328.13 L 405.35 335.41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 357px; margin-left: 406px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 11px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-align: center ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(255 , 255 , 255) ; display: inline ; float: none">
pli-repo-yfs.service
<br/>
[01:30]
<br/>
</span>
</div>
</div>
</div>
</foreignObject>
<text x="406" y="369" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
pli-...
</text>
</switch>
</g>
<rect x="261" y="320" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 262.39 360 L 272.08 337.72 C 272.72 336.44 274.33 335.47 275.65 335.44 L 310.5 335.44 C 311.68 335.49 313.09 336.75 312.17 338.78 L 303.46 360 Z M 261 357.89 L 261 328.38 C 261 326.73 262.48 325.61 263.68 325.61 L 285.43 325.61 L 288.5 321.41 C 288.93 320.85 289.88 320.03 290.98 320 L 304.17 320 C 305.59 320 306.94 321.22 306.94 322.75 L 306.94 333.33 L 275.72 333.33 C 273.7 333.33 271.41 334.65 270.35 336.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 367px; margin-left: 287px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
auristor
</div>
</div>
</div>
</foreignObject>
<text x="287" y="379" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
auristor
</text>
</switch>
</g>
<rect x="261" y="400" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 262.39 440 L 272.08 417.72 C 272.72 416.44 274.33 415.47 275.65 415.44 L 310.5 415.44 C 311.68 415.49 313.09 416.75 312.17 418.78 L 303.46 440 Z M 261 437.89 L 261 408.38 C 261 406.73 262.48 405.61 263.68 405.61 L 285.43 405.61 L 288.5 401.41 C 288.93 400.85 289.88 400.03 290.98 400 L 304.17 400 C 305.59 400 306.94 401.22 306.94 402.75 L 306.94 413.33 L 275.72 413.33 C 273.7 413.33 271.41 414.65 270.35 416.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 447px; margin-left: 287px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
...
</div>
</div>
</div>
</foreignObject>
<text x="287" y="459" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
...
</text>
</switch>
</g>
<rect x="392.73" y="400" width="26.54" height="30" fill="none" stroke="none" pointer-events="all"/>
<path d="M 406 414.11 L 393.77 407.05 L 406 400 L 418.18 407.05 Z M 406.65 430 L 406.65 415.32 L 419.27 408.05 L 419.27 422.73 Z M 405.35 429.99 L 392.73 422.73 L 392.73 408.13 L 405.35 415.41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 437px; margin-left: 406px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 11px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-align: center ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(255 , 255 , 255) ; display: inline ; float: none">
pli-repo-mirror.service
<br/>
[21:30]
<br/>
</span>
</div>
</div>
</div>
</foreignObject>
<text x="406" y="449" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
pli-...
</text>
</switch>
</g>
<rect x="178.72" y="480" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 180.11 520 L 189.8 497.72 C 190.44 496.44 192.05 495.47 193.37 495.44 L 228.22 495.44 C 229.4 495.49 230.81 496.75 229.89 498.78 L 221.18 520 Z M 178.72 517.89 L 178.72 488.38 C 178.72 486.73 180.2 485.61 181.4 485.61 L 203.15 485.61 L 206.22 481.41 C 206.65 480.85 207.6 480.03 208.7 480 L 221.89 480 C 223.31 480 224.66 481.22 224.66 482.75 L 224.66 493.33 L 193.44 493.33 C 191.42 493.33 189.13 494.65 188.07 496.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 527px; margin-left: 205px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
snapshots
</div>
</div>
</div>
</foreignObject>
<text x="205" y="539" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
snapshots
</text>
</switch>
</g>
<rect x="178.72" y="640" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 180.11 680 L 189.8 657.72 C 190.44 656.44 192.05 655.47 193.37 655.44 L 228.22 655.44 C 229.4 655.49 230.81 656.75 229.89 658.78 L 221.18 680 Z M 178.72 677.89 L 178.72 648.38 C 178.72 646.73 180.2 645.61 181.4 645.61 L 203.15 645.61 L 206.22 641.41 C 206.65 640.85 207.6 640.03 208.7 640 L 221.89 640 C 223.31 640 224.66 641.22 224.66 642.75 L 224.66 653.33 L 193.44 653.33 C 191.42 653.33 189.13 654.65 188.07 656.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 687px; margin-left: 205px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
tags
</div>
</div>
</div>
</foreignObject>
<text x="205" y="699" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
tags
</text>
</switch>
</g>
<rect x="431" y="510" width="26.54" height="30" fill="none" stroke="none" pointer-events="all"/>
<path d="M 444.27 524.11 L 432.04 517.05 L 444.27 510 L 456.45 517.05 Z M 444.92 540 L 444.92 525.32 L 457.54 518.05 L 457.54 532.73 Z M 443.62 539.99 L 431 532.73 L 431 518.13 L 443.62 525.41 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 547px; margin-left: 444px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 11px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-align: center ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(255 , 255 , 255) ; display: inline ; float: none">
pli-repo-snapshot.service
<br/>
[Sun 23:30]
<br/>
</span>
</div>
</div>
</div>
</foreignObject>
<text x="444" y="559" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
pli-...
</text>
</switch>
</g>
<path d="M 331 460 L 403 514 Q 411 520 403.65 526.78 L 285.68 635.68" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 281.82 639.24 L 284.59 631.92 L 285.68 635.68 L 289.34 637.07 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 331 460 L 403 514 Q 411 520 401.24 522.17 L 327.22 538.62" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 322.09 539.76 L 328.17 534.82 L 327.22 538.62 L 329.68 541.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 471 340 L 576.97 580.85 Q 581 590 571.72 593.71 L 440.28 646.29 Q 431 650 421.02 650.62 L 277.36 659.6" fill="none" stroke="#ea6b66" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 272.12 659.93 L 278.88 656 L 277.36 659.6 L 279.32 662.99 Z" fill="#ea6b66" stroke="#ea6b66" stroke-miterlimit="10" pointer-events="all"/>
<rect x="571" y="540" width="150" height="20" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 550px; margin-left: 572px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">
currently overwrites autistor directory in all the tags matching the pattern: prod-0
</div>
</div>
</div>
</foreignObject>
<text x="646" y="554" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">
currently overwrites auti...
</text>
</switch>
</g>
<rect x="322" y="570" width="169" height="60" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 167px; height: 1px; padding-top: 600px; margin-left: 323px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 8px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">
creates a prod tag depending on following certain condition(s):
<br/>
- is there a AFS kernel module for latest kernel
</div>
</div>
</div>
</foreignObject>
<text x="407" y="602" fill="#000000" font-family="Helvetica" font-size="8px" text-anchor="middle" font-style="italic">
creates a prod tag depending on following...
</text>
</switch>
</g>
<rect x="261" y="680" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 262.39 720 L 272.08 697.72 C 272.72 696.44 274.33 695.47 275.65 695.44 L 310.5 695.44 C 311.68 695.49 313.09 696.75 312.17 698.78 L 303.46 720 Z M 261 717.89 L 261 688.38 C 261 686.73 262.48 685.61 263.68 685.61 L 285.43 685.61 L 288.5 681.41 C 288.93 680.85 289.88 680.03 290.98 680 L 304.17 680 C 305.59 680 306.94 681.22 306.94 682.75 L 306.94 693.33 L 275.72 693.33 C 273.7 693.33 271.41 694.65 270.35 696.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 727px; margin-left: 263px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
<b>
rhel-7.x
</b>
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
<i>
r77c1
</i>
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
prodhpc
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
<b>
prod
</b>
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
<b>
prod-xxxxx
</b>
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
latest
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
db_prod
</span>
<span style="font-family: &quot;helvetica&quot;">
-&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
cuda-9.2 -&gt; ../snapshots/snap-xxxxx
</span>
<br style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-style: normal ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250)"/>
<span style="color: rgb(0 , 0 , 0) ; font-family: &quot;helvetica&quot; ; font-size: 12px ; font-weight: 400 ; letter-spacing: normal ; text-indent: 0px ; text-transform: none ; word-spacing: 0px ; background-color: rgb(248 , 249 , 250) ; display: inline ; float: none">
<i>
beta
</i>
</span>
</div>
</div>
</div>
</foreignObject>
<text x="263" y="739" fill="#000000" font-family="Helvetica" font-size="12px">
rhel-7.x...
</text>
</switch>
</g>
<rect x="258.91" y="520" width="52.09" height="40" fill="none" stroke="none" pointer-events="all"/>
<path d="M 260.3 560 L 269.99 537.72 C 270.63 536.44 272.24 535.47 273.56 535.44 L 308.41 535.44 C 309.59 535.49 311 536.75 310.08 538.78 L 301.37 560 Z M 258.91 557.89 L 258.91 528.38 C 258.91 526.73 260.39 525.61 261.59 525.61 L 283.34 525.61 L 286.41 521.41 C 286.84 520.85 287.79 520.03 288.89 520 L 302.08 520 C 303.5 520 304.85 521.22 304.85 522.75 L 304.85 533.33 L 273.63 533.33 C 271.61 533.33 269.32 534.65 268.26 536.59 Z" fill="#505050" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 567px; margin-left: 285px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
snap-xxxxx
</div>
</div>
</div>
</foreignObject>
<text x="285" y="579" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
snap-xxxxx
</text>
</switch>
</g>
<rect x="501" y="730" width="190" height="20" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 740px; margin-left: 502px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
all tags other than
<b>
prod
</b>
,
<b>
prod-xxxxx
</b>
and
<b>
rhel-7.x
</b>
are done manually
</div>
</div>
</div>
</foreignObject>
<text x="596" y="744" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
all tags other than prod,  prod...
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>

Before

Width:  |  Height:  |  Size: 59 KiB

-84
View File
@@ -1,84 +0,0 @@
# repo01.psi.ch
This machine is a RHEL8 system **not** under Puppet control. This machine has no AFS dependencies.
The basic service provided by this system is: httpd
This machine acts as a mirror for the RHEL8 iso images.
Repo01 is connected to the Satelitte server from ETH Zürich. The Red Hat repositories are synced from there.
The installer iso images are downloaded from https://access.redhat.com/downloads and put into `/var/www/html/iso` manually
The iso images in `/var/www/html/iso` are then (automatically) mounted as loop devices by the pli-mount-iso-images.service under `/etc/systemd/system/`. Otherwise changes are not monitored, if a new iso is put there, a manual restart of the service is required for anything to happen.
```bash
df -kh | grep /var/www
/dev/loop0 11G 11G 0 100% /var/www/html/iso/rhel85 /dev/loop1 6.7G 6.7G 0 100% /var/www/html/iso/rhel80
```
Under `/opt/pli/libexec` exist five shell scripts that run with systemctl timer.
The pli-repo-mirror runs a daily sync (at 21:30) via `/etc/systemd/system/pli-repo-mirror.timer`, which pulls the latest repos into `/var/www/html/el8/sources`.
The `gen-snapshot-page` is the basic script to generate a snapshot.
From the above, a weekly snapshot (at Sun 23:30) is taken by the `pli-repo-snapshot` via the `pli-repo-snapshot.timer`
From there the snapshot_is_prodable checks wheter the new snapshot is ready for a new prod tag.
It will check if the latest yfs kernel module corresponds with the latest rhel8 kernel.
If the kernel and the yfs module version correspond a prod snapshot is made under `/var/www/html/el8/tags`
The `pli-repo-zoom` is run via the `pli-repo-zoom.timer`. It maintains the zoom repo at `/var/www/html/zoom/`
The `pli-repo-yfs` script is run via the `pli-repo-yfs.timer`. It syncs the auristor repo and apparently also create tags.
In case of emergency, you can run a snapshot by force. Then you have to add the version before you can run the script
```bash
$./pli-repo-snapshot el8
```
Under `/etc/systemd/system/` we have all the `pli-repo*` timer and service configurations.
In order to start a new timer/service, the service and timer have to be a enabled.
Under `/opt/pli/etc/mirror/` you find the repolist, cuda and yum.conf
Under `/etc/yum.repos.d/` you find the redhat.repo. This are the Red Hat repositories that are synced from ETH.
Under `/var/www/html/el8/keys/` you find the rpm-gpg-keys
Under `/var/www/html/el8/manual/` you find the repos for nxserver. There is no automatic synchronisation for the rpms, they will be downloaded manually from the responsible person.
Under `/var/www/html/el8/snapshots/` you will find all the preprod snapshots
Under `/var/www/html/el8/sources` you will find the packages and repodata from synced rpms.
Under `/var/www/html/el8/tags/` you will find all prod tags
Under `/var/www/html/ipxe` is for testing purposes
Under `/var/www/html/iso` you find the rhel-8.0 and the rhel-8.5 iso image.
Under `/var/www/html/ks-test` you find the new kickstart directory, for testing. If all works this can be deleted.
The URI is https://repo01.psi.ch/el8/sources/
Provided http services:
```bash
[root@repo01 ~]# netstat -tulnp | grep http
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3634/httpd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3634/httpd
```
The httpd configuration can be found in `/etc/httpd/conf.d`
```bash
[root@repo01 ~]# ls -l /etc/httpd/conf.d/
total 12
-rw-r--r--. 1 root root 694 Apr 9 2019 25-repo01.psi.ch_non_ssl.conf
-rw-r--r--. 1 root root 1131 Apr 9 2019 25-repo01.psi.ch_ssl.conf
-rw-r--r--. 1 root root 366 Oct 9 2020 README
``````
The ssl certificate is located in `/etc/pki/tls/certs`
For the certificate renewal the CSR configuration is under /root/certs
https://git.psi.ch/linux-infra/repo01_pli-scripts
+1
View File
@@ -0,0 +1 @@
# Repository Server
+1 -5
View File
@@ -1,11 +1,7 @@
# boot00: SysDB API server
# Sysdb Server
https://git.psi.ch/linux-infra/sysdb/ is pulled into /var/www/sysdb/app/ (no automation, just by hand)
httpd runs the service and it needs restarting, when pulling changes
Access rights are granted on the environment level (bob env list). At this time, most of the users and groups come from the AD, except for the sysdb-admins, which is defined locally, see /etc/group
Detailed documentation of the software is at:
https://linux.psi.ch/admin-guide/index.html
+2 -2
View File
@@ -88,7 +88,7 @@ A CUDA version needs a suitably new driver version, but old CUDA versions are su
Instead of using Puppet/Hiera, you may also manage the drivers manually.
Note that drivers made available by default are curated, that means it contains only non-beta production drivers. If you want all drivers available, you need to use `https://repo01.psi.ch/el8/sources/cuda8/` as URL for the package repository.
Note that drivers made available by default are curated, that means it contains only non-beta production drivers. If you want all drivers available, you need to use `https://repos.psi.ch/rhel8/sources/cuda8/` as URL for the package repository.
### Select the Driver Branch
@@ -169,7 +169,7 @@ systemctl start nvidia-persistenced
## Regular Tasks by the Core Linux Team
- classify new driver branches and beta versions in the [snapshot preparation script](https://git.psi.ch/linux-infra/repo01_pli-scripts/-/blob/master/libexec/fix-snapshot/20_remove_nvidia_beta_drivers#L90)
- classify new driver branches and beta versions in the [snapshot preparation script](https://git.psi.ch/linux-infra/rpm-repo-utils/-/blob/main/bin/fix-snapshot/20_remove_nvidia_beta_drivers#L90)
- update the latest production branch in [Puppet managed vidia software installation script](https://git.psi.ch/linux-infra/puppet/-/blob/preprod/code/modules/profile/files/nvidia/ensure-nvidia-software#L17)
- add more production/long term support branches supported by [`nvidia-detect`](http://elrepo.org/tiki/nvidia-detect) to the [Puppet managed Nvidia software installation script](https://git.psi.ch/linux-infra/puppet/-/blob/preprod/code/modules/profile/files/nvidia/ensure-nvidia-software#L62)
- update the [driver version to CUDA version mapping script](https://git.psi.ch/linux-infra/puppet/-/blob/preprod/code/modules/profile/files/nvidia/suitable_cuda_version#L21) according to new entries in the [CUDA Release Notes](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)
+5 -5
View File
@@ -220,8 +220,8 @@ An individual package repository is configured in Hiera within the namespace `rp
rpm_repos::repo::epel_rhel8:
name: 'epel'
descr: "Extra Packages for Enterprise Linux 8"
baseurl: 'https://repo01.psi.ch/el8/tags/$pli_repo_tag/epel/'
gpgkey: 'https://repo01.psi.ch/el8/keys/RPM-GPG-KEY-EPEL-8'
baseurl: 'https://repos.psi.ch/rhel8/tags/$pli_repo_tag/epel/'
gpgkey: 'https://repos.psi.ch/rhel8/keys/epel.gpg'
disable: false
gpgcheck: true
osversion: 8
@@ -260,7 +260,7 @@ If certain packages provided by given repository should be ignored on the nodes,
### Using Specific Package Repository Snapshot
Most of the externally sourced package repositories on `repo00.psi.ch` (RHEL7) and `repo01.psi.ch` (RHEL 8) have snapshots which can be used to freeze the available package versions to a given date.
Most of the externally sourced package repositories on https://repos.psi.ch/rhel7 (RHEL7) and https://repos.psi.ch/rhel8 (RHEL 8) have snapshots which can be used to freeze the available package versions to a given date.
The tags are different per major OS version and are definied in the Hiera hash `rpm_repos::tag`, below you see the default:
@@ -277,8 +277,8 @@ So for RHEL 7 the default is `prod` and can be overriden on `yum_client::repo_ta
To fix to a specific snapshot on RHEL 8, the `redhat8` attribute has to be set on `rpm_repos::tag`, the default is `rhel-8` which points to the latest snapshot.
The available tags your find at
- [https://repo01.psi.ch/el8/tags/](https://repo01.psi.ch/el8/tags/) for RHEL 8 (note the `prod` tag will phase out)
- [https://repo00.psi.ch/el7/tags/](https://repo00.psi.ch/el7/tags/) for RHEL 7
- [https://repos.psi.ch/rhel8/tags/](https://repos.psi.ch/rhel8/tags/) for RHEL 8 (note the `prod` tag will phase out)
- [https://repos.psi.ch/rhel7/tags/](https://repos.psi.ch/rhel7/tags/) for RHEL 7
### Package Repositories made Available by the Linux Group