Foreman 2.4 test week

Foreman 2.4 RC2 has been announced and it’s the time to put our effort into making sure that all most important features are not broken hard. We need your help! It’s easy to get your hands dirty and help us with testing:

  1. Install Foreman RC version (the most up to date one)
  2. Pick a scenario from this post or add your own scenario
  3. If you find an issue, file it in the RedMine and make a comment in this thread linking the issue
  4. Mark the scenario as checked in this OP (this is an editable wiki post), here is syntax of checked and unchecked lines (you can click on checkboxes directly with mouse):
    • Unchecked
    • Checked

Installation

  • Install Foreman using existing script/forklift/beaker
    • Forklift
    • My own install script
  • Install Foreman manually by following our installation guide
    • RHEL / CentOS stable
    • Debian / Ubuntu stable
  • Install Foreman manually by following our new installation guide
    • RHEL / CentOS
    • Debian / Ubuntu
  • Upgrade existing Foreman deployment (advertise in RedMine it was an upgraded instance if you encounter bug)
    • RHEL / CentOS
    • Debian / Ubuntu
  • Sanity checks
    • Installation on Red Hat distro with SELinux turned on
    • Packages passenger and tfm-rubygem-passenger are from the same repo (foreman) and in the same version
    • Logging in with a user that has limited permissions works properly

Provisioning

  • Bare-metal or virtualized PXE provisioning (host exits build mode and reboots)
    • BIOS host with CentOS 8
    • BIOS host with CentOS 7
    • UEFI host with CentOS
    • BIOS host with Debian or Ubuntu
    • UEFI host with Debian or Ubuntu
    • BIOS host with Atomic OS
  • Compute Resources (VM is successfully created, finish or cloud-init is executed)
    • Create VMware host (Image Based/Network Based)
    • Create OpenStack host (Image Based)
    • Create Ovirt host (Image Based/Network Based)
    • Create Libvirt host (Image Based/Network Based)
    • Creare AWS host (Image Based)
    • Create GCE host
    • Create Azure host
  • Puppet manifest import (classes are imported, parameters recognized)
  • Puppet configuration (class is assigned to a host, agent performs changes, reports and facts appears correctly)
  • Log in using user from LDAP (user account is created from LDAP)
  • Log in using user from FreeIPA (user account is created from FreeIPA)

Foreman Discovery

  • Bare-metal or virtualized provisioning via Provision - Customize Host (host exits build mode and reboots)
    • BIOS with discovery from PXE
    • UEFI with discovery from PXE
    • BIOS with discovery PXE-less
    • UEFI with discovery PXE-less
  • Provision a host via discovery rule
  • Provision a host via Customize UI button
  • Provision a host without hostgroup via Customize UI button
  • Provision a host via hammer via hostgroup
  • Provision a host via hammer via auto provisioning rule

Foreman Bootdisk

  • Bootdisk basic provisioning (host exits build mode and reboots)
    • Full host image BIOS
    • Host image BIOS
    • Generic image BIOS
    • Full host image EFI
    • Host image EFI
    • Generic image EFI

Foreman Ansible

  • Import Roles
    • With/From Smart-Proxy
  • Assign Roles
    • Hostgroup
    • Hosts
  • Play Roles
    • Hostgroup
    • Hosts
  • Run shipped Ansible playbook (job), e.g. to install ansible role from galaxy

Foreman Remote Execution

  • Run some job, e.g. ‘ls /etc’ on a system that was provisioned from Foreman, it should work out of the box
  • Run some job against the Foreman host itself, only key configuration should be needed

Foreman Puppet run

  • Trigger Puppet run on host through SSH

Foreman Openscap

  • Create new content file, define a policy, assign it to a host and deploy the foreman_scap_client using puppet
  • Verify ARF report gets uploaded upon foreman_scap_client run and full version of it can be rendered
  • Create tailoring file, assign it to the policy and rerun client with the tailoring file

Foreman Virt Who Configure

  • Create a configuration definition and run it e.g. through REX on some provisioned host. It should succeed as long as it has access to sat tools repo on RHEL, epel (I think) on centos.
    note: plugin works, the configuration requires new virt-who that is currently in fedora 30, not in epel

Foreman Templates

  • hammer import-templates --lock true # sync newest templates from community-templates repo, see audits
  • mkdir /repo; chown foreman /repo; hammer export-templates --repo /repo # may need setenforce 0

This page is a wiki, feel free to update it and add new scenarios as you test them. Thanks for your help!

3 Likes

like this checklist

3 Likes

A bit late this time, but there’s still time. Go and grab a test workflow and get back to us! :slight_smile:

Clean Foreman 2.4 RC3 installation, when restarting via foreman-maintain I am getting:

Running Restart Services
================================================================================
Check if command is run as root user:                                 [OK]
--------------------------------------------------------------------------------
Restart applicable services:

Stopping the following service(s):
postgresql, rh-redis5-redis, smart_proxy_dynflow_core, dynflow-sidekiq@orchestrator, foreman, httpd, puppetserver, dynflow-sidekiq@worker, foreman-proxy, foreman-cockpit
| stopping foreman
Warning: Stopping foreman.service, but it can still be activated by:
  foreman.socket
/ stopping postgresql
Warning: postgresql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
- All services stopped

Starting the following service(s):
postgresql, rh-redis5-redis, smart_proxy_dynflow_core, dynflow-sidekiq@orchestrator, foreman, httpd, puppetserver, dynflow-sidekiq@worker, foreman-proxy, foreman-cockpit
- starting postgresql
Warning: postgresql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
| All services started                                                [OK]
--------------------------------------------------------------------------------

Executing systemctl daemon-reload does not help. This is weird. It has to be the:

# cat /etc/systemd/system/postgresql.service.d/postgresql.conf
[Service]
Environment=PGPORT=5432
Environment=PGDATA=/var/opt/rh/rh-postgresql12/lib/pgsql/data

And it picks it up, maybe foreman-maintain keeps touching the file on every run?

# systemctl status postgresql
● rh-postgresql12-postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/rh-postgresql12-postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-03-19 13:11:37 CET; 4min 28s ago
 Main PID: 11591 (postmaster)
   CGroup: /system.slice/rh-postgresql12-postgresql.service
           ├─11591 postmaster -D /var/opt/rh/rh-postgresql12/lib/pgsql/data
           ├─11596 postgres: logger
           ├─11598 postgres: checkpointer
           ├─11599 postgres: background writer
           ├─11600 postgres: walwriter
           ├─11601 postgres: autovacuum launcher
           ├─11602 postgres: stats collector
           ├─11603 postgres: logical replication launcher
           ├─11670 postgres: foreman foreman [local] idle
           ├─11675 postgres: foreman foreman [local] idle
           ├─11676 postgres: foreman foreman [local] idle
           ├─11709 postgres: foreman foreman [local] idle
           ├─11726 postgres: foreman foreman [local] idle
           ├─11727 postgres: foreman foreman [local] idle
           ├─11732 postgres: foreman foreman [local] idle
           ├─11733 postgres: foreman foreman [local] idle
           ├─11735 postgres: foreman foreman [local] idle
           ├─11736 postgres: foreman foreman [local] idle
           ├─11911 postgres: foreman foreman [local] idle
           ├─11915 postgres: foreman foreman [local] idle
           └─11916 postgres: foreman foreman [local] idle

Mar 19 13:11:37 rc.nuc systemd[1]: Starting PostgreSQL database server...
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  starting PostgreSQL ...bit
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  listening on IPv6 ad...432
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  listening on IPv4 ad...432
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  listening on Unix so...32"
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  listening on Unix so...32"
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT LOG:  redirecting log outp...ess
Mar 19 13:11:37 rc.nuc sh[11591]: 2021-03-19 12:11:37 GMT HINT:  Future log output w...g".
Mar 19 13:11:37 rc.nuc systemd[1]: Started PostgreSQL database server.
Warning: rh-postgresql12-postgresql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Hint: Some lines were ellipsized, use -l to show in full.

For the record, Fedora 33 Server does not install due to a package in our kickstart, but this looks like something that hasn’t been working for some time now. Not a blocker, the workaround is to delete offending package entry:

1 Like