Require at least 1.6Gb of available RAM to install the server

Verify that there is at least 1.6Gb of usable RAM on the system. Swap
is not considered. While swap would allow a user to minimally install
IPA it would not be a great experience.

Using any proc-based method to check for available RAM does not
work in containers unless /proc is re-mounted so use cgroups
instead. This also handles the case if the container has memory
constraints on it (-m).

There are envs which mount 'proc' with enabled hidepid option 1
so don't assume that is readable.

Add a switch to skip this memory test if the user is sure they
know what they are doing.

is_hidepid() contributed by Stanislav Levin <slev@altlinux.org>

https://pagure.io/freeipa/issue/8404

Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Stanislav Levin <slev@altlinux.org>
This commit is contained in:
Rob Crittenden
2020-08-27 15:22:12 -04:00
committed by Alexander Bokovoy
parent 2e4431af70
commit cfad7af35d
5 changed files with 94 additions and 2 deletions

View File

@@ -569,7 +569,9 @@ def check_remote_version(client, local_version):
"the local version ({})".format(remote_version, local_version))
def common_check(no_ntp):
def common_check(no_ntp, skip_mem_check, setup_ca):
if not skip_mem_check:
installutils.check_available_memory(ca=setup_ca)
tasks.check_ipv6_stack_enabled()
tasks.check_selinux_status()
check_ldap_conf()
@@ -776,7 +778,7 @@ def promote_check(installer):
installer._top_dir = tempfile.mkdtemp("ipa")
# check selinux status, http and DS ports, NTP conflicting services
common_check(options.no_ntp)
common_check(options.no_ntp, options.skip_mem_check, options.setup_ca)
if options.setup_ca and any([options.dirsrv_cert_files,
options.http_cert_files,