ansible playbook在服务器怎么执行

ansible playbook在服务器怎么执行,第1张

面playbook 实现功能新增用户:

name参数该playbook实现功能做概述面执行程打印 name变量值 ;

hosts参数指定哪些主机进行参作;

user参数指定使用用户登录远程主机 *** 作;

gather_facts参数指定任务部执行前否先执行setup模块获取主机相关信息面task使用setup获取信息用;

vars参数指定变量指字user变量其值test 需要注意变量值定要用引号引住;

task指定任务其面name参数同任务描述执行程打印user提定调用user模块nameuser模块参数增加用户名字调用面user变量值

Adhoc

adhoc 其实执行 Ansible 模块, 通 adhoc 我便快捷完些临运维 *** 作

20 前调用

import ansiblerunner

import json

runner = ansiblerunnerRunner(

module_name='ping', # 模块名

module_args='', # 模块参数

pattern='all', # 目标机器pattern

forks=10

)

datastructure = runnerrun()

data = jsondumps(datastructure,indent=4)

加载默认 inventory

想使用 inventory 文件或者想使用态 inventory, 则使用 host_list 参数代替

import ansiblerunner

import json

runner = ansiblerunnerRunner(

host_list=["101001"], # 明确指定主机需要传递列表, 或者指定态inventory脚本

module_name='ping', # 模块名

module_args='', # 模块参数

extra_vars={"ansible_ssh_user":"root","ansible_ssh_pass":"xx"},

forks=10

)

datastructure = runnerrun()

data = jsondumps(datastructure,indent=4)

20 调用

import json

from ansibleparsingdataloader import DataLoader

from ansiblevars import VariableManager

from ansibleinventory import Inventory

from ansibleplaybookplay import Play

from ansibleexecutortask_queue_manager import TaskQueueManager

from ansibleexecutorplaybook_executor import PlaybookExecutor

loader = DataLoader() # 用加载解析yaml文件或JSON内容,并且支持vault解密

variable_manager = VariableManager() # 管理变量类,包括主机,组,扩展等变量,前版本 inventory

inventory = Inventory(loader=loader, variable_manager=variable_manager)

variable_managerset_inventory(inventory) # 根据 inventory 加载应变量

class Options(object):

'''

公共类,ad-hocplaybook都需要options参数

并且所需要拥同属性,部属性都返None或False

用类省初始化堆空值属性

'''

def __init__(self):

selfconnection = "local"

selfforks = 1

selfcheck = False

def __getattr__(self, name):

return None

options = Options()

def run_adhoc():

variable_managerextra_vars={"ansible_ssh_user":"root" , "ansible_ssh_pass":"xxx"} # 增加外部变量

# 构建pb, 意思, 新版本运行ad-hoc或playbook都需要构建pb, 调用play类

# :param name: 任务名,类似playbooktasksname

# :param hosts: playbookhosts

# :param tasks: playbooktasks, 其实playbook语, tasks值列表,写入task

play_source = {"name":"Ansible Ad-Hoc","hosts":"101001","gather_facts":"no","tasks":[{"action":{"module":"shell","args":"w"}}]}

play = Play()load(play_source, variable_manager=variable_manager, loader=loader)

tqm = None

try:

tqm = TaskQueueManager(

inventory=inventory,

variable_manager=variable_manager,

loader=loader,

options=options,

passwords=None,

stdout_callback='minimal',

run_tree=False,

)

result = tqmrun(play)

print result

finally:

if tqm is not None:

tqmcleanup()

if __name__ == '__main__':

run_adhoc()

Playbook

playbook 则类似于 SaltStack state

20 前调用

from ansible import callbacks

from ansible import utils

from ansibleplaybook import PlayBook

stats = callbacksAggregateStats()

callback = callbacksPlaybookCallbacks()

runner_callbacks = callbacksPlaybookRunnerCallbacks(stats)

pb = ansibleplaybookPlayBook(

playbook="tasksyml",

stats=stats,

callbacks=playbook_cb,

runner_callbacks=runner_cb,

check=True

)

pbrun()

20 调用

import json

from ansibleparsingdataloader import DataLoader

from ansiblevars import VariableManager

from ansibleinventory import Inventory

from ansibleplaybookplay import Play

from ansibleexecutortask_queue_manager import TaskQueueManager

from ansibleexecutorplaybook_executor import PlaybookExecutor

loader = DataLoader() # 用加载解析yaml文件或JSON内容,并且支持vault解密

variable_manager = VariableManager() # 管理变量类,包括主机,组,扩展等变量,前版本 inventory

inventory = Inventory(loader=loader, variable_manager=variable_manager)

variable_managerset_inventory(inventory) # 根据 inventory 加载应变量

class Options(object):

'''

公共类,ad-hocplaybook都需要options参数

并且所需要拥同属性,部属性都返None或False

用类省初始化堆空值属性

'''

def __init__(self):

selfconnection = "local"

selfforks = 1

selfcheck = False

def __getattr__(self, name):

return None

options = Options()

def run_playbook():

playbooks=['taskyaml'] # 列表, 运行playbook

variable_managerextra_vars={"ansible_ssh_user":"root" , "ansible_ssh_pass":"xxx"} # 增加外部变量

pb = PlaybookExecutor(playbooks=playbooks, inventory=inventory, variable_manager=variable_manager, loader=loader, options=options, passwords=None)

result = pbrun()

print result

if __name__ == '__main__':

run_playbook()

以上就是关于ansible playbook在服务器怎么执行全部的内容,包括:ansible playbook在服务器怎么执行、如何利用ansible callback插件对执行结果进行解析、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9574065.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存