Minemeld installation, Part 1
Tags: homelab, linux, networksecurity
Published: 2021-12-04 19:21:00

---
title: Minemeld installation, Part 1
published: true
date: 2019-02-24 21:10:00 UTC
tags: HomeLab,Linux,NetworkSecurity
canonical_url: https://blog.engyak.co/2019/02/minemeld-installation-part-1.html
---

Palo Alto Networks has provided a tool for public use - Minemeld - that will collate threat intelligence feeds and other indicators for a more dynamic security policy enforcement strategy with their firewalls:  
[https://www.paloaltonetworks.com/products/secure-the-network/subscriptions/minemeld](https://www.paloaltonetworks.com/products/secure-the-network/subscriptions/minemeld)  
  
I have a slightly different use case - I want my lab firewall to be aware of each virtual machine in my lab, and to be able to use it intelligently. Some of this is available via the "VM Information Sources" [(more information here)](https://docs.paloaltonetworks.com/pan-os/7-1/pan-os-web-interface-help/device/device-vm-information-sources) feature, but it doesn't appear to be aware of details like NSX-T security groups, etc. My goal will be to implement these features using Minemeld, with some future uses on the horizon as well.  
  
Getting Started  
  
First I browse to [https://live.paloaltonetworks.com/t5/MineMeld/ct-p/MineMeld](https://live.paloaltonetworks.com/t5/MineMeld/ct-p/MineMeld) to download any requisite packages.  
  
Just a note - the provided OVA is based off Ubuntu 14.04 - a pretty old release. Performing a deeper search, I discovered that an ansible playbook is provided for install on recommended systems!  
 [https://github.com/PaloAltoNetworks/minemeld-ansible](https://github.com/PaloAltoNetworks/minemeld-ansible)  
  
I'm going to install this on my ansible host - running openSUSE Tumbleweed:

```
admin@ansible:~> sudo zypper in wget git gcc python-devel libffi-devel openssl-devel[sudo] password for root:Loading repository data...Reading installed packages...'openssl-devel' not found in package names. Trying capabilities.'wget' is already installed.No update candidate for 'wget-1.20.1-2.1.x86_64'. The highest available version is already installed.Resolving package dependencies...3 Problems:Problem: python-devel-2.7.15-4.3.x86_64 requires glibc-devel, but this requirement cannot be providedProblem: gcc-8-2.4.x86_64 requires gcc8, but this requirement cannot be providedProblem: ruby2.5-rubygem-cfa-0.7.0-1.1.x86_64 requires ruby(abi) = 2.5.0, but this requirement cannot be providedProblem: python-devel-2.7.15-4.3.x86_64 requires glibc-devel, but this requirement cannot be provided not installable providers: glibc-devel-2.29-1.3.i586[download.opensuse.org-oss] glibc-devel-2.29-1.3.i686[download.opensuse.org-oss] glibc-devel-2.29-1.3.x86_64[download.opensuse.org-oss] glibc-devel-2.29-1.3.i586[openSUSE-20190126-0] glibc-devel-2.29-1.3.i686[openSUSE-20190126-0] glibc-devel-2.29-1.3.x86_64[openSUSE-20190126-0] Solution 1: Following actions will be done: deinstallation of yast2-ruby-bindings-4.1.2-1.1.x86_64 deinstallation of yast2-samba-client-4.0.4-1.1.noarch deinstallation of yast2-ntp-client-4.1.7-1.1.noarch deinstallation of yast2-packager-4.1.24-1.1.x86_64 deinstallation of yast2-tftp-server-4.1.6-1.1.noarch deinstallation of yast2-snapper-4.1.0-1.1.x86_64 deinstallation of yast2-vpn-4.0.1-1.2.noarch deinstallation of yast2-users-4.1.7-1.1.x86_64 deinstallation of yast2-update-4.1.8-1.1.x86_64 deinstallation of yast2-tune-4.0.2-1.2.x86_64 deinstallation of yast2-transfer-4.0.0-1.3.x86_64 deinstallation of yast2-sysconfig-4.1.2-1.2.noarch deinstallation of yast2-support-4.1.0-1.1.noarch deinstallation of yast2-sudo-4.0.1-1.2.noarch deinstallation of yast2-slp-4.0.0-1.3.x86_64 deinstallation of yast2-services-manager-4.1.14-1.1.noarch deinstallation of yast2-security-4.1.2-1.2.noarch deinstallation of yast2-samba-server-4.1.3-1.2.noarch deinstallation of yast2-storage-ng-4.1.48-1.1.x86_64 deinstallation of yast2-proxy-4.1.0-1.1.noarch deinstallation of yast2-printer-4.0.3-1.2.x86_64 deinstallation of yast2-pam-4.0.0-1.2.noarch deinstallation of yast2-online-update-4.0.2-1.2.noarch deinstallation of yast2-nis-client-4.1.0-1.1.x86_64 deinstallation of yast2-nfs-client-4.1.4-1.1.noarch deinstallation of yast2-metapackage-handler-4.0.0-1.2.noarch deinstallation of yast2-mail-4.1.0-1.2.noarch deinstallation of yast2-journal-4.1.5-1.1.noarch deinstallation of yast2-iscsi-client-4.1.4-1.1.noarch deinstallation of yast2-hardware-detection-4.0.0-1.6.x86_64 deinstallation of yast2-firewall-4.1.10-1.1.noarch deinstallation of yast2-country-data-4.1.7-1.2.x86_64 deinstallation of yast2-auth-server-4.1.0-1.2.noarch deinstallation of yast2-auth-client-4.1.0-1.2.noarch deinstallation of yast2-apparmor-4.1.7-1.1.noarch deinstallation of yast2-add-on-4.1.10-1.1.noarch deinstallation of autoyast2-installation-4.1.1-1.1.noarch deinstallation of yast2-installation-4.1.34-1.1.noarch deinstallation of yast2-online-update-frontend-4.0.2-1.2.noarch Solution 2: Following actions will be done: deinstallation of ruby2.5-2.5.3-2.1.x86_64 deinstallation of ruby2.5-rubygem-cfa_grub2-1.0.1-1.1.x86_64 deinstallation of ruby2.5-rubygem-cheetah-0.5.0-1.10.x86_64 deinstallation of ruby2.5-rubygem-fast_gettext-2.0.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-gem2rpm-0.10.1-13.6.x86_64 deinstallation of ruby2.5-rubygem-ruby-augeas-0.5.0-3.9.x86_64 deinstallation of ruby2.5-rubygem-ruby-dbus-0.15.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-simpleidn-0.1.1-1.1.x86_64 deinstallation of ruby2.5-rubygem-unf-0.1.4-1.9.x86_64 deinstallation of ruby2.5-rubygem-unf_ext-0.0.7.5-1.2.x86_64 deinstallation of ruby2.5-stdlib-2.5.3-2.1.x86_64 Solution 3: do not install python-devel-2.7.15-4.3.x86_64 Solution 4: break python-devel-2.7.15-4.3.x86_64 by ignoring some of its dependenciesChoose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c] (c): 2Problem: gcc-8-2.4.x86_64 requires gcc8, but this requirement cannot be provided not installable providers: gcc8-8.2.1+r268506-1.1.i586[download.opensuse.org-oss] gcc8-8.2.1+r268506-1.1.x86_64[download.opensuse.org-oss] gcc8-8.2.1+r268506-1.1.i586[openSUSE-20190126-0] gcc8-8.2.1+r268506-1.1.x86_64[openSUSE-20190126-0] Solution 1: Following actions will be done: deinstallation of yast2-4.1.53-1.1.x86_64 deinstallation of yast2-ntp-client-4.1.7-1.1.noarch deinstallation of yast2-packager-4.1.24-1.1.x86_64 deinstallation of yast2-tftp-server-4.1.6-1.1.noarch deinstallation of yast2-snapper-4.1.0-1.1.x86_64 deinstallation of yast2-vpn-4.0.1-1.2.noarch deinstallation of yast2-users-4.1.7-1.1.x86_64 deinstallation of yast2-update-4.1.8-1.1.x86_64 deinstallation of yast2-tune-4.0.2-1.2.x86_64 deinstallation of yast2-transfer-4.0.0-1.3.x86_64 deinstallation of yast2-sysconfig-4.1.2-1.2.noarch deinstallation of yast2-support-4.1.0-1.1.noarch deinstallation of yast2-sudo-4.0.1-1.2.noarch deinstallation of yast2-slp-4.0.0-1.3.x86_64 deinstallation of yast2-services-manager-4.1.14-1.1.noarch deinstallation of yast2-security-4.1.2-1.2.noarch deinstallation of yast2-samba-server-4.1.3-1.2.noarch deinstallation of yast2-storage-ng-4.1.48-1.1.x86_64 deinstallation of yast2-proxy-4.1.0-1.1.noarch deinstallation of yast2-printer-4.0.3-1.2.x86_64 deinstallation of yast2-pam-4.0.0-1.2.noarch deinstallation of yast2-online-update-4.0.2-1.2.noarch deinstallation of yast2-nis-client-4.1.0-1.1.x86_64 deinstallation of yast2-nfs-client-4.1.4-1.1.noarch deinstallation of yast2-metapackage-handler-4.0.0-1.2.noarch deinstallation of yast2-mail-4.1.0-1.2.noarch deinstallation of yast2-journal-4.1.5-1.1.noarch deinstallation of yast2-iscsi-client-4.1.4-1.1.noarch deinstallation of yast2-hardware-detection-4.0.0-1.6.x86_64 deinstallation of yast2-firewall-4.1.10-1.1.noarch deinstallation of yast2-country-data-4.1.7-1.2.x86_64 deinstallation of yast2-auth-server-4.1.0-1.2.noarch deinstallation of yast2-auth-client-4.1.0-1.2.noarch deinstallation of yast2-apparmor-4.1.7-1.1.noarch deinstallation of yast2-add-on-4.1.10-1.1.noarch deinstallation of autoyast2-installation-4.1.1-1.1.noarch deinstallation of yast2-installation-4.1.34-1.1.noarch deinstallation of yast2-ldap-4.0.0-1.5.x86_64 deinstallation of patterns-yast-yast2_basis-20181130-1.1.x86_64 deinstallation of yast2-online-update-frontend-4.0.2-1.2.noarch Solution 2: Following actions will be done: deinstallation of ruby2.5-rubygem-abstract_method-1.2.1-2.10.x86_64 deinstallation of ruby2.5-rubygem-ruby-augeas-0.5.0-3.9.x86_64 deinstallation of ruby2.5-rubygem-ruby-dbus-0.15.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-simpleidn-0.1.1-1.1.x86_64 deinstallation of ruby2.5-rubygem-unf-0.1.4-1.9.x86_64 deinstallation of ruby2.5-rubygem-unf_ext-0.0.7.5-1.2.x86_64 deinstallation of ruby2.5-stdlib-2.5.3-2.1.x86_64 Solution 3: do not install gcc-8-2.4.x86_64 Solution 4: break gcc-8-2.4.x86_64 by ignoring some of its dependenciesChoose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c] (c): 2Problem: ruby2.5-rubygem-cfa-0.7.0-1.1.x86_64 requires ruby(abi) = 2.5.0, but this requirement cannot be provided deleted providers: ruby2.5-2.5.3-2.1.x86_64 Solution 1: Following actions will be done: deinstallation of yast2-country-4.1.7-1.1.x86_64 deinstallation of yast2-packager-4.1.24-1.1.x86_64 deinstallation of yast2-ntp-client-4.1.7-1.1.noarch deinstallation of yast2-network-4.1.34-1.1.noarch deinstallation of yast2-snapper-4.1.0-1.1.x86_64 deinstallation of yast2-installation-4.1.34-1.1.noarch deinstallation of autoyast2-installation-4.1.1-1.1.noarch deinstallation of yast2-storage-ng-4.1.48-1.1.x86_64 deinstallation of yast2-add-on-4.1.10-1.1.noarch deinstallation of yast2-apparmor-4.1.7-1.1.noarch deinstallation of yast2-auth-client-4.1.0-1.2.noarch deinstallation of yast2-auth-server-4.1.0-1.2.noarch deinstallation of yast2-country-data-4.1.7-1.2.x86_64 deinstallation of yast2-firewall-4.1.10-1.1.noarch deinstallation of yast2-hardware-detection-4.0.0-1.6.x86_64 deinstallation of yast2-iscsi-client-4.1.4-1.1.noarch deinstallation of yast2-journal-4.1.5-1.1.noarch deinstallation of yast2-mail-4.1.0-1.2.noarch deinstallation of yast2-metapackage-handler-4.0.0-1.2.noarch deinstallation of yast2-nfs-client-4.1.4-1.1.noarch deinstallation of yast2-nis-client-4.1.0-1.1.x86_64 deinstallation of yast2-online-update-4.0.2-1.2.noarch deinstallation of yast2-pam-4.0.0-1.2.noarch deinstallation of yast2-printer-4.0.3-1.2.x86_64 deinstallation of yast2-proxy-4.1.0-1.1.noarch deinstallation of yast2-samba-server-4.1.3-1.2.noarch deinstallation of yast2-security-4.1.2-1.2.noarch deinstallation of yast2-services-manager-4.1.14-1.1.noarch deinstallation of yast2-slp-4.0.0-1.3.x86_64 deinstallation of yast2-sudo-4.0.1-1.2.noarch deinstallation of yast2-support-4.1.0-1.1.noarch deinstallation of yast2-sysconfig-4.1.2-1.2.noarch deinstallation of yast2-transfer-4.0.0-1.3.x86_64 deinstallation of yast2-tune-4.0.2-1.2.x86_64 deinstallation of yast2-update-4.1.8-1.1.x86_64 deinstallation of yast2-users-4.1.7-1.1.x86_64 deinstallation of yast2-vpn-4.0.1-1.2.noarch deinstallation of patterns-yast-yast2_basis-20181130-1.1.x86_64 deinstallation of yast2-online-update-frontend-4.0.2-1.2.noarch Solution 2: Following actions will be done: deinstallation of ruby2.5-rubygem-cfa-0.7.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-cheetah-0.5.0-1.10.x86_64 deinstallation of ruby2.5-rubygem-fast_gettext-2.0.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-gem2rpm-0.10.1-13.6.x86_64 deinstallation of ruby2.5-rubygem-ruby-augeas-0.5.0-3.9.x86_64 deinstallation of ruby2.5-rubygem-ruby-dbus-0.15.0-1.1.x86_64 deinstallation of ruby2.5-rubygem-simpleidn-0.1.1-1.1.x86_64 deinstallation of ruby2.5-rubygem-unf-0.1.4-1.9.x86_64 deinstallation of ruby2.5-rubygem-unf_ext-0.0.7.5-1.2.x86_64 deinstallation of ruby2.5-stdlib-2.5.3-2.1.x86_64 Solution 3: do not ask to install a solvable providing openssl-devel Solution 4: break ruby2.5-rubygem-cfa-0.7.0-1.1.x86_64 by ignoring some of its dependenciesChoose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c] (c): 2Resolving dependencies...Resolving package dependencies...The following 68 NEW packages are going to be installed: cpp cpp8 cvs cvsps gcc gcc8 git git-core git-cvs git-email git-gui gitk git-svn glibc-devel glibc-locale-base libapr1 libapr-util1 libasan5 libatomic1 libcrypt1 libffi-devel libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpfr6 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel libruby2_6-2_6 libserf-1-1 libsha1detectcoll1 libtsan0 libubsan1 libutf8proc2 libxcrypt-devel libXss1 linux-glibc-devel perl-Authen-SASL perl-DBD-SQLite perl-DBI perl-Digest-HMAC perl-Error perl-MailTools perl-Net-SMTP-SSL python python-devel ruby2.6 ruby2.6-rubygem-abstract_method ruby2.6-rubygem-cfa ruby2.6-rubygem-cfa_grub2 ruby2.6-rubygem-cheetah ruby2.6-rubygem-fast_gettext ruby2.6-rubygem-gem2rpm ruby2.6-rubygem-ruby-augeas ruby2.6-rubygem-ruby-dbus ruby2.6-rubygem-simpleidn ruby2.6-rubygem-unf ruby2.6-rubygem-unf_ext subversion subversion-bash-completion subversion-perl tcl tk xhost zlib-develThe following 13 packages are going to be REMOVED: ruby2.5 ruby2.5-rubygem-abstract_method ruby2.5-rubygem-cfa ruby2.5-rubygem-cfa_grub2 ruby2.5-rubygem-cheetah ruby2.5-rubygem-fast_gettext ruby2.5-rubygem-gem2rpm ruby2.5-rubygem-ruby-augeas ruby2.5-rubygem-ruby-dbus ruby2.5-rubygem-simpleidn ruby2.5-rubygem-unf ruby2.5-rubygem-unf_ext ruby2.5-stdlibThe following 15 packages are going to be upgraded: glibc glibc-extra glibc-locale nscd ruby yast2 yast2-bootloader yast2-core yast2-country yast2-network yast2-ntp-client yast2-packager yast2-ruby-bindings yast2-snapper yast2-tftp-serverThe following 6 recommended packages were automatically selected: git-cvs git-email git-gui gitk git-svn subversion-bash-completionThe following 2 packages are suggested, but will not be installed: git-daemon git-web15 packages to upgrade, 68 new, 13 to remove.Overall download size: 81.4 MiB. Already cached: 0 B. After the operation, additional 319.4 MiB will be used.Continue? [y/n/...? shows all options] (y): y
```
  
Looks like this conflicts with Ruby somewhat - a non-issue for me. Time to run pip and install ansible:   

```
admin@ansible:~> sudo -H python get-pip.py[sudo] password for root:Traceback (most recent call last): File "get-pip.py", line 21361, in <module> main() File "get-pip.py", line 197, in main bootstrap(tmpdir=tmpdir) File "get-pip.py", line 82, in bootstrap import pip._internal File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/ __init__.py", line 40, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/cli/autocompletion.py", line 8, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/cli/main_parser.py", line 12, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/commands/ __init__.py", line 6, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/commands/completion.py", line 6, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/cli/base_command.py", line 25, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_internal/index.py", line 14, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_vendor/html5lib/ __init__.py", line 25, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_vendor/html5lib/html5parser.py", line 7, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_vendor/html5lib/_inputstream.py", line 13, in <module> File "/tmp/tmpqrZ_FD/pip.zip/pip/_vendor/html5lib/_utils.py", line 10, in <module>ImportError: No module named xml.etree.ElementTree
```
  
And it seems the pip install step is not necessary, as openSUSE handles this through the package manager. We're going to need to go a bit off-script here:  

```
admin@ansible:~> zypper se pipLoading repository data...Reading installed packages...S | Name | Summary | Type--+------------------------------------------+--------------------------------------------------------------------------+--------i | python3-pip | Pip installs packages. Python packages. An easy_install replacement | packageansible:/home/admin # pip install ansibleCollecting ansible Downloading https://files.pythonhosted.org/packages/e4/22/4325212e609071cd93b8142722d770f5defab34a95511f183e262f8de983/ansible-2.7.8.tar.gz (11.8MB) 100% |████████████████████████████████| 11.8MB 3.4MB/sCollecting jinja2 (from ansible) Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB) 100% |████████████████████████████████| 133kB 20.5MB/sCollecting PyYAML (from ansible) Downloading https://files.pythonhosted.org/packages/9e/a3/1d13970c3f36777c583f136c136f804d70f500168edc1edea6daa7200769/PyYAML-3.13.tar.gz (270kB) 100% |████████████████████████████████| 276kB 2.3MB/sCollecting paramiko (from ansible) Downloading https://files.pythonhosted.org/packages/cf/ae/94e70d49044ccc234bfdba20114fa947d7ba6eb68a2e452d89b920e62227/paramiko-2.4.2-py2.py3-none-any.whl (193kB) 100% |████████████████████████████████| 194kB 19.3MB/sCollecting cryptography (from ansible) Downloading https://files.pythonhosted.org/packages/98/71/e632e222f34632e0527dd41799f7847305e701f38f512d81bdf96009bca4/cryptography-2.5-cp34-abi3-manylinux1_x86_64.whl (2.4MB) 100% |████████████████████████████████| 2.4MB 6.4MB/sRequirement already satisfied: setuptools in /usr/lib/python3.6/site-packages (from ansible) (40.6.3)Collecting MarkupSafe>=0.23 (from jinja2->ansible) Downloading https://files.pythonhosted.org/packages/b2/5f/23e0023be6bb885d00ffbefad2942bc51a620328ee910f64abe5a8d18dd1/MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whlCollecting bcrypt>=3.1.3 (from paramiko->ansible) Downloading https://files.pythonhosted.org/packages/d0/79/79a4d167a31cc206117d9b396926615fa9c1fdbd52017bcced80937ac501/bcrypt-3.1.6-cp34-abi3-manylinux1_x86_64.whl (55kB) 100% |████████████████████████████████| 61kB 17.2MB/sCollecting pyasn1>=0.1.7 (from paramiko->ansible) Downloading https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl (73kB) 100% |████████████████████████████████| 81kB 20.0MB/sCollecting pynacl>=1.0.1 (from paramiko->ansible) Downloading https://files.pythonhosted.org/packages/27/15/2cd0a203f318c2240b42cd9dd13c931ddd61067809fee3479f44f086103e/PyNaCl-1.3.0-cp34-abi3-manylinux1_x86_64.whl (759kB) 100% |████████████████████████████████| 768kB 20.3MB/sCollecting cffi!=1.11.3,>=1.8 (from cryptography->ansible) Downloading https://files.pythonhosted.org/packages/be/99/3a088b41d93aa46f07cf7fd4da1b3287e6899ad7b2b75f1a177edf025e1a/cffi-1.12.1-cp36-cp36m-manylinux1_x86_64.whl (428kB) 100% |████████████████████████████████| 430kB 20.8MB/sRequirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography->ansible) (1.12.0)Collecting asn1crypto>=0.21.0 (from cryptography->ansible) Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB) 100% |████████████████████████████████| 102kB 14.4MB/sCollecting pycparser (from cffi!=1.11.3,>=1.8->cryptography->ansible) Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB) 100% |████████████████████████████████| 163kB 18.0MB/sInstalling collected packages: MarkupSafe, jinja2, PyYAML, pycparser, cffi, bcrypt, asn1crypto, cryptography, pyasn1, pynacl, paramiko, ansible Running setup.py install for PyYAML ... done Running setup.py install for pycparser ... done Running setup.py install for ansible ... doneSuccessfully installed MarkupSafe-1.1.1 PyYAML-3.13 ansible-2.7.8 asn1crypto-0.24.0 bcrypt-3.1.6 cffi-1.12.1 cryptography-2.5 jinja2-2.10 paramiko-2.4.2 pyasn1-0.4.5 pycparser-2.19 pynacl-1.3.0ansible:/home/admin # git clone https://github.com/PaloAltoNetworks/minemeld-ansible.gitCloning into 'minemeld-ansible'...remote: Enumerating objects: 170, done.remote: Counting objects: 100% (170/170), done.remote: Compressing objects: 100% (121/121), done.remote: Total 1042 (delta 89), reused 110 (delta 46), pack-reused 872Receiving objects: 100% (1042/1042), 140.92 KiB | 1.35 MiB/s, done.Resolving deltas: 100% (450/450), done.ansible:/home/admin # cd minemeld-ansible/admin@ansible:~/minemeld-ansible> ansible-playbook -K -i 127.0.0.1, local.ymlSUDO password:PLAY [minemeld playbook] *******************************************************************************************************************************************************************************************************************************************************TASK [Gathering Facts]*********************************************************************************************************************************************************************************************************************************************************ok: [127.0.0.1]TASK [infrastructure : debug] **************************************************************************************************************************************************************************************************************************************************ok: [127.0.0.1] => { "msg": "Loading vars for openSUSE Tumbleweed 20190219"}TASK [infrastructure : include_vars]*******************************************************************************************************************************************************************************************************************************************fatal: [127.0.0.1]: FAILED! => {"msg": "No file was found when using with_first_found. Use the 'skip: true' option to allow this task to be skipped if no files are found"} to retry, use: --limit @/home/admin/minemeld-ansible/local.retryPLAY RECAP ********************************************************************************************************************************************************************************************************************************************************************* 127.0.0.1 : ok=2 changed=0 unreachable=0 failed=1
```
  
Looks like we need to find out where in the playbook with\_first\_found is defined.   

```
admin@ansible:~/minemeld-ansible> grep first_found */*/*/*roles/infrastructure/tasks/main.yml: with_first_found:roles/minemeld/tasks/main.yml: with_first_found:
```
  
With either location, the following YAML reference is made. I'll do some more research on what that does in another blog entry:   

```
# from http://serverfault.com/questions/587727/how-to-unify-package-installation-tasks-in-ansible- include_vars: "{{ item }}" with_first_found: - "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml" - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" - "{{ ansible_distribution }}.yml"
```