Update scan facts to include the service scanner which was inexplicably

missing, update scan_packages to match the footprint of
scan_services (makes searching easier)
This commit is contained in:
Matthew Jones 2015-05-05 14:46:28 -04:00
parent 1bd2c99171
commit 2e040e9de3
2 changed files with 42 additions and 7 deletions

View File

@ -4,6 +4,7 @@
scan_use_recursive: false
tasks:
- scan_packages:
- scan_services:
- scan_files:
path: '{{ scan_file_path }}'
get_checksum: '{{ scan_use_checksum }}'

View File

@ -3,10 +3,47 @@
import os
from ansible.module_utils.basic import * # noqa
DOCUMENTATION = '''
---
module: scan_packages
short_description: Return installed packages information as fact data
description:
- Return information about installed packages as fact data
version_added: "1.9"
options:
requirements: [ ]
author: Matthew Jones
'''
EXAMPLES = '''
# Example fact output:
# host | success >> {
# "ansible_facts": {
# "services": [
# {
# "source": "apt",
# "version": "1.0.6-5",
# "architecture": "amd64",
# "name": "libbz2-1.0"
# },
# {
# "source": "apt",
# "version": "2.7.1-4ubuntu1",
# "architecture": "amd64",
# "name": "patch"
# },
# {
# "source": "apt",
# "version": "4.8.2-19ubuntu1",
# "architecture": "amd64",
# "name": "gcc-4.8-base"
# }, ... ] } }
'''
def rpm_package_list():
import rpm
trans_set = rpm.TransactionSet()
installed_packages = {}
installed_packages = []
for package in trans_set.dbMatch():
package_details = dict(name=package[rpm.RPMTAG_NAME],
version=package[rpm.RPMTAG_VERSION],
@ -14,16 +51,13 @@ def rpm_package_list():
epoch=package[rpm.RPMTAG_EPOCH],
arch=package[rpm.RPMTAG_ARCH],
source='rpm')
if package['name'] not in installed_packages:
installed_packages[package['name']] = [package_details]
else:
installed_packages[package['name']].append(package_details)
installed_packages.append(package_details)
return installed_packages
def deb_package_list():
import apt
apt_cache = apt.Cache()
installed_packages = {}
installed_packages = []
apt_installed_packages = [pk for pk in apt_cache.keys() if apt_cache[pk].is_installed]
for package in apt_installed_packages:
ac_pkg = apt_cache[package].installed
@ -31,7 +65,7 @@ def deb_package_list():
version=ac_pkg.version,
architecture=ac_pkg.architecture,
source='apt')
installed_packages[package] = [package_details]
installed_packages.append(package_details)
return installed_packages
def main():