How to fix – ansible_memtotal_mb >= minimal_master_memory_mb

Share on:

I faced this issue during Kubernetesinstallation using kubespray. If you are facing a similar issue with your ansible-playbook then it is time to increase the memory of your VMs

For kubernetes installation using kubespray, please refer to kubespray – 12 Steps for Installing a Production Ready Kubernetes Cluster

Root Cause -

Ansible need more memory for running playbook on your linux machine.

In my setup i was using Vagrant for spinning up my VMs(virtual machine). But one of the VM had only 1 GB of memory.

Note - Look at my vagrant file configuration for kmaster node, i have allocated only 1024M of memory and 1 CPU

Vagrantfile

 1Vagrant.configure("2") do |config|
 2  config.vm.define "amaster" do |amaster|
 3    amaster.vm.box_download_insecure = true
 4    amaster.vm.box = "hashicorp/bionic64"
 5    amaster.vm.network "private_network", ip: "100.0.0.1"
 6    amaster.vm.hostname = "amaster"
 7    amaster.vm.provider "virtualbox" do |v|
 8      v.name = "amaster"
 9      v.memory = 2048
10      v.cpus = 2
11    end
12  end
13
14  config.vm.define "kmaster" do |kmaster|
15    kmaster.vm.box_download_insecure = true
16    kmaster.vm.box = "hashicorp/bionic64"
17    kmaster.vm.network "private_network", ip: "100.0.0.2"
18    kmaster.vm.hostname = "kmaster"
19    kmaster.vm.provider "virtualbox" do |v|
20      v.name = "kmaster"
21      v.memory = 1024
22      v.cpus = 1
23    end
24  end
25
26end

Solution: -

If you are using Vagrant for provisioning your VMs(virtual machine) then you only need to increase the memory and cpus to fix the problem.

Fix 1- Increase memory from 1024 to 2048

v.memory = 2048

Fix 2 - Increase CPUs from 1 to 2

1v.cpus = 2

So your final Vagranfile should look like this

 1Vagrant.configure("2") do |config|
 2  config.vm.define "amaster" do |amaster|
 3    amaster.vm.box_download_insecure = true
 4    amaster.vm.box = "hashicorp/bionic64"
 5    amaster.vm.network "private_network", ip: "100.0.0.1"
 6    amaster.vm.hostname = "amaster"
 7    amaster.vm.provider "virtualbox" do |v|
 8      v.name = "amaster"
 9      v.memory = 2048
10      v.cpus = 2
11    end
12  end
13
14  config.vm.define "kmaster" do |kmaster|
15    kmaster.vm.box_download_insecure = true
16    kmaster.vm.box = "hashicorp/bionic64"
17    kmaster.vm.network "private_network", ip: "100.0.0.2"
18    kmaster.vm.hostname = "kmaster"
19    kmaster.vm.provider "virtualbox" do |v|
20      v.name = "kmaster"
21      v.memory = 2048
22      v.cpus = 2
23    end
24  end
25
26end
1fatal: [node2]: FAILED! => {
2    "assertion": "ansible_memtotal_mb >= minimal_master_memory_mb",
3    "changed": false,
4    "evaluated_to": false,
5    "msg": "Assertion failed"
6}