Skip to main content

Primary links

  • Home
  • AI
  • Kubernetes
  • Incus
  • Ansible
  • Terraform
  • OpenStack
  • Virtualization
  • Linux
  • SmartHome
  • HowTo

Misc

  • Linux
  • Hardware
  • Programming
  • Databases
  • Multimedia
  • Windows

Cloud

  • OpenStack
  • cloud-config
  • nextcloud

Virtualization

  • Virtualization
  • Incus
  • Docker
  • KVM
  • Kubernetes
  • LXC
  • LXD
  • QEMU
  • VMware
  • VirtualBox
  • multipass
  • podman
  • vagrant
  • XEN

Network

  • DNS
  • Firewall
  • Linux
  • OpenvSwitch
  • SSL
  • VLAN
  • VPN
  • iPXE
  • namespaces
  • nmcli
  • tcpdump

Storage

  • CEPH
  • DRBD
  • LVM
  • S3
  • ZFS
  • btrfs

Automation / CI/CD

  • Install
  • Ansible
  • GitLab
  • LLM
  • Preseed
  • Puppet
  • Terraform
  • Ubuntu autoinstall

Monitoring / Visualisation

  • Grafana
  • Icinga
  • Prometheus
  • Monitoring
  • ELK
  • mermaid

Install: tinyproxy

sudo apt-get install -y tinyproxy

sed -i 's|#Allow 192.168.0.0/16|Allow 192.168.0.0/16|g' /etc/tinyproxy.conf
sed -i 's|Port 8888|Port 8080|g' /etc/tinyproxy.conf

Port 80
Allow 10.0.0.0/8

FilterExtended On
FilterURLs On
FilterDefaultDeny Yes
Filter "/etc/tinyproxy/whitelist"
#Filter "/etc/tinyproxy/filter"


service tinyproxy restart

fscanary

https://github.com/fukawi2/fscanary/releases

sudo cp /tmp/fscanary.conf.sample /etc/fscanary.conf^C
sudo cp fscanary_0.5.0_linux_amd64 /usr/sbin/
sudo ln -s /usr/sbin/fscanary_0.5.0_linux_amd64 /usr/sbin/fscanary

YouTube download and convert to mp3

https://yt-dl.org/update
https://github.com/ytdl-org/youtube-dl/releases

Installation
https://github.com/ytdl-org/youtube-dl#installation

wget -q https://yt-dl.org/downloads/latest/youtube-dl -O ~/.local/bin/youtube-dl
sudo chmod a+x ~/.local/bin/youtube-dl
# download audio (mp3) only
youtube-dl --extract-audio --audio-format mp3 -o "%(uploader)s/%(title)s.%(ext)s" https://www.youtube.com/watch?v=XXX

# download whole channel starting from 3 months
youtube-dl --extract-audio --audio-format mp3 -o "%(uploader)s/%(upload_date)s_%(title)s.%(ext)s" --dateafter now-3months -v https://www.youtube.com/user/OpenStackFoundation/videos

# update
sudo youtube-dl -U

# output template
https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template

Install tftp server

Install tftp server package
sudo apt-get install -y xinetd tftpd tftp

Create xinetd tftp configuration

cat < /etc/xinetd.d/tftp
service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}
EOF

Create /tftpboot folder

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

Restart the xinetd service

sudo service xinetd restart

Testing our tftp server

ip a add 192.168.1.1/24 dev eth0:1
echo foo > /tftpboot/testfile
tftp 192.168.1.1
get testfile
quit

Links
https://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server

OpenStack: rescue / recovery system

Download rescure iso
wget https://download.grml.org/grml64-small_2022.11.iso

Create rescure system

openstack image create systemrescuecd \
  --file grml64-small_2022.11.iso \
  --disk-format iso \
  --container-format bare \
  --min-ram 512 \
  --property hw_cdrom_bus=scsi

# show image
openstack image list --name systemrescuecd

Attach rescure system

openstack server rescue --image systemrescuecd ${SERVER_ID}

# Login to VM console and fix issues
Detach rescure system

openstack server unrescue ${SERVER_ID}

Links
https://help.switch.ch/engines/documentation/rescue-vm/
https://grml.org/

Visual Studio Code

Install from snap repository

# install
sudo snap install code --classic

Install from APT repository

# deb download
# https://code.visualstudio.com/docs/setup/linux
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code # or code-insiders

# manual download
wget -q https://update.code.visualstudio.com/latest/linux-deb-x64/stable -O /tmp/code.deb
sudo dpkg -i /tmp/code.deb

# create starter
cat << EOF> /usr/share/applications/code.desktop
[Desktop Entry]
Name=Visual Studio Code
Exec=/snap/bin/code %U
Icon=/snap/code/current/usr/share/pixmaps/com.visualstudio.code.png
Type=Application
StartupNotify=false
Categories=Utility;TextEditor;Development;IDE;
Actions=new-empty-window;
EOF

Configure Visual Studio Code as default text editor

xdg-mime default code.desktop text/html
# xdg-mime default code.desktop text/plain
xdg-mime default code_code.desktop text/plain

# old
mkdir -p ~/.local/share/applications
cat <> ~/.local/share/applications/mimeapps.list
[Default Applications]
text/plain = code.desktop
text/x-shellscript = code.desktop
EOF

sed -i 's|text/plain = .*|text/plain = code.desktop|g' ~/.local/share/applications/mimeapps.list

Keyboard shortcuts for Linux
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf

Oracle SQL Developer Extension for VSCode
https://marketplace.visualstudio.com/items?itemName=Oracle.sql-developer

ext install Oracle.sql-developer

Extensions
https://github.com/viatsko/awesome-vscode

Terraform
# code fromatting works only when directory is opened?
https://medium.com/nerd-for-tech/how-to-auto-format-hcl-terraform-code-in-visual-studio-code-6fa0e7afbb5e
https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform
https://github.com/hashicorp/vscode-terraform

HAProxy

Install
https://haproxy.debian.net/#?distribution=Ubuntu&release=focal&version=2.1

sudo apt install -y haproxy

Check status

systemctl status haproxy

Include configurations from /etc/haproxy/haproxy.cfg directory

sed -i 's|[#]*CONFIG=.*|CONFIG=/etc/haproxy/haproxy.cfg.d|g' /etc/default/haproxy
service haproxy restart

Check configuration / Debug

haproxy -c -f /etc/haproxy/haproxy.cfg
service haproxy reload
tail -f /var/log/haproxy.log

Loadbalancer
http://www.loadbalancer.org/blog/category/haproxy/

Prometheus
https://www.haproxy.com/blog/haproxy-exposes-a-prometheus-metrics-endpoint/

ACL

acl valid-ua hdr(user-agent) -f exact-ua.lst -i -f generic-ua.lst test
http://cbonte.github.io/haproxy-dconv/1.8/configuration.html#7
https://www.haproxy.com/de/blog/introduction-to-haproxy-acls/

Configuration

/etc/haproxy/haproxy.cfg

...
frontend www1
    bind :80
    mode http
    acl whitelist src -f /etc/haproxy/whitelist.lst
    acl all src 0.0.0.0
    use_backend backend1 if whitelist

backend backend1
    mode http
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1rnHost:localhost
    server web1.example.com 10.0.1.10:80
    server web2.example.com 10.0.1.11:80
    server web3.example.com 10.0.1.12:80

listen stats 
    bind :9000
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats refresh 30s
    stats show-node
    stats auth admin:password
    stats uri /

ACL whiterlist

unbound

/etc/unbound/unbound.conf.d/forward.conf
# unbound  forward-zone output
for IP in $(consul catalog nodes | grep ctl | cut -d " " -f6); do
    echo "  forward-addr: ${IP}@53"
done
systemctl restart unbound

# disable IPv6
# /etc/unbound/unbound.conf.d/server.conf 
server:
...
   do-ip6: no

# flush zone
unbound-control flush_zone dev.example.com

Links
https://wiki.alpinelinux.org/wiki/Setting_up_unbound_DNS_server
https://calomel.org/unbound_dns.html

(U)EFI

# check if EFI is enabled
ll /sys/firmware/efi

# install efibootmgr
sudo apt-get install -y efibootmgr

# list entries
efibootmgr -v

# create entry
efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Ubuntu --loader \\EFI\\ubuntu\\grubx64.efi

# delete entry
sudo efibootmgr --delete-bootnum -b 0006

# delete all non default entry
for BOOT_ID in $(efibootmgr | grep Boot0 | egrep -v "Built-in|PXE" | cut -d" " -f1 | awk '{print substr($0,5,4)}'); do
    efibootmgr -b ${BOOT_ID} -B
done

# set boot order
efibootmgr --bootorder 0,1,2,9,A,B,C
efibootmgr | grep ubuntu | tr -cd '[:digit:]' | xargs efibootmgr --bootorder

# install grup
grub-install --efi-directory=/boot/efi

# mount efivarfs
mount -t efivarfs efivarfs /sys/firmware/efi/efivars

# 32 bit
apt install grub-efi-ia32-bin 
grub-install -v --target=i386-efi --efi-directory=/boot/efi /dev/sda

Boot from first disk

fs0:
cd EFI
cd BOOT
BOOTX64.EFI

Boot from first disk

mount /dev/sda1 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda3 /mnt/boot/efi
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run
modprobe efivars
chroot /mnt
apt-get install grub-efi-amd64
sudo apt install mokutil
mokutil --sb-state

Links
https://wiki.archlinux.de/title/UEFI_Installation
https://www.gnu.org/software/parted/manual/html_node/set.html
https://www.systutorials.com/docs/linux/man/8-grub-install/

Enable UEFI / PXE boot on Mellanox ConnectX NIC

Install Mellanox CLI tools (MFT)
http://www.mellanox.com/page/management_tools

#URL=https://www.mellanox.com/downloads/MFT/mft-4.15.0-104-x86_64-deb.tgz
URL=https://www.mellanox.com/downloads/MFT/mft-4.16.3-12-x86_64-deb.tgz

# install requirements
apt update
apt install -y gcc make dkms linux-headers-$(uname -r)

# download mft
wget -qO- ${URL} | tar xvz -C /tmp

# install mft
/tmp/mft-*-deb/install.sh

Enable UEFI and PXE boot

mst start
#for MST in $(ls /dev/mst/* | egrep -v '\.1'); do
for MST in $(ls /dev/mst/*); do
    echo ${MST}
    mlxconfig -d ${MST} -y set EXP_ROM_UEFI_x86_ENABLE=1
    mlxconfig -d ${MST} -y set EXP_ROM_PXE_ENABLE=1
    mlxconfig -d ${MST} q | egrep "EXP_ROM"
done

Debug: Show device state

mst status

for MST in $(ls /dev/mst/*); do
    mlxconfig -d ${MST} q
    echo
done

Pagination

  • Previous page
  • 3
  • Next page
linux
Profiles GitHub StackOverflow LinkedIn Xing
Contact Imprint
© panticz 2026

Cookie-Einstellungen

Diese Website nutzt eingebettete Inhalte von Drittanbietern (z.B. YouTube, SoundCloud). Beim Laden dieser Inhalte werden Daten an die jeweiligen Anbieter übermittelt. Datenverarbeitungserklärung