动态生成主机列表和相关参数
![]()
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("执行失败")
动态生成参数代码