automation-suite
2022.10
false
- Overview
- Requirements
- Installation
- Q&A: Deployment templates
- Downloading the installation packages
- Install-uipath.sh Parameters
- Enabling Redis High Availability Add-On for the cluster
- Document Understanding configuration file
- Adding a dedicated agent node with GPU support
- Connecting Task Mining application
- Adding a dedicated agent Node for Task Mining
- Adding a Dedicated Agent Node for Automation Suite Robots
- Post-installation
- Cluster administration
- Monitoring and alerting
- Migration and upgrade
- Migration options
- Step 1: Moving the Identity organization data from standalone to Automation Suite
- Step 2: Restoring the standalone product database
- Step 3: Backing up the platform database in Automation Suite
- Step 4: Merging organizations in Automation Suite
- Step 5: Updating the migrated product connection strings
- Step 6: Migrating standalone Insights
- Step 7: Deleting the default tenant
- Performing a single tenant migration
- Product-specific configuration
- Best practices and maintenance
- Troubleshooting
- How to troubleshoot services during installation
- How to uninstall the cluster
- How to clean up offline artifacts to improve disk space
- How to clear Redis data
- How to enable Istio logging
- How to manually clean up logs
- How to clean up old logs stored in the sf-logs bucket
- How to disable streaming logs for AI Center
- How to debug failed Automation Suite installations
- How to delete images from the old installer after upgrade
- How to automatically clean up Longhorn snapshots
- How to disable TX checksum offloading
- How to address weak ciphers in TLS 1.2
- Unable to run an offline installation on RHEL 8.4 OS
- Error in Downloading the Bundle
- Offline installation fails because of missing binary
- Certificate issue in offline installation
- First installation fails during Longhorn setup
- SQL connection string validation error
- Prerequisite check for selinux iscsid module fails
- Azure disk not marked as SSD
- Failure after certificate update
- Antivirus causes installation issues
- Automation Suite not working after OS upgrade
- Automation Suite requires backlog_wait_time to be set to 0
- Volume unable to mount due to not being ready for workloads
- Unable to launch Automation Hub and Apps with proxy setup
- Failure to upload or download data in objectstore
- PVC resize does not heal Ceph
- Failure to resize PVC
- Failure to resize objectstore PVC
- Rook Ceph or Looker pod stuck in Init state
- StatefulSet volume attachment error
- Failure to create persistent volumes
- Storage reclamation patch
- Backup failed due to TooManySnapshots error
- All Longhorn replicas are faulted
- Setting a timeout interval for the management portals
- Update the underlying directory connections
- Authentication not working after migration
- Kinit: Cannot find KDC for realm <AD Domain> while getting initial credentials
- Kinit: Keytab contains no suitable keys for *** while getting initial credentials
- GSSAPI operation failed due to invalid status code
- Alarm received for failed Kerberos-tgt-update job
- SSPI provider: Server not found in Kerberos database
- Login failed for AD user due to disabled account
- ArgoCD login failed
- Failure to get the sandbox image
- Pods not showing in ArgoCD UI
- Redis probe failure
- RKE2 server fails to start
- Secret not found in UiPath namespace
- ArgoCD goes into progressing state after first installation
- Unexpected inconsistency; run fsck manually
- MongoDB pods in CrashLoopBackOff or pending PVC provisioning after deletion
- MongoDB Pod Fails to Upgrade From 4.4.4-ent to 5.0.7-ent
- Unhealthy services after cluster restore or rollback
- Pods stuck in Init:0/X
- Prometheus in CrashloopBackoff state with out-of-memory (OOM) error
- Missing Ceph-rook metrics from monitoring dashboards
- Pods cannot communicate with FQDN in a proxy environment
- Using the Automation Suite Diagnostics Tool
- Using the Automation Suite support bundle
- Exploring Logs

Automation Suite installation guide
Last updated Nov 6, 2025
If you experience issues specific to Kubernetes running on the cluster, you can directly uninstall the rke2 cluster.
-
Depending on your installation profile, run one of the following commands:
1.1. In an online setup, run the following script with elevated privileges, i.e.sudo, on each node of the cluster. This will uninstall the nodes.function remove_rke2_entry_from_exclude() { local current_exclude_list new_exclude_list YUM_CONF_FILE=$1 if [[ ! -s "${YUM_CONF_FILE}" ]]; then # File is empty return fi current_exclude_list=$(grep 'exclude=' "${YUM_CONF_FILE}" | tail -1) if echo "$current_exclude_list" | grep -q 'rke2-*'; then if [[ -w ${YUM_CONF_FILE} ]]; then new_exclude_list=$(printf '%s\n' "${current_exclude_list//rke2-* /}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-*,/}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-\*/}") sed -i "/exclude=.*rke2-\*/d" "${YUM_CONF_FILE}" echo "${new_exclude_list}" >> "${YUM_CONF_FILE}" else error "${YUM_CONF_FILE} file is readonly and contains rke2-* under package exclusion. Please remove the entry for AS to work." fi fi } function enable_rke2_package_upgrade() { remove_rke2_entry_from_exclude /etc/dnf/dnf.conf remove_rke2_entry_from_exclude /etc/yum.conf } enable_rke2_package_upgrade service_exists() { local n=$1 if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | cut -f1 -d' ') == $n.service ]]; then return 0 else return 1 fi } if service_exists rke2-server; then systemctl stop rke2-server systemctl disable rke2-server fi if service_exists rke2-agent; then systemctl stop rke2-agent systemctl disable rke2-agent fi if [ -e /usr/bin/rke2-killall.sh ] then echo "Running rke2-killall.sh" /usr/bin/rke2-killall.sh > /dev/null else echo "File not found: rke2-killall.sh" fi if [ -e /usr/bin/rke2-uninstall.sh ] then echo "Running rke2-uninstall.sh" /usr/bin/rke2-uninstall.sh > /dev/null else echo "File not found: rke2-uninstall.sh" fi crontab -l > backupcron sed -i '/backupjob/d' backupcron > /dev/null crontab backupcron > /dev/null rm -rf backupcron > /dev/null rm -rfv /usr/bin/backupjob > /dev/null rm -rfv /etc/rancher/ > /dev/null rm -rfv /var/lib/rook/ > /dev/null rm -rfv /var/lib/longhorn/ > /dev/null rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null umount -l -f /var/lib/rancher/rke2/server/db > /dev/null 2>&1 || true rm -rfv /var/lib/rancher/* > /dev/null umount -l -f /var/lib/rancher rm -rfv /var/lib/rancher/* > /dev/null while ! rm -rfv /var/lib/kubelet/* > /dev/null; do findmnt --list --submounts -n -o TARGET --target /var/lib/kubelet | grep '/var/lib/kubelet/plugins' | xargs -r umount -f -l sleep 5 done umount -l -f /var/lib/kubelet rm -rfv /var/lib/kubelet/* > /dev/null rm -rfv /datadisk/* > /dev/null umount -l -f /datadisk rm -rfv /datadisk/* > /dev/null rm -rfv ~/.uipath/* > /dev/null rm -rfv /etc/sysconfig/rke2-server > /dev/null rm -rfv /etc/sysconfig/rke2-agent > /dev/null mount /var/lib/rancher mkdir -p /var/lib/rancher/rke2/server/db/ && mount -a rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null echo "Uninstall RKE complete."function remove_rke2_entry_from_exclude() { local current_exclude_list new_exclude_list YUM_CONF_FILE=$1 if [[ ! -s "${YUM_CONF_FILE}" ]]; then # File is empty return fi current_exclude_list=$(grep 'exclude=' "${YUM_CONF_FILE}" | tail -1) if echo "$current_exclude_list" | grep -q 'rke2-*'; then if [[ -w ${YUM_CONF_FILE} ]]; then new_exclude_list=$(printf '%s\n' "${current_exclude_list//rke2-* /}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-*,/}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-\*/}") sed -i "/exclude=.*rke2-\*/d" "${YUM_CONF_FILE}" echo "${new_exclude_list}" >> "${YUM_CONF_FILE}" else error "${YUM_CONF_FILE} file is readonly and contains rke2-* under package exclusion. Please remove the entry for AS to work." fi fi } function enable_rke2_package_upgrade() { remove_rke2_entry_from_exclude /etc/dnf/dnf.conf remove_rke2_entry_from_exclude /etc/yum.conf } enable_rke2_package_upgrade service_exists() { local n=$1 if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | cut -f1 -d' ') == $n.service ]]; then return 0 else return 1 fi } if service_exists rke2-server; then systemctl stop rke2-server systemctl disable rke2-server fi if service_exists rke2-agent; then systemctl stop rke2-agent systemctl disable rke2-agent fi if [ -e /usr/bin/rke2-killall.sh ] then echo "Running rke2-killall.sh" /usr/bin/rke2-killall.sh > /dev/null else echo "File not found: rke2-killall.sh" fi if [ -e /usr/bin/rke2-uninstall.sh ] then echo "Running rke2-uninstall.sh" /usr/bin/rke2-uninstall.sh > /dev/null else echo "File not found: rke2-uninstall.sh" fi crontab -l > backupcron sed -i '/backupjob/d' backupcron > /dev/null crontab backupcron > /dev/null rm -rf backupcron > /dev/null rm -rfv /usr/bin/backupjob > /dev/null rm -rfv /etc/rancher/ > /dev/null rm -rfv /var/lib/rook/ > /dev/null rm -rfv /var/lib/longhorn/ > /dev/null rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null umount -l -f /var/lib/rancher/rke2/server/db > /dev/null 2>&1 || true rm -rfv /var/lib/rancher/* > /dev/null umount -l -f /var/lib/rancher rm -rfv /var/lib/rancher/* > /dev/null while ! rm -rfv /var/lib/kubelet/* > /dev/null; do findmnt --list --submounts -n -o TARGET --target /var/lib/kubelet | grep '/var/lib/kubelet/plugins' | xargs -r umount -f -l sleep 5 done umount -l -f /var/lib/kubelet rm -rfv /var/lib/kubelet/* > /dev/null rm -rfv /datadisk/* > /dev/null umount -l -f /datadisk rm -rfv /datadisk/* > /dev/null rm -rfv ~/.uipath/* > /dev/null rm -rfv /etc/sysconfig/rke2-server > /dev/null rm -rfv /etc/sysconfig/rke2-agent > /dev/null mount /var/lib/rancher mkdir -p /var/lib/rancher/rke2/server/db/ && mount -a rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null echo "Uninstall RKE complete."1.2 In an offline setup, run the following script with elevated privileges, i.e.sudo, on each node of the cluster. This will uninstall the nodes.function remove_rke2_entry_from_exclude() { local current_exclude_list new_exclude_list YUM_CONF_FILE=$1 if [[ ! -s "${YUM_CONF_FILE}" ]]; then # File is empty return fi current_exclude_list=$(grep 'exclude=' "${YUM_CONF_FILE}" | tail -1) if echo "$current_exclude_list" | grep -q 'rke2-*'; then if [[ -w ${YUM_CONF_FILE} ]]; then new_exclude_list=$(printf '%s\n' "${current_exclude_list//rke2-* /}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-*,/}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-\*/}") sed -i "/exclude=.*rke2-\*/d" "${YUM_CONF_FILE}" echo "${new_exclude_list}" >> "${YUM_CONF_FILE}" else error "${YUM_CONF_FILE} file is readonly and contains rke2-* under package exclusion. Please remove the entry for AS to work." fi fi } function enable_rke2_package_upgrade() { remove_rke2_entry_from_exclude /etc/dnf/dnf.conf remove_rke2_entry_from_exclude /etc/yum.conf } enable_rke2_package_upgrade service_exists() { local n=$1 if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | cut -f1 -d' ') == $n.service ]]; then return 0 else return 1 fi } if service_exists rke2-server; then systemctl stop rke2-server systemctl disable rke2-server fi if service_exists rke2-agent; then systemctl stop rke2-agent systemctl disable rke2-agent fi if [ -e /usr/local/bin/rke2-killall.sh ] then echo "Running rke2-killall.sh" /usr/local/bin/rke2-killall.sh > /dev/null else echo "File not found: rke2-killall.sh" fi if [ -e /usr/local/bin/rke2-uninstall.sh ] then echo "Running rke2-uninstall.sh" /usr/local/bin/rke2-uninstall.sh > /dev/null else echo "File not found: rke2-uninstall.sh" fi crontab -l > backupcron sed -i '/backupjob/d' backupcron > /dev/null crontab backupcron > /dev/null rm -rf backupcron > /dev/null rm -rfv /usr/bin/backupjob > /dev/null rm -rfv /etc/rancher/ > /dev/null rm -rfv /var/lib/rook/ > /dev/null rm -rfv /var/lib/longhorn/ > /dev/null rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null umount -l -f /var/lib/rancher/rke2/server/db > /dev/null 2>&1 || true rm -rfv /var/lib/rancher/* > /dev/null umount -l -f /var/lib/rancher rm -rfv /var/lib/rancher/* > /dev/null while ! rm -rfv /var/lib/kubelet/* > /dev/null; do findmnt --list --submounts -n -o TARGET --target /var/lib/kubelet | grep '/var/lib/kubelet/plugins' | xargs -r umount -f -l sleep 5 done umount -l -f /var/lib/kubelet rm -rfv /var/lib/kubelet/* > /dev/null rm -rfv /datadisk/* > /dev/null umount -l -f /datadisk rm -rfv /datadisk/* > /dev/null rm -rfv ~/.uipath/* > /dev/null rm -rfv /etc/sysconfig/rke2-server > /dev/null rm -rfv /etc/sysconfig/rke2-agent > /dev/null mount /var/lib/rancher mkdir -p /var/lib/rancher/rke2/server/db/ && mount -a rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null echo "Uninstall RKE complete."function remove_rke2_entry_from_exclude() { local current_exclude_list new_exclude_list YUM_CONF_FILE=$1 if [[ ! -s "${YUM_CONF_FILE}" ]]; then # File is empty return fi current_exclude_list=$(grep 'exclude=' "${YUM_CONF_FILE}" | tail -1) if echo "$current_exclude_list" | grep -q 'rke2-*'; then if [[ -w ${YUM_CONF_FILE} ]]; then new_exclude_list=$(printf '%s\n' "${current_exclude_list//rke2-* /}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-*,/}") new_exclude_list=$(printf '%s\n' "${new_exclude_list//rke2-\*/}") sed -i "/exclude=.*rke2-\*/d" "${YUM_CONF_FILE}" echo "${new_exclude_list}" >> "${YUM_CONF_FILE}" else error "${YUM_CONF_FILE} file is readonly and contains rke2-* under package exclusion. Please remove the entry for AS to work." fi fi } function enable_rke2_package_upgrade() { remove_rke2_entry_from_exclude /etc/dnf/dnf.conf remove_rke2_entry_from_exclude /etc/yum.conf } enable_rke2_package_upgrade service_exists() { local n=$1 if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | cut -f1 -d' ') == $n.service ]]; then return 0 else return 1 fi } if service_exists rke2-server; then systemctl stop rke2-server systemctl disable rke2-server fi if service_exists rke2-agent; then systemctl stop rke2-agent systemctl disable rke2-agent fi if [ -e /usr/local/bin/rke2-killall.sh ] then echo "Running rke2-killall.sh" /usr/local/bin/rke2-killall.sh > /dev/null else echo "File not found: rke2-killall.sh" fi if [ -e /usr/local/bin/rke2-uninstall.sh ] then echo "Running rke2-uninstall.sh" /usr/local/bin/rke2-uninstall.sh > /dev/null else echo "File not found: rke2-uninstall.sh" fi crontab -l > backupcron sed -i '/backupjob/d' backupcron > /dev/null crontab backupcron > /dev/null rm -rf backupcron > /dev/null rm -rfv /usr/bin/backupjob > /dev/null rm -rfv /etc/rancher/ > /dev/null rm -rfv /var/lib/rook/ > /dev/null rm -rfv /var/lib/longhorn/ > /dev/null rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null umount -l -f /var/lib/rancher/rke2/server/db > /dev/null 2>&1 || true rm -rfv /var/lib/rancher/* > /dev/null umount -l -f /var/lib/rancher rm -rfv /var/lib/rancher/* > /dev/null while ! rm -rfv /var/lib/kubelet/* > /dev/null; do findmnt --list --submounts -n -o TARGET --target /var/lib/kubelet | grep '/var/lib/kubelet/plugins' | xargs -r umount -f -l sleep 5 done umount -l -f /var/lib/kubelet rm -rfv /var/lib/kubelet/* > /dev/null rm -rfv /datadisk/* > /dev/null umount -l -f /datadisk rm -rfv /datadisk/* > /dev/null rm -rfv ~/.uipath/* > /dev/null rm -rfv /etc/sysconfig/rke2-server > /dev/null rm -rfv /etc/sysconfig/rke2-agent > /dev/null mount /var/lib/rancher mkdir -p /var/lib/rancher/rke2/server/db/ && mount -a rm -rfv /var/lib/rancher/rke2/server/db/* > /dev/null echo "Uninstall RKE complete." -
Clean up the OSD disk:
for osddisk in $(find /dev/uipath/ceph -maxdepth 1 -mindepth 1 -type l); do devName=$(basename "${osddisk}") devPath="/dev/${devName}" sgdisk --zap-all "${devPath}" dd if=/dev/zero of="${devPath}" bs=1M count=100 oflag=direct,dsync blkdiscard "${devPath}" done ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove % rm -rf /dev/ceph-* rm -rf /etc/udev/rules.d/99-ceph-raw-osd.rulesfor osddisk in $(find /dev/uipath/ceph -maxdepth 1 -mindepth 1 -type l); do devName=$(basename "${osddisk}") devPath="/dev/${devName}" sgdisk --zap-all "${devPath}" dd if=/dev/zero of="${devPath}" bs=1M count=100 oflag=direct,dsync blkdiscard "${devPath}" done ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove % rm -rf /dev/ceph-* rm -rf /etc/udev/rules.d/99-ceph-raw-osd.rules3, Reboot the node after uninstall.
Important: When uninstalling one of the nodes from the cluster, you must run the following command:kubectl delete node <node_name>. This removes the node from the cluster.