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

Rundeck CLI

Install
https://rundeck.github.io/rundeck-cli/
https://github.com/rundeck/rundeck-cli/releases

sudo apt-get install -y default-jre-headless

wget -q https://github.com/rundeck/rundeck-cli/releases/download/v2.0.0/rundeck-cli_2.0.0-1_all.deb
sudo dpkg -i rundeck-cli_*_all.deb

# sudo apt-get install rundeck-cli

Configuration
https://rundeck.github.io/rundeck-cli/configuration/

# ~/.rd/rundeck-dev.conf
export RD_URL=http://rundeck.dev.example.com:80
export RD_USER=admin
export RD_PASSWORD=admin

# load configuration
source ~/.rd/rundeck-dev.conf

Commands
https://rundeck.github.io/rundeck-cli/commands/

rd projects create -p ops
rd projects configure set -p ops --file ~/project.properties
rd keys create --type privateKey --path keys/lib/rundeck/.ssh/github_rsa --file ~/github_rsa
rd projects scm setup -p ops --integration import --type git-import --file ~/scm-import.json
rd projects scm perform -p ops -i import --action initialize-tracking -f useFilePattern="true" filePattern=".*\\.yaml"
rd projects scm perform -i import -p ops --action import-all
rd projects scm perform -i import -p ops --action import-all --item "ops/my-job-file.yaml"

Create / configure Project properties
https://docs.rundeck.com/docs/administration/configuration/config-file-reference.html#project-properties

rd projects create -p project1

rd projects configure get -p project1

# import porject settings from configuration file
rd projects configure set -p project1 --file ~/project.properties

Nodes

Rundeck Docker install

Docker
DockerHub images: https://hub.docker.com/r/rundeck/rundeck/
Docker Environment Variables: https://docs.rundeck.com/docs/administration/configuration/docker.html#environment-variables

apt install -y docker docker-compose git vim
git clone https://github.com/rundeck/docker-zoo.git

# https://github.com/rundeck/docker-zoo/tree/master/cloud
cd ./docker-zoo/cloud
mkdir libext
wget https://github.com/rundeck-plugins/rundeck-s3-log-plugin/releases/download/v1.0.8/rundeck-s3-log-plugin-1.0.8.jar -P ./libext/

# configure paramter
# https://docs.rundeck.com/docs/administration/configuration/docker.html#user-authentication

# todo: configure S3
# configure rundeck external address
HOST_IP=$(hostname -I | cut -d" " -f3)
HOST_IP=rundeck.dev.i.example.com
echo "
AWS_CREDENTIALS=x
RUNDECK_PLUGIN_EXECUTIONFILESTORAGE_S3_BUCKET=y
RUNDECK_PLUGIN_EXECUTIONFILESTORAGE_S3_REGION=z
RUNDECK_STORAGE_PASSWORD=p

#RUNDECK_GRAILS_URL=\"http://${HOST_IP}\"
#RUNDECK_SERVER_ADDRESS=${HOST_IP}
" > .env.dist

# diff docker-compose.yml.org docker-compose.yml
# diff docker-compose.yml.org docker-compose.yml
13c13
<             RUNDECK_GRAILS_URL: http://localhost
---
>             RUNDECK_GRAILS_URL: http://rundeck.dev.example.com
26c26
<           - ${AWS_CREDENTIALS}:/home/rundeck/.aws/credentials
---
>             #  - ${AWS_CREDENTIALS}:/home/rundeck/.aws/credentials

# configure SMTP
sed "/RUNDECK_DATABASE_URL:.*:/a \\\t    RUNDECK_MAIL_SMTP_HOST: smtp" docker-compose.yml

docker compose build
docker compose up

docker update --restart unless-stopped cloud_nginx_1
docker update --restart unless-stopped cloud_rundeck_1
docker update --restart unless-stopped cloud_mysql_1

Fix SCM

OpenStack: Octavia / Amphora LB check

#!/bin/bash

source /etc/kolla/admin-openrc.sh


function show_lb_owner() {
    LB_ID=$1

    # show project
    PROJECT_ID=$(openstack loadbalancer show -c project_id -f value ${LB_ID})
    PROJECT_NAME=$(openstack project show -c name -f value ${PROJECT_ID})

    # show domain
    DOMAIN_ID=$(openstack project show -c domain_id -f value ${PROJECT_ID})
    DOMAIN_NAME=$(openstack domain show -c name -f value ${DOMAIN_ID})

    echo "Domain: ${DOMAIN_NAME}"
    echo "Project: ${PROJECT_NAME}"
}


EXIT_CODE=0


# list broken LB
OUTPUT="$(openstack loadbalancer amphora list --provisioning-status ERROR)"
if [ -n "${OUTPUT}" ]; then
    echo "${OUTPUT}"

    EXIT_CODE=1
fi

# search for broken LB
for LB_ID in $(openstack loadbalancer amphora list --provisioning-status ERROR -c loadbalancer_id -f value | uniq | grep -v None); do
    # show LB details
    CMD="openstack loadbalancer show ${LB_ID}"
    echo "${CMD}"
    ${CMD}

    # show LB VMs details
    CMD="openstack loadbalancer amphora list --loadbalancer ${LB_ID}"
    echo "${CMD}"
    ${CMD}

    # show LB owner
    show_lb_owner ${LB_ID}

    echo

    EXIT_CODE=1
done

# search for single amphora VMs
for LB_ID in $(openstack loadbalancer list -c id -f value); do
    if [ $(openstack loadbalancer amphora list --loadbalancer ${LB_ID} -f value | wc -l) -ne 2 ]; then
        # openstack loadbalancer amphora list --provisioning-status ERROR
        # openstack loadbalancer amphora list --role STANDALONE

        echo "Single amphora VM:"
        CMD="openstack loadbalancer amphora list --loadbalancer ${LB_ID}"
        echo "${CMD}"
        ${CMD}

        # show LB details
        CMD="openstack loadbalancer show ${LB_ID}"
        echo "${CMD}"
        ${CMD}

        # show LB owner
        show_lb_owner ${LB_ID}

        echo
rundeck
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