动态生成主机列表和相关参数

def create_admin_domain(admin_node):
    workpath = BASE_DIR + '/tools/ansible/script'
    hosts_file = BASE_DIR + '/tools/ansible/host/' + createhostfile()
    yml_file = BASE_DIR + '/tools/ansible/yml/' + 'create_admin_domain.yml'
    domain_path = admin_node.domainpath
    app_server_name=admin_node.app_server_name
    host_ip = admin_node.asset_ip
    ansible_ssh_user = admin_node.username
    ansible_ssh_pass = admin_node.password
    with open(hosts_file, 'w+') as f:
        f.writelines('[app_admin_domain]\n')
        domain_args = "%s-%s ansible_host=%s ansible_ssh_user=%s ansible_ssh_pass=%s domain_path=%s\n" % (
         host_ip,app_server_name,host_ip, ansible_ssh_user, ansible_ssh_pass, domain_path)
        f.writelines(domain_args)
    cmd = 'ansible-playbook -i %s %s --extra-vars "workpath=%s"' % (hosts_file, yml_file, workpath)
    print(cmd)

    p = Popen(cmd, stderr=PIPE, stdout=PIPE, shell=True)
    data = p.communicate()
    if p.returncode == 0:
        print("执行成功")
    else:
        print("执行失败")
动态生成参数代码

相关文章: