Cannot restore with foreman-maintain - undefined method `installer_command' for nil:NilClass

hi all,
Im trying to restore from the offline backup but I get bellow error:


# foreman-maintain restore  /tmp/backup/foreman-backup-2023-04-04-20-36-21
Running Restore backup
================================================================================
Check if command is run as root user:                                 [OK]
--------------------------------------------------------------------------------
Validate backup has appropriate files:                                [OK]
--------------------------------------------------------------------------------
Validate hostname is the same as backup:                              [OK]
--------------------------------------------------------------------------------
Validate network interfaces match the backup:                         [OK]
--------------------------------------------------------------------------------
Confirm dropping databases and running restore:

WARNING: This script will drop and restore your database.
Your existing installation will be replaced with the backup database.
Once this operation is complete there is no going back.
Do you want to proceed?, [y(yes), q(quit)] yes
                                                                      [OK]
--------------------------------------------------------------------------------
Restore configs from backup:
\ Restoring configs                                                   [OK]
--------------------------------------------------------------------------------
Run installer reset:
/ Installer reset                                                     [FAIL]
undefined method `installer_command' for nil:NilClass
--------------------------------------------------------------------------------
Scenario [Restore backup] failed.

The following steps ended up in failing state:

  [restore-installer-reset]

Resolve the failed steps and rerun the command.
In case the failures are false positives, use
--whitelist="restore-installer-reset"



Running Rescue Restore backup
================================================================================

thanks for any advice…

Can you check if you find any more details regarding that error in /var/log/foreman-maintain/ or /var/log/foreman-installer/ ?

1 Like

Is the machine you’re restoring to a working Foreman server? That’s a pre-requisite to be able to restore a backup.

The code that’s failing for you essentially says “could not find a foreman-installer on your machine” (I agree the error handling could be better, but still…)

1 Like

@jtruestedt @evgeni thanks for your replay…

foreman-installer.log:


2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Using /usr/share/foreman-installer/parser_cache/foreman.yaml cache with parsed modules"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/01-kafo-hook-extensions.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/02-message-helpers.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/03-foreman-maintain-extensions.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/04-services.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/05-environment.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/09-version_locking.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/10-reset_data.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/11-detailed_exitcodes.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/13-tuning.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/boot/20-certs_update.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_validations/01-reset_data.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_validations/12-check_certs_tar.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_validations/34-pulpcore_directory_layout.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_commit/05-puppet_certs_exist.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_commit/09-version_locking.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_commit/13-tuning.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_commit/20-certs_update.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_commit/33-pulpcore_assets_permissions.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/10-reset_data.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/20-certs_update.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/20-check-hammer-credentials.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/25-remove_apache_from_foreman_group.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/31-puppet_agent_oauth.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/31-puppet_server_migrate_ca.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/32-install_selinux_packages.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/33-pulpcore_assets_permissions.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre/34-pulpcore_directory_layout.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/post/30-upgrade.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/post/34-pulpcore_directory_layout.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/post/99-post_install_message.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/post/99-version_locking.rb"]
2023-04-05 01:35:26 [DEBUG ] [root] <Array> ["Loading hook /usr/share/foreman-installer/hooks/pre_exit/20-certs_regenerate.rb"]
2023-04-05 01:35:26 [INFO  ] [pre_migrations] <Array> ["Executing hooks in group pre_migrations"]
2023-04-05 01:35:26 [INFO  ] [pre_migrations] <Array> ["All hooks in group pre_migrations finished"]
2023-04-05 01:35:26 [NOTICE] [root] Log buffers flushed
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::LogLevel
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::ModProxyProtocol
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::ServerTokens
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::OIDCSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::Vhost::ProxyPass
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apache::Vhost::Priority
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apt::Proxy_Per_Host
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apt::Auth_conf_entry
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Apt::Proxy
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Katello::HieraBoolean
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::Ephemeral
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::Dynamic
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::Unprivileged
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::Privileged
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::Registered
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Port::User
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::MAC
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Base64
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::ObjectStore::S3Uri
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::ObjectStore::GSUri
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Filemode
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Ensure::File::Link
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Ensure::File::File
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Ensure::File::Directory
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Ensure::File
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Ensure::Service
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Syslogfacility
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Fqdn
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Yes_no
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Unixpath
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::HTTPUrl
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Absolutepath
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Datasize
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Filesource
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::HTTPSUrl
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Base32
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Email
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Nosubnet::Full
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Nosubnet::Compressed
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Nosubnet::Alternative
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::CIDR
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Full
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Nosubnet
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Compressed
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6::Alternative
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V4
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::Nosubnet
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V4::CIDR
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V4::Nosubnet
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::IP::Address::V6
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::HttpStatus
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Host
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::ObjectStore
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::CreateResources
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Float
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Array
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Ip_address
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Absolute_path
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Integer
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Hash
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Ipv6
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Ipv4
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Bool
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::Numeric
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Compat::String
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Stdlib::Windowspath
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Pulpcore::LogLevel
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Pulpcore::ChecksumTypes
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Pulpcore::Logger
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Foreman_proxy::Sshloglevel
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Foreman_proxy::ListenOn
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Redis::LogLevel
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Redis::MemoryPolicy
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Redis::RedisUrl
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Puppet::Custom_trusted_oid_mapping
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::LogindSettings::Ensure
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::CoredumpSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::MachineInfoSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::Unit
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::JournaldSettings::Ensure
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::JournaldSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::LogindSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::ServiceLimits
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::Dropin
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Systemd::OomdSettings
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Foreman::Column_view_column
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dhcp::Macaddress
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dhcp::Range
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dhcp::DhcpPool
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dhcp::StaticRoute
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dns::UpdatePolicy
2023-04-05 01:35:26 [DEBUG ] [root] Registering extended data type Dns::Dnssec_policy_key
2023-04-05 01:35:28 [DEBUG ] [root] Provider KafoParsers::PuppetStringsModuleParser not available: /opt/puppetlabs/bin/puppet does not have strings module installed.
2023-04-05 01:35:28 [DEBUG ] [root] No available Puppet module parser found

I see this at the end of the file: No available Puppet module parser found

I create the Backup morning on the server and I want to restore it on the same server. and I get above error…

thats what I get when I run apt policy foreman-installer:

# apt policy foreman-installer
foreman-installer:
  Installiert:           3.5.2-1+ubuntu2004
  Installationskandidat: 3.5.2-1+ubuntu2004
  Versionstabelle:
 *** 3.5.2-1+ubuntu2004 500
        500 http://deb.theforeman.org focal/3.5 amd64 Packages
        500 http://deb.theforeman.org focal/3.5 i386 Packages
        100 /var/lib/dpkg/status
     3.5.1-1+ubuntu2004 500
        500 http://deb.theforeman.org focal/3.5 amd64 Packages
        500 http://deb.theforeman.org focal/3.5 i386 Packages
     3.5.0-1+ubuntu2004 500
        500 http://deb.theforeman.org focal/3.5 amd64 Packages
        500 http://deb.theforeman.org focal/3.5 i386 Packages
     3.5.0~rc2-1+ubuntu2004 500
        500 http://deb.theforeman.org focal/3.5 amd64 Packages
        500 http://deb.theforeman.org focal/3.5 i386 Packages
     3.5.0~rc1-1+ubuntu2004 500
        500 http://deb.theforeman.org focal/3.5 amd64 Packages
        500 http://deb.theforeman.org focal/3.5 i386 Packages

And all installed packages for foreman.

# dpkg-query -l | grep foreman
ii  foreman                                3.5.2-1+ubuntu2004                amd64        Systems management web interface
ii  foreman-cli                            3.5.2-1+ubuntu2004                all          metapackage providing hammer CLI for Foreman
ii  foreman-debug                          3.5.2-1+ubuntu2004                all          provides support utility foreman-debug.
ii  foreman-dynflow-sidekiq                3.5.2-1+ubuntu2004                all          package providing dynflow sidekiq services for Foreman
iF  foreman-installer                      3.5.2-1+ubuntu2004                all          Automated puppet-based installer for The Foreman
ii  foreman-postgresql                     3.5.2-1+ubuntu2004                all          metapackage providing PostgreSQL dependencies for Foreman
ii  foreman-proxy                          3.5.2-1+ubuntu2004                all          RESTful proxies for DNS, DHCP, TFTP, and Puppet
ii  foreman-service                        3.5.2-1+ubuntu2004                all          package providing Foreman services running via puma
ii  ruby-foreman-column-view               0.4.0-2                           all          Foreman Column View Plugin
ii  ruby-foreman-deface                    1.9.0-2                           all          Foreman Deface Plugin Dependency
ii  ruby-foreman-maintain                  1.2.4-1+ubuntu2004                all          Foreman maintenance tool belt
ii  ruby-foreman-puppet                    5.0.0-1                           all          Foreman Puppet Plugin
ii  ruby-hammer-cli-foreman                3.5.1-1+ubuntu2004                all          Foreman commands for Hammer
ii  ruby-hammer-cli-foreman-puppet         0.0.6-1                           all          Foreman Puppet plugin for Hammer CLI

@evgeni do you have any advice for me here please: Node.rb host - 500 Internal Server Error. Error is ignored and the execution continues - #6 by Neeloj

after upgrade to Foreman 3.6 all works good :slight_smile: