Skip to content

xcat

basic

lsdef
lsdef -t node
lsdef -t node cn1
nodels
man node

tabdump
tabdump {table}
tabdump -d {table}
man {table}
man xcatdb

chdef -t site master="xcat_master_ip"
chtab key=system passwd.username=root passwd.password=`openssl passwd -1 abc123`
chtab key=xcat passwd.username=xcatws passwd.password=`openssl passwd -1 abc123`

chdef -t node -o cn1 ip="192.168.89.30"
chdef -t network 10_0_0_0-255_255_0_0 dynamicrange="10.0.100.1-10.0.100.100"

mkdef -t node cn1 --template x86_64-template ip=192.168.89.29 mac=3C:EC:EF:6E:FD:F2 bmc=172.17.43.236 bmcusername=aaa bmcpassword=vvv

xcatprobe xcatmn -i ens160

copycds rhel-8.5-x86_64-dvd.iso

xcatprobe osdeploy -n cn1

makenetworks

chdef -t osimage rhels8.8.0-x86_64-netboot-compute pkglist=/install/custom/package/rh8/compute.rhels8.x86_64.pkglist

rmimage rhels8.8.0-custom-statelite
rm /install/netboot/rhels8.8.0/x86_64/compute/rootimg-statelite.gz

mkdef -t osimage -o rhels8.8.0-x86_64-netboot-compute-ted --template rhels8.8.0-x86_64-netboot-compute
chdef -t osimage -o rhels8.8.0-x86_64-netboot-compute-ted rootimgdir=/install/netboot/rhels8.8.0/x86_64/compute/ted
chdef -t osimage -o rhels8.8.0-x86_64-netboot-compute-ted -p postbootscripts=customzied_setup_node


chdef -t node -o p2an002 -p postbootscripts=customzied_setup_node


# ntp
chdef -t site extntpservers="0.pool.ntp.org,1.pool.ntp.org"
makentp

# backup
lsdef -z node12 > predefined.stanzas.node12
# remove xcat node info
nodepurge node12

# restore
cat predefined.stanzas.node12 | mkdef -z

/install/postscripts/customzied_setup_node

#!/bin/bash

echo "mypostbootscript begin"
df -hT
useradd -m foo 
echo 'foo:bar' | chpasswd
echo "mypostbootscript end"

travesal

Set static BMC IP using different IP address (recommended) — xCAT 2.16.4 documentation

bmcdiscover --range 172.17.30.124 -u {bmc_id} -p {bmc_pwd} -z > predefined.stanzas
cat predefined.stanzas | mkdef -z

mtms discovery

xcat 2.16.5 need to change the code /opt/xcat/lib/perl/xCAT_plugin/bmcdiscover.pm Line 1205 to 1221

#if (($fru_output =~ /Chassis Part Number\s*:\s*(\S*).*Chassis Serial\s*:\s*(\S*)/)) {
#    $mtm    = $1;
#    $serial = $2;
#    last;
#}
#if (($fru_output =~ /Product Part Number   :\s*(\S*).*Product Serial        :\s*(\S*)/)) {
#    $mtm    = $1;
#    $serial = $2;
#    last;
#}
if (($fru_output =~ /Product Manufacturer\s+:\s+(.*?)\s+Product Part Number\s+:\s+(.*?)\s+P.*?roduct Serial\s+:\s+(\S+)/)) {
    $mtm    = $1.":".$2;
    $serial = $3;
    last;
}

root cause is from https://github.com/xcat2/xcat-core/blob/1534231ae7b7e0b4136ffef16374c0a870710a75/xCAT-genesis-scripts/usr/bin/dodiscovery#L93

follow MTMS-based Discovery — xCAT 2.16.5 documentation

internal

https://github.com/xcat2/xcat-core/blob/f7e389a0c03fb18f8f1236cb4ad3fe8605765c51/xCAT-server/lib/xcat/plugins/bmcdiscover.pm#L619 scan_process nmap to get live_ip ipmitool-xcat to get mc info

bmc discovery issues

build gensis image on rhel 9.3

cd /tmp
git clone -b master https://github.com/xcat2/xcat-core.git
cd /tmp/xcat-core/xCAT-genesis-builder
# chnage the xcat-cmdline.sh, add all drivers
# before:
# for line in `cat /lib/modules/$KERVER/modules.dep |grep -vE 'tunnel|ieee|ifb|bond|dummy|fjes|hv_netvsc|ntb_netdev|xen-netfront|hdlc_fr|dlci'| awk -F: '{print \$1}' | sed -e "s/\(.*\)\.ko.*/\1/"`; do
# after:
# for line in `cat /lib/modules/$KERVER/modules.dep | awk -F: '{print \$1}' | sed -e "s/\(.*\)\.ko.*/\1/"`; do
rm -rf /root/rpmbuild
./buildrpm
rpm -qa | grep 'xCAT-genesis-base-x86_64'
rpm -e --nodeps $(rpm -qa | grep 'xCAT-genesis-base-x86_64')
cd /root/rpmbuild/RPMS/noarch
rpm -ivh xCAT-genesis-base*.rpm

# for missing packages
dnf install dhclient rng-tools device-mapper
grep -irn '/lib/udev/rules.d/69-dm-lvm*' /tmp/xcat-core/xCAT-genesis-builder/install
# replace /lib/udev/rules.d/69-dm-lvm-metad.rules into /lib/udev/rules.d/69-dm-lvm.rules in the /tmp/xcat-core/xCAT-genesis-builder/install

mknb x86_64

initialize after docker container start

basic

# xcat_master_ip is 192.168.89.10
chdef -t site domain="polab"
chdef -t site master="{xcat_master_ip}"
chdef -t site dhcpinterfaces="ens192"
chtab key=system passwd.username=root passwd.password=`openssl passwd -1 abc123`
echo "192.168.89.10 xcatmn xcatmn.polab" >> /etc/hosts

# networks
mkdef -t network -o provision_net net=192.168.89.0 mask=255.255.255.0 gateway=192.168.89.254 mgtifname=ens192 dhcpserver=192.168.89.10 tftpserver=192.168.89.10 nameservers=192.168.89.10 dynamicrange=192.168.89.30-192.168.89.40 staticrange=192.168.89.29-192.168.89.29 mtu=1500
tabch -d netname=172_18_0_0-255_255_0_0 networks # remove docker related net

# node
mkdef -t node cn1 --template x86_64-template ip=192.168.89.29 mac=3C:EC:EF:6E:FD:F2 bmc=172.17.43.236 bmcusername=aaa bmcpassword=vvv

# dns
makehosts cn1 # check the /etc/hosts
makedns -n # systemctl status named

# dhcp
makedhcp -n # check the /etc/dhcp/dhcpd.conf
makedhcp -a # check the /var/lib/dhcpd/dhcpd.leases in redhat; /var/lib/dhcp/dhcpd.leases in ubuntu

# verity environment is ok for deploying os
xcatprobe xcatmn -i ens192

# deploy os
copycds CentOS-7-x86_64-DVD-2009.iso
lsdef -t osimage
rinstall cn1 osimage=centos-stream8-x86_64-install-compute

# check the deploy status
xcatprobe osdeploy -n cn1

use existed node info

lsdef -z node22 > predefined.stanzas
cat predefined.stanzas | mkdef -z

networks

rest api

# run the xcat command xcatconfig to generate a new server certificate based on the correct hostname
xcatconfig -c

# change the ssl config file
export sslcfgfile=/etc/httpd/conf.d/ssl.conf
sed -i 's/^\(\s*\)SSLCertificateFile.*$/\1SSLCertificateFile \/etc\/xcat\/cert\/server-cred.pem/' $sslcfgfile
sed -i 's/^\(\s*SSLCertificateKeyFile.*\)$/#\1/' $sslcfgfile
systemctl restart httpd

# create the user who can access rest api
tabch key=xcat,username=root passwd.password=`openssl passwd -1 123456`

# download the xCAT certificate CA from the xCAT http server to authenticate the certificate of the server. 
cd /root && wget http://xcatmn.polab/install/postscripts/ca/ca-cert.pem

# test
curl -X GET --cacert /root/ca-cert.pem 'https://xcatmn.polab/xcatws/nodes?userName=root&userPW=123456'

# token
curl -X POST --cacert /etc/pki/tls/certs/localhost.crt -H Content-Type:application/json --data '{"userName":"root","userPW":"123456"}' 'https://xcatmn.polab/xcatws/tokens?pretty=1'

curl -X GET --cacert /etc/pki/tls/certs/localhost.crt -H X-Auth-Token:9b4481fd-9eab-4c7d-81fc-064af4420efe 'https://xcatmn.polab/xcatws/nodes'

httpd

check the /etc/httpd/conf.d/xcat.conf

if redhat, it means that local repo - BaseOS - AppStream

remote console

customized

partition

package list

log rotation

/etc/logrotate.d/xcat

/var/log/xcat/*.log {
    daily
    rotate 3
    size 1G
    missingok
    sharedscripts
    copytruncate
    compress
    delaycompress
    postrotate
        test -f /var/run/rsyslogd.pid && kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
        test -f /var/run/syslogd.pid && kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        test -f /var/run/xcat/cmdlogservice.pid && kill -HUP `cat /var/run/xcat/cmdlogservice.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

sudo logrotate -d /etc/logrotate.d/xcat

CLI

makehosts

sets up /etc/hosts from the xCAT hosts table. makehosts.8 — xCAT 2.16.4 documentation

makedns

By default, makedns sets up the named service and updates the DNS records on the local system (management node).

makedns.8 — xCAT 2.16.4 documentation

makedhcp

cat /var/lib/dhcpd/dhcpd.leases

copycds

Select or Create an osimage Definition — xCAT 2.16.4 documentation copy all contents of Distribution DVDs/ISOs or Service Pack DVDs/ISOs to a destination directory, and create several relevant osimage definitions by default.

  • <os>-<arch>-install-compute is the default osimage definition used for diskful installation
  • <os>-<arch>-netboot-compute is the default osimage definition used for diskless installation
  • <os>-<arch>-install-service is the default osimage definition used for service node deployment which shall be used in hierarchical environment

rinstall

rinstall.8 — xCAT 2.16.4 documentation

noderange

noderange.3 — xCAT 2.16.4 documentation

group

group — xCAT 2.16.4 documentation - static - contain a specific set of cluster nodes. - dynamic - determined by specifying a selection criteria for node attributes. - The selection criteria is a list of attr\<operator>val pairs that can be used to determine the members of a group

lsdef -t group

:::info In a large cluster environment it is recommended to focus on group definitions as much as possible and avoid setting the attribute values in the individual node definition. :::

There are two basic ways to create xCAT static node groups. 1. You can either set the groups attribute of the node definition 2. you can create a group definition directly.

These two options will result in exactly the same definitions and attribute values being created in the xCAT database.

Diskless

# prepare rhel latest iso and copycds
copycds /tmp/rhel-8.8-x86_64-dvd.iso

# [optional]customized some behavior for example
lsdef -t osimage -o rhels8.8.0-x86_64-netboot-compute -i postinstall
chdef -t osimage -o rhels8.8.0-x86_64-netboot-compute -p postinstall=/install/custom/postinstall/rh8/mypostscript

# [optional]custimized package list
lsdef -t osimage -o rhels8.8.0-x86_64-netboot-compute -i pkglist
chdef -t osimage rhels8.8.0-x86_64-netboot-compute pkglist=/install/custom/package/rh8/compute.rhels8.x86_64.pkglist

# generate a diskless image
genimage rhels8.8.0-x86_64-netboot-compute
# After running genimage to create the image, run packimage to create the ramdisk
packimage rhels8.8.0-x86_64-netboot-compute

# associate a specific image to a node
nodeset <nodename> osimage=rhels8.8.0-x86_64-netboot-compute

# Start the OS Deployment
rsetboot <nodename> net -u
rpower <nodename> reset

/install/custom/postinstall/rh8/mypostscript

#!/bin/sh

installroot=$1
osver=$2
arch=$3
profile=$4
workdir=$5

echo "167.22.10.1:/opt_shared /opt_shared nfs defaults,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.mount-timeout=30 0 0" >> $installroot/etc/fstab
test -d "$installroot/opt_shared"  && echo "$installroot/opt_shared exist" ||  mkdir $installroot/opt_shared

default /opt/xcat/share/xcat/netboot/rh/compute.rhels8.x86_64.pkglist

@minimal-environment
chrony
kernel
net-tools
nfs-utils
openssh-server
rsync
tar
util-linux
wget
python3
tar
bzip2
bc
dracut
dracut-network
rsyslog
hostname
e2fsprogs
ethtool
parted
openssl
dhclient
openssh-clients
bash
vim-minimal
rpm
iputils
perl-interpreter

customized /install/custom/package/rh8/compute.rhels8.x86_64.pkglist

@Server with GUI
@development
@infiniband
@performance
@scientific
@system-tools
chrony
net-tools
nfs-utils
openssh-server
rsync
util-linux
wget
python3
tar
bzip2
perl-interpreter

/install/custom/compute.rhels8.x86_64.exlist

./boot*
./usr/lib/locale*
./usr/lib64/perl5/Encode/CN*
./usr/lib64/perl5/Encode/JP*
./usr/lib64/perl5/Encode/TW*
./usr/lib64/perl5/Encode/KR*
./lib/kbd/keymaps/i386*
./lib/kbd/keymaps/mac*
./lib/kdb/keymaps/include*
./usr/local/include*
./usr/local/share/man*
./usr/share/man*
./usr/share/cracklib*
./usr/share/doc*
./usr/share/gnome*
./usr/share/i18n*
+./usr/share/i18n/en_US*
./usr/share/info*
./usr/share/locale/*
+./usr/share/locale/en_US*
+./usr/share/locale/C*
+./usr/share/locale/locale.alias
+./usr/lib/locale/locale-archive
+./usr/lib/locale/en*
+./usr/lib/locale/C*
./usr/share/man*
./usr/share/omf*
./usr/share/vim/site/doc*
./usr/share/vim/vim74/doc*
./var/cache/man*
./var/lib/yum*
./tmp*

Change the rootfs size

genimage rhels8.8.0-x86_64-netboot-compute -l 8g

Offline installation

for redhat 8

wget https://raw.githubusercontent.com/xcat2/xcat-core/master/xCAT-server/share/xcat/tools/go-xcat
chmod +x go-xcat
wget https://xcat.org/files/xcat/xcat-core/2.16.x_Linux/xcat-core/xcat-core-2.16.5-linux.tar.bz2
wget https://xcat.org/files/xcat/xcat-dep/2.x_Linux/xcat-dep-2.16.5-linux.tar.bz2
./go-xcat --yes --xcat-core=/tmp/xcat-core-2.16.5-linux.tar.bz2 --xcat-dep=/tmp/xcat-dep-2.16.5-linux.tar.bz2 install

for rhel 9.3

# build the CRB and epel offline for rhel 9
subscription-manager identity
subscription-manager unregister
subscription-manager register --username foo@bar.com
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
sudo tee /etc/yum.repos.d/crb.repo > /dev/null <<EOF
[CRB]
name=Centos Stream \$releasever - CRB
baseurl=https://mirror.stream.centos.org/9-stream/CRB/x86_64/os
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
EOF
mkdir /tmp/xcat-2.17.0_offline_redhat-9
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-Crypt-CBC
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-IO-Tty
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-Expect
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-Crypt-Rijndael
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-Sys-Virt
dnf download --downloaddir=/tmp/xcat-2.17.0_offline_redhat-9 --resolve perl-Crypt-SSLeay
cd /tmp && tar zcvf xcat-2.17.0_offline_redhat-9.tar.gz xcat-2.17.0_offline_redhat-9


# CRB and epel offline
tar zxvf xcat-2.17.0_offline_redhat-9.tar.gz
# rpm -ivh xcat-2.17.0_offline_redhat-9/*.rpm
sudo dnf install -y xcat-2.17.0_offline_redhat-9/*.rpm --allowerasing

# rhel 9.3 BaseOS and AppStream offline
wget http://172.19.30.2/ISO/rh/rhel-9.3-x86_64-dvd.iso
sudo mount -o loop rhel-9.3-x86_64-dvd.iso /mnt
shopt -s dotglob
mkdir -p /install/rhel-9.3
cp -avRpf /mnt/* /install/rhel-9.3/
sudo tee /etc/yum.repos.d/LocalRhel.repo > /dev/null <<EOF
[BaseOS]
name=Red Hat Enterprise Linux 9.3 BaseOS
enabled=1
gpgcheck=0
baseurl=file:///install/rhel-9.3/BaseOS

[AppStream]
name=Red Hat Enterprise Linux 9.3 AppStream
enabled=1
gpgcheck=0
baseurl=file:///install/rhel-9.3/AppStream
EOF
dnf clean all
dnf makecache
dnf repolist
dnf repolist all
sudo dnf config-manager --disable \*
sudo dnf config-manager --enable BaseOS,AppStream
# sudo dnf config-manager --disable rhel-9-for-x86_64-baseos-rpms,rhel-9-for-x86_64-appstream-rpms,epel,epel-cisco-openh264,CRB,docker-ce-stable


# install
wget https://raw.githubusercontent.com/xcat2/xcat-core/master/xCAT-server/share/xcat/tools/go-xcat && chmod +x go-xcat
wget http://172.19.30.2/archive/xcat/xcat-core-2.17.0-linux.tar.bz2
wget http://172.19.30.2/archive/xcat/xcat-dep-2.17.0-linux.tar.bz2
ip route del default
ip route del default
./go-xcat -y --xcat-core=/tmp/xcat-core-2.17.0-linux.tar.bz2 --xcat-dep=/tmp/xcat-dep-2.17.0-linux.tar.bz2 install

for ubuntu

wget https://raw.githubusercontent.com/xcat2/xcat-core/master/xCAT-server/share/xcat/tools/go-xcat
chmod +x go-xcat
wget https://xcat.org/files/xcat/xcat-core/2.16.x_Ubuntu/xcat-core/xcat-core-2.16.5-ubuntu.tar.bz2
wget https://xcat.org/files/xcat/xcat-dep/2.x_Ubuntu/xcat-dep-2.16.5-ubuntu.tar.bz2
./go-xcat --yes --xcat-core=xcat-core-2.16.5-ubuntu.tar.bz2 --xcat-dep=xcat-dep-2.16.5-ubuntu.tar.bz2 install

support ubuntu

nodeset node21 osimage=ubuntu22.04.4-x86_64-install-compute
rsetboot node21 net -u
rpower node21 reset
xcatprobe osdeploy -n  node21
/install/autoinst/node21.pre >> storage
/install/autoinst/node21/user-data >> autoinstall
/opt/xcat/share/xcat/install/scripts/pre.ubuntu.subiquity

package issue when provision

Apr 18 00:56:18 node21 subiquity_log.2571[30806]: INFO  Running in chroot, ignoring command 'start'
Apr 18 00:56:18 node21 subiquity_event.2571[2571]: INFO      subiquity/Install/install/configure_apt/cmd-in-target: curtin command in-target
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:1 file:/cdrom jammy InRelease
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Ign:1 file:/cdrom jammy InRelease
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:2 file:/cdrom jammy Release [1072 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:2 file:/cdrom jammy Release [1072 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:3 file:/cdrom jammy Release.gpg [833 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:3 file:/cdrom jammy Release.gpg [833 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:4 file:/cdrom jammy/main amd64 Packages [34.5 kB]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Ign:4 file:/cdrom jammy/main amd64 Packages
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:5 file:/cdrom jammy/restricted amd64 Packages [648 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Ign:5 file:/cdrom jammy/restricted amd64 Packages
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:4 file:/cdrom jammy/main amd64 Packages [34.5 kB]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:5 file:/cdrom jammy/restricted amd64 Packages [648 B]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Err:5 file:/cdrom jammy/restricted amd64 Packages
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO    Hash Sum mismatch
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO    Hashes of expected file:
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO     - Filesize:1009 [weak]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO     - SHA256:886da05863935c3df41454d5cf3b5c6a54735d16e5b0ac3393803f279501c3df
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO    Hashes of received file:
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO     - SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO     - Filesize:0 [weak]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO    Last modification reported: Thu, 18 Apr 2024 02:36:12 +0000
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO    Release file created at: Thu, 21 Apr 2022 17:16:08 +0000
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Get:6 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Apr 18 00:56:18 node21 subiquity_log.2571[30324]: INFO  Hit:7 http://au.archive.ubuntu.com/ubuntu jammy InRelease
Apr 18 00:56:19 node21 subiquity_log.2571[30324]: INFO  Get:8 http://au.archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Apr 18 00:56:19 node21 subiquity_log.2571[30324]: INFO  Get:9 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1346 kB]
Apr 18 00:56:19 node21 systemd-timesyncd[1415]: INFO  Timed out waiting for reply from 172.19.44.245:123 (172.19.44.245).
...
...
...
Apr 18 00:56:35 node21 subiquity_log.2571[30324]: INFO  Get:43 http://au.archive.ubuntu.com/ubuntu jammy-backports/universe Translation-en [16.2 kB]
Apr 18 00:56:35 node21 subiquity_log.2571[30324]: INFO  Get:44 http://au.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 c-n-f Metadata [644 B]
Apr 18 00:56:35 node21 subiquity_log.2571[30324]: INFO  Get:45 http://au.archive.ubuntu.com/ubuntu jammy-backports/multiverse amd64 c-n-f Metadata [116 B]
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO  Fetched 10.7 MB in 16s (654 kB/s)
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO  Reading package lists...
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO  E: Failed to fetch store:/cdrom/dists/jammy/restricted/binary-amd64/Packages  Hash Sum mismatch
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO     Hashes of expected file:
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO      - Filesize:1009 [weak]
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO      - SHA256:886da05863935c3df41454d5cf3b5c6a54735d16e5b0ac3393803f279501c3df
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO     Hashes of received file:
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO      - SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO      - Filesize:0 [weak]
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO     Last modification reported: Thu, 18 Apr 2024 02:36:12 +0000
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO     Release file created at: Thu, 21 Apr 2022 17:16:08 +0000
Apr 18 00:56:38 node21 subiquity_log.2571[30324]: INFO  E: Some index files failed to download. They have been ignored, or old ones used instead.
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  TIMED subp(['udevadm', 'settle']): 0.016
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['mount', '--make-private', '/tmp/tmp5nkye71l/mount/sys/firmware/efi/efivars'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['umount', '/tmp/tmp5nkye71l/mount/sys/firmware/efi/efivars'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['mount', '--make-private', '/tmp/tmp5nkye71l/mount/sys'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['umount', '/tmp/tmp5nkye71l/mount/sys'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['mount', '--make-private', '/tmp/tmp5nkye71l/mount/run'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['umount', '/tmp/tmp5nkye71l/mount/run'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['mount', '--make-private', '/tmp/tmp5nkye71l/mount/proc'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['umount', '/tmp/tmp5nkye71l/mount/proc'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['mount', '--make-private', '/tmp/tmp5nkye71l/mount/dev'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  Running command ['umount', '/tmp/tmp5nkye71l/mount/dev'] with allowed return codes [0] (capture=False)
Apr 18 00:56:38 node21 subiquity_log.2571[29699]: INFO  finish: cmd-in-target: FAIL: curtin command in-target
Apr 18 00:56:38 node21 curtin_event.2571.3[29699]: DEBUG  finish: cmd-in-target: FAIL: curtin command in-target
Apr 18 00:56:38 node21 systemd[1]: NOTICE  run-u34.service: Main process exited, code=exited, status=100/n/a
Apr 18 00:56:38 node21 systemd[1]: WARNING  run-u34.service: Failed with result 'exit-code'.
Apr 18 00:56:38 node21 systemd[1]: INFO  run-u34.service: Consumed 6.250s CPU time.
Apr 18 00:56:38 node21 subiquity_event.2571[2571]: INFO    subiquity/Install/install/configure_apt: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.2571', '--property', 'PrivateMounts=yes', '--setenv', 'PATH=/snap/subiquity/5495/bin:/snap/subiquity/5495/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/5495/bin:/snap/subiquity/5495/sbin', '--setenv', 'PYTHONPATH=:/snap/subiquity/5495/lib/python3.10/site-packages', '--setenv', 'PYTHON=/snap/subiquity/5495/usr/bin/python3.10', '--setenv', 'SNAP=/snap/subiquity/5495', '--', '/snap/subiquity/5495/usr/bin/python3.10', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.2571.3"}}', 'in-target', '-t', '/tmp/tmp5nkye71l/mount', '--', 'apt-get', 'update']' returned non-zero exit status 100.
Apr 18 00:56:38 node21 subiquity_event.2571[2571]: INFO  subiquity/Install/install: Command '['systemd-run', '--wait', '--same-dir', '--property', 'SyslogIdentifier=subiquity_log.2571', '--property', 'PrivateMounts=yes', '--setenv', 'PATH=/snap/subiquity/5495/bin:/snap/subiquity/5495/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/subiquity/5495/bin:/snap/subiquity/5495/sbin', '--setenv', 'PYTHONPATH=:/snap/subiquity/5495/lib/python3.10/site-packages', '--setenv', 'PYTHON=/snap/subiquity/5495/usr/bin/python3.10', '--setenv', 'SNAP=/snap/subiquity/5495', '--', '/snap/subiquity/5495/usr/bin/python3.10', '-m', 'curtin', '--showtrace', '-vvv', '--set', 'json:reporting={"subiquity": {"type": "journald", "identifier": "curtin_event.2571.3"}}', 'in-target', '-t', '/tmp/tmp5nkye71l/mount', '--', 'apt-get', 'update']' returned non-zero exit status 100.
Apr 18 00:56:38 node21 subiquity_event.2571[2571]: INFO    subiquity/ErrorReporter/1713426998.094931126.install_fail/add_info
Apr 18 00:56:39 node21 subiquity_event.2571[2571]: INFO      subiquity/Install/install/configure_apt/cmd-in-target: curtin command in-target
Apr 18 00:56:39 node21 subiquity_event.2571[2571]: INFO    subiquity/ErrorReporter/1713426998.094931126.install_fail/add_info: written to /var/crash/1713426998.094931126.install_fail.crash
Apr 18 00:56:39 node21 subiquity_event.2571[2571]: INFO  subiquity/Error/run
Apr 18 00:56:39 node21 subiquity_event.2571[2571]: INFO    subiquity/Error/run/run
Apr 18 00:56:39 node21 subiquity_event.2571[2571]: INFO      subiquity/Error/run/run/command_0: tar -c --transform='s/^/node21-logs\//' /var/crash /var/logs/installer |nc -l 8080
Apr 18 00:56:39 node21 subiquity_echo.2571[2571]: INFO    running tar -c --transform='s/^/node21-logs\//' /var/crash /var/logs/installer |nc -l 8080
Apr 18 00:56:39 node21 subiquity_echo.2571[56000]: INFO  tar: Removing leading `/' from member names
Apr 18 00:56:39 node21 subiquity_echo.2571[56000]: INFO  tar: Removing leading `/' from hard link targets

failure provision

[root@orch-xcat ubuntu22.04.4]# ls -la /install/ubuntu22.04.4/x86_64/dists/jammy/restricted/binary-amd64/
total 4
dr-xr-xr-x 2 root root  41 Apr 17 19:36 .
dr-xr-xr-x 5 root root  59 Feb 16 15:51 ..
-rw-r--r-- 1 root root   0 Apr 17 19:36 Packages
-r--r--r-- 1 root root 648 Feb 16 15:52 Packages.gz

success provision

[root@orch-xcat ubuntu22.04.4]# ls -la /install/ubuntu22.04.4/x86_64/dists/jammy/restricted/binary-amd64/
total 8
dr-xr-xr-x 2 root root   41 Apr 18 02:52 .
dr-xr-xr-x 5 root root   59 Feb 16 15:51 ..
-r--r--r-- 1 root root 1009 Apr 18 02:52 Packages
-r--r--r-- 1 root root  648 Feb 16 15:52 Packages.gz

[root@orch-xcat ~]# chdef -t node -o node22 kcmdline="modprobe.blacklist=nvidiafb"
[root@orch-xcat ~]# chdef -t node -o node22 installnic="mac"
[root@orch-xcat ~]# lsdef -t node node21
Object name: node21
    arch=x86_64
    bmc=172.19.47.21
    bmcpassword=Super123
    bmcusername=SMCI
    cons=ipmi
    currchain=boot
    currstate=install ubuntu22.04.4-x86_64-compute
    getmac=ipmi
    groups=all
    installnic=mac
    ip=172.19.48.21
    kcmdline=modprobe.blacklist=nvidiafb
    mac=3c:ec:ef:6e:ff:42
    mgt=ipmi
    netboot=xnba
    os=ubuntu22.04.4
    postbootscripts=otherpkgs
    postscripts=syslog,remoteshell,syncfiles
    profile=compute
    provmethod=ubuntu22.04.4-x86_64-install-compute
    serialport=0
    serialspeed=115200
    status=booting
    statustime=04-18-2024 03:01:45
    usercomment=the system X node definition
    xcatmaster=172.19.48.10

ssh issue after provision

Retrying flag update

  • https://github.com/xcat2/xcat-core/issues/7147#issuecomment-1107274460

install xcat in docker

docker run --rm -it -v /sys/fs/cgroup:/sys/fs/cgroup:rw --tmpfs /run --tmpfs /run/lock --name xcat-on-ubuntu xcat-on-docker-ubuntu /lib/systemd/systemd

https://serverfault.com/questions/1053187/systemd-fails-to-run-in-a-docker-container-when-using-cgroupv2-cgroupns-priva

docker run --rm -it --tmpfs /run --tmpfs /run/lock --privileged --name xcat-on-ubuntu xcat-on-docker-ubuntu /lib/systemd/systemd
docker run --rm -it --privileged --name xcat-on-ubuntu xcat-on-docker-ubuntu /lib/systemd/systemd

pxe boot

-/tftpboot/xcat/xnba/nets/172.19.50.0_24.uefi - TFTP - Learning Lounge - start command - in.tftpd(8) - Linux man page

ps aux |grep tftp

root        1406  0.0  0.0   4940   640 ?        Ss   Jul24   0:00 /usr/sbin/in.tftpd -v -l -s /tftpboot -m /etc/tftpmapfile4xcat.conf

debug

# bypass the certificate check
XCATBYPASS=1 lsdef -t node

SSL

Unable to open socket connection to xcatd daemon on localhost:3001.
Verify that the xcatd daemon is running and that your SSL setup is correct.
Connection failure:  at /opt/xcat/lib/perl/xCAT/Client.pm line 282.