Upgrade RHEL7.9 to 8.x with leapp using Ansible
Hello,
I'm trying to automate the upgrade process with ansible and when I try to run the following task I get some errors:
Task:
- hosts: upgrade tasks: - name: Generate leapp preupgrade report ansible.builtin.raw: leapp preupgrade ignore_errors: false register: leapp_preupgrade become: true
Errors:
==> Processing phase `configuration_phase` ====> * ipu_workflow_config IPU workflow config actor ==> Processing phase `FactsCollection` ====> * scancpu Scan CPUs of the machine. ====> * source_boot_loader_scanner Scans the boot loader configuration on the source system. ====> * tcp_wrappers_config_read Parse tcp_wrappers configuration files /etc/hosts.{allow,deny}. ====> * storage_scanner Provides data about storage settings. ====> * scan_custom_repofile Scan the custom /etc/leapp/files/leapp_upgrade_repositories.repo repo file. ====> * removed_pam_modules_scanner Scan PAM configuration for modules that are not available in RHEL-8. ====> * scan_files_for_target_userspace Scan the source system and identify files that will be copied into the target userspace when it is created. ====> * network_manager_read_config Provides data about NetworkManager configuration. ====> * scan_kernel_cmdline No documentation has been provided for the scan_kernel_cmdline actor. ====> * system_facts Provides data about many facts from system. Process Process-199: Traceback (most recent call last): File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py", line 72, in _do_run actor_instance.run(*args, **kwargs) File "/usr/lib/python2.7/site-packages/leapp/actors/__init__.py", line 335, in run self.process(*args) File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/systemfacts/actor.py", line 36, in process self.produce(systemfacts.get_sysctls_status()) File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py", line 170, in get_sysctls_status return SysctlVariablesFacts(sysctl_variables=_get_sysctls()) File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py", line 22, in inner return list(f(*args, **kwargs)) File "/usr/share/leapp-repository/repositories/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py", line 143, in _get_sysctls for sc in run(['sysctl', '-a'], split=True)['stdout']:" File "/usr/lib/python2.7/site-packages/leapp/libraries/stdlib/__init__.py", line 188, in run result=result CalledProcessError: Command ['sysctl', '-a'] failed with exit code 1. =============================================================================================" Actor system_facts unexpectedly terminated with exit code: 1 - Please check the above details" ============================================================================================= ============================================================ ERRORS ============================================================ 2022-04-13 16:21:34.524115 [ERROR] Actor: source_boot_loader_scanner" Message: Failed to call `grubby` to list available boot entries." Summary:" Details: Command ['grubby', '--info', 'ALL'] failed with exit code 1." Stderr: Process Process-183:" Traceback (most recent call last):" File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap" self.run()" File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run" self._target(*self._args, **self._kwargs)" File "/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py", line 72, in _do_run" actor_instance.run(*args, **kwargs)" File "/usr/lib/python2.7/site-packages/leapp/actors/__init__.py", line 335, in run" self.process(*args)" File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/sourcebootloaderscanner/actor.py", line 18, in process" scan_source_boot_loader_configuration()" File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/sourcebootloaderscanner/libraries/sourcebootloaderscanner.py", line 54, inscan_source_boot_loader_configuration", entries=scan_boot_entries()" File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/sourcebootloaderscanner/libraries/sourcebootloaderscanner.py", line 17, inscan_boot_entries", grubby_output = run(CMD_GRUBBY_INFO_ALL, split=True)" File "/usr/lib/python2.7/site-packages/leapp/libraries/stdlib/__init__.py", line 181, in run" stdin=stdin, env=env, encoding=encoding)" File "/usr/lib/python2.7/site-packages/leapp/libraries/stdlib/call.py", line 217, in _call" os.execvpe(command[0], command, env=environ)" File "/usr/lib64/python2.7/os.py", line 353, in execvpe" _execvpe(file, args, env)" File "/usr/lib64/python2.7/os.py", line 380, in _execvpe" func(fullname, *argrest) OSError: [Errno 2] No such file or directory ============================================================ END OF ERRORS ============================================================ Debug output written to /var/log/leapp/leapp-preupgrade.log ============================================================ REPORT ============================================================ A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt ============================================================ END OF REPORT ============================================================ Answerfile has been generated at /var/log/leapp/answerfile
Do you have any idea why this happens? I've also tried to run the command
leapp preupgrade
ansible.builtin.command
ansible.builtin.shell
When I run the command manually on the server via an ssh connection, I get a full report without any errors.
Someone has already tried to this kind of job with Ansible. the only reference I've found using leapp with ansible is this role: https://github.com/mrjoshuap/ansible-leapp.
Thanks for any help ;)
Responses