Bootstrapper Fresh install on AlmaLinux 10 fails

Trying a fresh install on: AlmaLinux 10.0 (Purple Lion) x86_64

It keeps failing when it trying to create a domain I didn’t ask it to create or some garbage name ending with .test.

Here is what it gives:

TASK [apnscp/assert-account-works : wait_for] ***********************************************************************
ok: [localhost]

TASK [apnscp/assert-account-works : Create new domain] **************************************************************
fatal: [localhost]: FAILED! => changed=false
cmd:

  • /usr/local/apnscp/bin/AddDomain
  • -o
  • json
  • -c
  • siteinfo,domain=apiscp-int-cghtaeusaempcucqcbaylwep.test
  • -c
  • siteinfo,admin_user=fxcehkqfyeax
  • -c
  • dns,enabled=0
  • -c
  • dns,provider=null
  • -c
  • mail,enabled=0
  • -c
  • mail,provider=null
  • -c
  • ssl,enabled=0
  • -c
  • apache,jail=1
    delta: ‘0:00:03.107599’
    end: ‘2025-09-22 07:51:02.270990’
    failed_when_result: true
    msg: non-zero return code
    rc: 255
    start: ‘2025-09-22 07:50:59.163391’
    stderr: ‘’
    stderr_lines:
    stdout: ‘[{“message”:"no billing identifier specified for site, generated `apnscp-DDJBLTEP’‘",“severity”:4,“caller”:“Opcenter\Service\Validators\Billing\Invoice::valid”,“bt”:null},{“message”:"no mysql database prefix specified - suggesting `apis_’‘",“severity”:4,“caller”:“Opcenter\Service\Validators\Mysql\Dbaseprefix::valid”,“bt”:null},{“message”:"no bandwidth rollover date specified, using day of month, `22’‘",“severity”:4,“caller”:“Opcenter\Service\Validators\Bandwidth\Rollover::valid”,“bt”:null},{“message”:"No password specified - generating random password: `VfWtehP8PPBtQrwgM5B5hxTX9za9BEfr’‘",“severity”:4,“caller”:“Opcenter\Service\Validators\Auth\Tpasswd::valid”,“bt”:null},{“message”:“allocated port range [40010,40019] for account”,“severity”:4,“caller”:“Opcenter\Service\Validators\Ssh\PortIndex::valid”,“bt”:null},{“message”:“mail disabled - disabling vacation”,“severity”:4,“caller”:“Opcenter\Service\Validators\Vacation\Enabled::valid”,“bt”:null},{“message”:“setquota:
    setquota: Error getting quota information to update.\n”,“severity”:16,“caller”:“Util_Process::formatDataCallProc”,“bt”:null},{“message”:"failed to set quota for `admin1’‘: setquota: Error getting quota information to update.\n",“severity”:16,“caller”:“Opcenter\Filesystem\Quota::set”,“bt”:null},{“message”:"failed to commit service configuration for `diskquota’‘: setquota: setquota: Error getting quota information to update.\n",“severity”:16,“caller”:“Opcenter\Service\Validators\Common\Enabled::Opcenter\Service\Validators\Common\{closure}”,“bt”:null},{“message”:"pam service `ssh’’ not enabled",“severity”:8,“caller”:“Opcenter\Provisioning\Pam::disable”,“bt”:null},{“message”:“pam service `ftp’’ not enabled”,“severity”:8,“caller”:“Opcenter\Provisioning\Pam::disable”,“bt”:null},{“message”:“setquota: setquota: Error getting quota information to update.\n”,“severity”:16,“caller”:“Util_Process::formatDataCallProc”,“bt”:null},{“message”:“failed to set quota for `admin1’': setquota:
    Error getting quota information to update.\n”,“severity”:16,“caller”:“Opcenter\Filesystem\Quota::set”,“bt”:null},{“message”:“fatal(): failed to create account”,“severity”:64,“caller”:“Opcenter\Filesystem::populate”,“bt”:null}]’
    stdout_lines:

PLAY RECAP **********************************************************************************************************
localhost : ok=2084 changed=852 unreachable=0 failed=1 skipped=668 rescued=1 ignored=20

ERR: Stage 2 bootstrap failed
Run ‘cd /usr/local/apnscp/resources/playbooks && env ANSIBLE_LOG_PATH=/root/apnscp-bootstrapper.log BOOTSTRAP_SH=/root/resume_apnscp_setup.sh ansible-playbook -l localhost -c local bootstrap.yml’ to resume
Installation failed

That’s used as a final assertion to ensure the entire platform has provisioned correctly.

{“message”:"failed to commit service configuration for `diskquota’‘: setquota: setquota: Error getting quota information to update.\n",“severity”:16,“caller”:“Opcenter\Service\Validators\Common\Enabled::Opcenter\Service\Validators\Common\{closure}”,“bt”:null}

From this it hasn’t - we don’t have quotas enabled on the platform, which means it’s most certainly xfs.

Does /etc/kernel/cmdline exist on this machine? How did you install AlmaLinux 10- from a cloud provider, ISO, or qcow2 image?

I made / and /home xfs during the install.

Package quota-1:4.09-9.el10.x86_64 is already installed.
Package quota-nls-1:4.09-9.el10.noarch is already installed.

quota-devel, quota-nld and rpcbind where not installed.

Used the AlmaLinux 10.0 DVD downloaded directly from AlmaLinux.

/etc/kernel/cmdline doesn’t exist on the server, only grub, which has:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=“$(sed ‘s, release .*$,g’ /etc/system-release)”
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=“console”
GRUB_CMDLINE_LINUX="root=/dev/mapper/almalinux_stl2–19-root ro crashkernel=no resume=UUID=b679feeb-d1dd-4742-940d-c>
GRUB_DISABLE_RECOVERY=“true”
GRUB_ENABLE_BLSCFG=true

Usually most control panels want a new almost bare system when they get installed.

So it looks like installing quota-devel, quota-nld and rpcbind took care of it.

Now got:

PLAY RECAP **********************************************************************************************************
localhost : ok=1655 changed=19 unreachable=0 failed=0 skipped=843 rescued=1 ignored=0

No, it skipped an account assertion at the end. Package solving is automatic; deps are pulled in as needed. Those ancillary packages are unneeded.

The issue is that / isn’t mounted with usrquota,grpquota features.

/dev/sda3 on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,usrquota,prjquota,grpquota)

Performing a buildout on an Alma 10 image + asking around for someone else who had a similar issue, i.e. /etc/kernel/cmdline was missing in his image as well on EL10.

Added a new routine to detect /etc/default/grub and /etc/kernel/cmdline on new installs going forward. EL10 is rebased from Fedora 40, and 39 introduced /etc/kernel/cmdline. Rocky 10’s CloudGeneric image refers still to /etc/default/grub as does your install from Alma 10 ISO while my Minimal installs for both Rocky and Alma referred to /etc/kernel/cmdline.

:person_shrugging: