##脚本说明服务器
project -- 操做的项目输入app
playbook -- 远程服务器执行的规则定义code
import ansible from ansible.playbook import PlayBook from ansible.inventory import Inventory from ansible import callbacks from ansible import utils utils.VERBOSITY = 0 playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY) stats = callbacks.AggregateStats() runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY) project = "test" playbook = "/etc/ansible/test.yml" # 经过ansible的get_hosts方法获取到本次操做的服务器列表 def get_invent(project): invent = [] inv = ansible.inventory.Inventory() invent_array = inv.get_hosts(pattern = project) for i in invent_array: invent.append(i.name) return invent # 将本次操做的服务器列表经过playbook的规则进行操做 def ansible_playbook(playbook,pro): pb = PlayBook( playbook=playbook, inventory = Inventory(pro), callbacks = playbook_cb, runner_callbacks=runner_cb, stats=stats ) pb.run() invent = get_invent(project) ansible_playbook(playbook, invent)