Esempio n. 1
0
def testRolleRun():
    utils.VERBOSITY = 3
    playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY)
    stats = callbacks.AggregateStats()
    runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY)

    # hosts = ['dborrac1.ea.intropro.com']
    myInventory = Inventory()
    host = 'dborrac1.ea.intropro.com'
    group = 'appSERVERS'
    hosts = Host(host)
    groups = Group(group)
    myInventory.groups = [groups, ]
    groups.add_host(hosts)
    local = True
    gather_facts = True

    if gather_facts:
        gather_facts = 'yes'
    else:
        gather_facts = 'no'
    if local:
        hosts.set_variable('ansible_connection', 'local')


    role = 'bfmartin.ssh_known_hosts'
    hostsPlay = 'appSERVERS'

    extraVars = {
        'ssh_known_hosts': [
            {'name': host,
            'state': 'present',
            'aliases': [host.split('.')[0], ]},
        ],
        'ssh_known_hosts_path': '~vagrant/.ssh/known_hosts',
    }

    playbookContent = """---
    - hosts: %s
      gather_facts: %s
      roles:
         - %s
    """ % (hostsPlay, gather_facts, role)
    tempFile = NamedTemporaryFile(delete=False)
    tempFile.write(playbookContent)
    tempFile.close()

    pb = PlayBook(
        playbook=tempFile.name,
        inventory=myInventory,     # Our hosts, the rendered inventory file
        remote_user='******',
        remote_pass='******',
        callbacks=playbook_cb,
        runner_callbacks=runner_cb,
        stats=stats,
        extra_vars=extraVars,
        #private_key_file='/path/to/key.pem'
    )

    pb.run()
    os.remove(tempFile.name)