Ejemplo n.º 1
0
 def prepare(self):
     config = ansible_runner.RunnerConfig(
         inventory=self.inventory,
         extravars=self.extravars,
         host_pattern=self.host_pattern,
         module=self.module,
         module_args=self.module_args,
         private_data_dir=_AnsiblePrivateDir.get(),
         quiet=True
     )
     config.prepare()
     return config
Ejemplo n.º 2
0
 def prepare(self):
     config = ansible_runner.RunnerConfig(
         inventory=self.inventory,
         extravars=self.extravars,
         host_pattern=self.host_pattern,
         module=self.module,
         module_args=self.module_args,
         private_data_dir=pd.PrivateDir.get(),
         quiet=True
     )
     config.prepare()
     LOGGER.debug(f'ConfigBuilder prepare: {config}')
     return config
Ejemplo n.º 3
0
def get_all_host_fact():
    write_inventory_from_db()
    rc = ansible_runner.RunnerConfig(private_data_dir=data_dir,
                                     module="setup",
                                     module_args='',
                                     host_pattern='all',
                                     quiet=True,
                                     forks=len(inventory_list),
                                     inventory=inventory_file,
                                     json_mode=True)

    rc.prepare()

    r = ansible_runner.Runner(config=rc)
    r.run()
    fact_list = []
    for mystrs in inventory_list:
        for str in mystrs:
            myfact = r.get_fact_cache(str)
            fact_list.append({"ansible_name": str, "facts": myfact})
    # print(fact_list)
    return fact_list
Ejemplo n.º 4
0
    def _run(self, params, **kwargs):
        """
        The actual entry point into the ansible_runner package.

        :param params: any arguments that ansible_runner.RunnerConfig() would
                       accept (as a dict)
        :param kwargs: any arguments that ansible_runner.Runner() would accept
        :returns: ansible_runner.Runner object which holds info about the
                  Ansible execution
        """

        runner_config = ansible_runner.RunnerConfig(**params)
        runner_config.prepare()
        cmd = runner_config.generate_ansible_command()

        try:
            log.debug(f"Running the Ansible runner cmd='{cmd}'")

            runner = ansible_runner.Runner(runner_config, **kwargs)
            runner.run()
        except ansible_runner.exceptions.AnsibleRunnerException as e:
            raise ExecutionError(e)

        if runner.status != "successful":

            # Ansible runner 1.4.6-X does not expose the stderr property, so we
            # need to fallback to stdout instead
            # TODO: We'll be able to drop this code once ansible-runner 2.0 is
            # widely available
            if getattr(runner, "stderr", None) is not None:
                error = runner.stderr.read()
            else:
                error = runner.stdout.read()
            raise ExecutionError(
                f"Failed to execute Ansible command '{cmd}': {error}")

        return runner
Ejemplo n.º 5
0
import sys

# import paramiko
import ansible_runner

data_dir = "/root/flask-kubernetes/utils"

rc = ansible_runner.RunnerConfig(private_data_dir=data_dir,
                                 module="setup",
                                 module_args='',
                                 host_pattern='all',
                                 forks=1,
                                 inventory="inventory.ini",
                                 json_mode=True)

print(rc.generate_ansible_command())
rc.prepare()
r = ansible_runner.Runner(config=rc)
a = r.run()
print("{}: {}".format(r.status, r.rc))
for each_host_event in r.events:
    print(each_host_event['stdout'])

# for str in a:
#     print(a["ansible_processor_cores"])
# cpu = a['contacted']["10.147.19.123"]['ansible_facts']['ansible_processor'][1]
# print(cpu)
# r# = ansible_runner.runner.Runner(config=rc)
# r.run()

# # list = {"name": None, "percent": [0, ]}