быстрый вопрос, я пытаюсь добавить некоторые конкретные факты AIX, используя BaseFactCollector. по какой-то причине факты не отображаются в выходных данных установки. Какого рода волшебство нужно сделать, чтобы сделать эту работу?
Я также добавил новый скрипт в следующий файл.
facts/default_collectors.py:
from ansible.module_utils.facts.system.aix import AIXFactCollector
# general info, not required but probably useful for other facts
_general = [
...
AIXFactCollector
]
тестовый код (fact / system / aix.py)
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import sys
import shlex
import os
import platform
import re
import itertools
import commands
import subprocess
try:
import json
except ImportError:
import simplejson as json
from ansible.module_utils.facts.utils import get_file_content
from ansible.module_utils.facts.collector import BaseFactCollector
class AIXFactCollector(BaseFactCollector):
"""
Some handy AIX facts, more or less nice to haves
"""
name = 'aix_goodies'
_fact_ids = set()
_platform = 'AIX'
def get_oslevel(self):
oslevel = {}
rc, out, err = self.module.run_command(["/usr/bin/oslevel", "-s"])
data = out.split('-')
oslevel['OS_VER'] = data[0].strip('0')
oslevel['TL'] = data[1].strip('0')
oslevel['SP'] = data[2].strip('0')
oslevel['BUILD_DATE'] = data[3].strip()
return oslevel
Ответная командная строка
ansible all -i 'AIXBUILDHOSTNG,' -m setup -a 'gather_subset=aix_goodies' --tree /tmp/facts