Getting an undefined variable error in galaxy-role geerlingguy.repo-epel

I’m trying to use galaxy roles for the first time and started with installing the geerlingguy.logstash role on an Amazon Linux Instance.

It mostly seems to work, at least up until it gets to the repo-epel role

I"m getting:

TASK: [geerlingguy.repo-epel | Install EPEL repo.] ****************************
fatal: [ec2-54-237-72-83.compute-1.amazonaws.com] => One or more undefined variables: ‘dict object’ has no attribute u’NA’

It appears that the value of “ansible_distribution_major_version” is showing as “NA”. I am using version 1.9.1 of ansible.

Do I need to restructure epel_release or perhaps manually set ansible_distribution_major_version someplace?

In the defaults/main.yml it is showing

epel_release:
“4”: 10
“5”: 4
“6”: 8
“7”: 5

epel_repo_url: “http://download.fedoraproject.org/pub/epel/{{ ansible_distribution_major_version }}/{{ ansible_userspace_architecture }}{{ ‘/’ if ansible_distribution_major_version < ‘7’ else ‘/e/’ }}epel-release-{{ ansible_distribution_major_version }}-{{ epel_release[ansible_distribution_major_version] }}.noarch.rpm”
epel_repo_gpg_key_url: “/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}”

I’m not sure how to adjust things to make it work correctly.

Any thoughts?

Bob

Galaxy roles are maintained by individual contributors in the Ansible
community.

On the web page for each role, there's a link to the Github repo,
where you can contact the author directly. That would be my advice.

--g

Thanks.

Logged an Issue a few days ago at: https://github.com/geerlingguy/ansible-role-repo-epel/issues/11

Haven’t heard anything yet.

Bob

What’s the output of “python -c ‘import platform; print platform.dist()’” executed on the target (ec2-54-237-72-83.compute-1.amazonaws.com)?

ansible_distribution_major_version is a fact. Just don’t disable gathering facts.

Python 2.7.9 (default, Apr 1 2015, 18:18:03)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import platform
print platform.dist()
(‘’, ‘’, ‘’)