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

Migrate LXC container to LXD (with ZFS storage)

CONTAINER_NAME=www

lxc-stop -n ${CONTAINER_NAME}
lxc init ubuntu:18.04 ${CONTAINER_NAME} -c security.privileged=true -c boot.autostart=true
#lxc stop ${CONTAINER_NAME}
#lxc config set ${CONTAINER_NAME} boot.autostart true
zfs mount tank/lxd/containers/${CONTAINER_NAME}
mv /var/lib/lxd/containers/${CONTAINER_NAME}/rootfs{,.org}
rsync -av --numeric-ids /var/lib/lxc/${CONTAINER_NAME}/rootfs /var/lib/lxd/containers/${CONTAINER_NAME}/
mv /var/lib/lxd/containers/${CONTAINER_NAME}/rootfs/dev{,.org}
rsync -av /var/lib/lxd/containers/${CONTAINER_NAME}/rootfs.org/dev /var/lib/lxd/containers/${CONTAINER_NAME}/rootfs/
rm -r /var/lib/lxd/storage-pools/zfs/containers/${CONTAINER_NAME}/rootfs.org
umount /var/lib/lxd/containers/${CONTAINER_NAME}
sed -i 's|lxc.start.auto = .*|lxc.start.auto = 0|g' /var/lib/lxc/${CONTAINER_NAME}/config
lxc config set ${CONTAINER_NAME} volatile.eth0.hwaddr $(grep lxc.net.0.hwaddr /var/lib/lxc/${CONTAINER_NAME}/config | cut -d"=" -f2)
lxc config show ${CONTAINER_NAME}
lxc-ls -n ${CONTAINER_NAME} -f
lxc start ${CONTAINER_NAME}

lxc stop ${CONTAINER}
lxc config set ${CONTAINER} security.privileged false
lxc start ${CONTAINER}

OpenStack: Octavia LoadBalancer (LBaaS)

Releasenotes
https://docs.openstack.org/releasenotes/octavia/

CLI
https://docs.openstack.org/octavia/latest/user/guides/basic-cookbook.html
https://clouddocs.web.cern.ch/networking/load_balancing.html

openstack loadbalancer list --project ${PROJECT_ID}
openstack floating ip list --project ${PROJECT_ID} --fixed-ip-address 10.1.2.13

# show loadbalancer listener
openstack loadbalancer listener list --loadbalancer ${LB_NAME} -c id -f value | \
    xargs -L1 openstack loadbalancer listener show -c name -c id -c protocol -c default_tls_container_ref -c sni_container_refs

# get for HTTPS listener ID
openstack loadbalancer listener list --loadbalancer ${LB_NAME} -f json | jq -r '.[] | select(.protocol_port == 443) | .id'

Create Amphora image

sudo apt install -y python3-pip git qemu qemu-utils debootstrap kpartx
sudo pip3 install diskimage-builder

git clone https://github.com/openstack/octavia.git -b stable/stein
cd octavia
sudo ./diskimage-create/diskimage-create.sh -d bionic -t raw
chmod a+r ./amphora-x64-haproxy.raw

Upload Amphora image

#openstack image create --container-format bare --disk-format qcow2 --private --file amphora-x64-haproxy.qcow2 --tag amphora amphora
openstack image create --container-format bare --disk-format raw --public --file amphora-x64-haproxy.raw --tag amphora amphora --os-cloud=dev-admin
openstack image set --protected amphora --os-cloud=dev-admin
openstack image list --long

Configure OpenStack

OpenStack: Horizon

Configure start page

# /etc/kolla/horizon/custom_local_settings
# /etc/kolla/config/dev/horizon/custom_local_settings (kolla-ansible override)

HORIZON_CONFIG["user_home"] = "/project"

Links
https://docs.openstack.org/horizon/latest/contributor/ref/horizon.html
https://docs.openstack.org/mitaka/config-reference/dashboard/config-options.html

iLO - IPMI on HP servers

Download Latest firmware
http://pingtool.org/latest-hp-ilo-firmwares/
https://support.hpe.com/hpesc/public/home/driverHome?sp4ts.oid=1009143853
# download "RECOMMENDED * Online ROM Flash Component for Linux - HPE Integrated Lights-Out"

Extract firmware

chmod +x /tmp/CP0*.scexe 
/tmp/CP0*.scexe  --unpack=/tmp

# flash iLo firmware (local)
yes | ./CP036949.scexe

# ipmitool -I lanplus -H www1-ipmi -U Administrator -P pass1234 hpm upgrade ilo4_261.bin

Flash iLo with SSH (not tested)

https://voice1.me/upgrading-hp-ilo-firmware-without-a-browser/
ssh ${BMC_USER}@${BMC_HOST}
#cd map1/firmware1
load /map1/firmware1 -source http://www.example.com/ilo4_255.bin

hponcfg
http://jon.netdork.net/2013/01/06/updating-ilo-firmware-using-hponcfg-and-xml/

Restart iLo

cd /map1
reset

Reset iLo to factory defaults
https://support.hpe.com/hpsc/doc/public/display?docId=mmr_kc-0115522

Configure iLo from CLI
https://prasadlinuxblog.wordpress.com/2016/11/08/configuring-hp-ilo-through-linux-automatically/

Fix flash error
# downgrade to 2.54
https://community.hpe.com/t5/ProLiant-Servers-ML-DL-SL/HPE-DL380p-GEN8-iLO4-Self-Test-Error/td-p/6979847#.XLyXyt9fi00
https://support.hpe.com/hpsc/swd/public/detail?swItemId=MTX_3830eb5b87574d6cb463c44994

Intelligent Provisioning for Gen9 Servers (update)
Register your server first!
Login to iLo > Remote Support > Registration
https://support.hpe.com/hpsc/swd/public/detail?sp4ts.oid=1008862660&swItemId=MTX_77b94511492441a08eb272ed27&swEnvOid=4184

Serial console over SSH

ssh -o KexAlgorithms=diffie-hellman-group14-sha1 -oHostKeyAlgorithms=+ssh-dss Administraotr@10.0.1.2

Hardware: HP Microserver - How to fix ILO4 after adding second graphics card
https://lukas.dzunko.sk/index.php/Hardware:_HP_Microserver_-_How_to_fix_ILO4_after_adding_second_graphics_card

Nginx (proxy) Docker container

Create required directories

mkdir -p /etc/docker/nginx/{conf.d,html}

Configure nginx as webserver

cat < /etc/docker/nginx/conf.d/default.conf
server {
    listen 80;
    server_name _;

    root   /usr/share/nginx/html; 
    index  index.html index.htm;
}
EOF

Configure nginx as proxy

cat < /etc/docker/nginx/conf.d/proxy.conf
server {
    listen 80;
    server_name foo.example.com;

    location / {
        proxy_pass http://localhost:8080/;
    }
}
EOF

Create container

sudo docker run -d \
  --name nginx \
  --net host \
  -v /etc/docker/nginx/html:/usr/share/nginx/html:ro \
  -v /etc/docker/nginx/conf.d:/etc/nginx/conf.d:ro \
  nginx

debug

docker restart nginx
docker logs nginx -f

Links
https://hub.docker.com/_/nginx

Docker: Roundcube container

Start container

docker run --name=roundcube \
  -e ROUNDCUBEMAIL_DEFAULT_HOST=imap.example.com \
  -e ROUNDCUBEMAIL_SMTP_SERVER=smtp.example.com \
  -e ROUNDCUBEMAIL_SMTP_PORT=993 \
  -p 8080:80 \
  -d  roundcube/roundcubemail

UI
http://SERVER_IP:8080/

Links
https://hub.docker.com/r/roundcube/roundcubemail/

netdata

Docker

docker run -d --name=netdata \

-p 8080:19999 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata

# URL

http://SERVER_IP:8080

Links
https://github.com/netdata/netdata

OpenStack: Cleanup project objects

# Delete VMs
openstack server list --project=test-project --os-cloud=prod-user1
openstack server delete ${VM_ID}

# Delete floating ip
openstack floating ip list --project=test-project --os-cloud=prod-user1
openstack floating ip delete ${FLOATING_IP_1} 1.2.3.4

# Delete router
openstack router list --project=test-project --os-cloud=prod-user1
openstack subnet list --project=test-project --os-cloud=prod-user1
openstack router remove subnet ${ROUTER_ID} ${SUBNET_ID}
openstack router delete ${ROUTER_ID}

# Delete subnet
openstack subnet list --project=test-project --os-cloud=prod-user1
openstack subnet delete ${SUBNET_ID}

# Delete network
openstack network list --project=test-project --os-cloud=prod-user1
openstack network delete ${NETWORK_ID}

# Delete security group
openstack security group list --project=test-project --os-cloud=prod-user1
openstack security group delete ${SECURITY_GROUP_ID}

# Delete keypair
openstack keypair list
openstack keypair delete ${KEYPAIR_ID}

# Delete project (admin only)
openstack project list --domain everyware --os-cloud=prod-user1
openstack project delete ${PROJECT_ID}

Optional

OpenStack: Cloud management with Ansible

Ansible OpenStack modules
https://docs.ansible.com/ansible/latest/search.html?q=os_

Ansible OpenStack module repository
https://github.com/ansible/ansible/tree/devel/lib/ansible/modules/cloud/openstack

# Fix; To utilize this module, the installed version ofthe shade library MUST be >=1.8.0
wget http://mirrors.kernel.org/ubuntu/pool/universe/p/python-shade/python-shade_1.30.0-2_all.deb -O /tmp/python-shade_1.30.0-2_all.deb
sudo dpkg -i /tmp/python-shade_1.30.0-2_all.deb

Create OpenStack VM with Ansible

- name: Create VM
      openstack.cloud.server:
        cloud: "{{ os_cloud }}"
        name: "{{ os_server_name }}"
        image: "{{ os_server_image }}"
        key_name: "{{ os_server_keypair }}"
        flavor: "{{ os_server_flavor }}"
        nics:
          - port-name: "{{ item }}_{{ os_network }}"
        auto_floating_ip: yes
        availability_zone: "{{ os_server_availability_zone }}"
        meta:
          sysadmin: "{{ os_sysadmin }}"
        userdata: |
          #cloud-config
          package_upgrade: true
          packages:
            - curl
          users:
            - name: foo
              sudo: ALL=(ALL) NOPASSWD:ALL
              shell: /bin/bash
              ssh_authorized_keys:
                - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
              ssh_import_id:
                - gh:foo
                - gh:bar

OpenStack multi cloud / user configurattion (~/.config/openstack/clouds.yaml)

Configure connections
https://docs.openstack.org/python-openstackclient/latest/configuration/index.html

# ~/.config/openstack/clouds.yaml
clouds:
  admin-dev:
    auth:
      auth_url: http://keystone-admin.dev.example.com:35357/v3
      project_name: admin
      username: admin
      user_domain_name: Default
      project_domain_name: Default
    interface: internal

  foo-stage:
    auth:
      auth_url: http://api.stage.example.com:35357
      project_name: fooproject
      username: foo
      user_domain_name: foodom
      project_domain_name: foodom

  dev-foo-bar-token:
    auth:
      auth_url: https://keystone.service.example.com/v3
      #token: gAAAAABjpLjOVEzH3YEf70Lc0VoIDZlTnaQ1pUPllNAJ
    region_name: "az1"
    interface: "public"
    identity_api_version: 3
    project_domain_name: "foo"
    project_name: "bar"
    auth_type: "v3token"

  cloud-admin:
    auth:
      auth_url: http://keystone-admin.i.example.com:35357/v3
      project_name: admin
      username: admin
      password: xxxxxxxxxxxxxx
    region_name: "r1"
    interface: "internal"
    identity_api_version: 3

Choose OpenStack account

export OS_CLOUD=cloud-admin

Configure passwords

# ~/.config/openstack/secure.yaml
clouds:
  admin-dev:
    auth:
      password: pass1234

  foo-stage:
    auth:
      password: pass1234

  dev-foo-bar-token:
    auth:
      token: "gAAAAABeNxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Combine static clouds.yaml configuration and temporary token

export OS_TOKEN=$(openstack token issue -f value -c id)

Test connection

openstack --os-cloud foo-stage image list

Configure default connection

export OS_CLOUD=foo-stage
openstack server list

Ansible

apt install -y python-shade

Links
https://docs.openstack.org/python-openstackclient/pike/configuration/index.html
https://docs.openstack.org/os-client-config/latest/user/configuration.html
https://docs.openstack.org/python-openstackclient/latest/configuration/index.html
https://docs.openstack.org/python-openstackclient/latest/cli/man/openstack.html

Pagination

  • First page
  • Previous page
  • …
  • Page 15
  • Page 16
  • Page 17
  • Page 18
  • Page 19
  • Page 20
  • Page 21
  • Page 22
  • Page 23
  • …
  • Next page
  • Last page
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