本文整理汇总了Python中ansible.parsing.dataloader.DataLoader方法的典型用法代码示例。如果您正苦于以下问题:Python dataloader.DataLoader方法的具体用法?Python dataloader.DataLoader怎么用?Python dataloader.DataLoader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ansible.parsing.dataloader
的用法示例。
在下文中一共展示了dataloader.DataLoader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_play_prereqs_2
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def get_play_prereqs_2(self, options):
loader = DataLoader()
if self.vault_pass:
loader.set_vault_password(self.vault_pass)
variable_manager = VariableManager()
variable_manager.extra_vars = self.extra_vars
variable_manager.options_vars = {'ansible_version': self.version_info(ansible_version)}
inventory = Inventory(loader=loader, variable_manager=variable_manager, host_list=options.inventory)
variable_manager.set_inventory(inventory)
# let inventory know which playbooks are using so it can know the
# basedirs
inventory.set_playbook_basedir(os.path.dirname(self.playbook_file))
return loader, inventory, variable_manager
示例2: get_play_prereqs_2_4
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def get_play_prereqs_2_4(self, options):
loader = DataLoader()
if self.vault_pass:
loader.set_vault_secrets([('default', VaultSecret(_bytes=to_bytes(self.vault_pass)))])
# create the inventory, and filter it based on the subset specified (if any)
inventory = InventoryManager(loader=loader, sources=options.inventory)
# create the variable manager, which will be shared throughout
# the code, ensuring a consistent view of global variables
try:
# Ansible 2.8
variable_manager = VariableManager(loader=loader, inventory=inventory,
version_info=self.version_info(ansible_version))
variable_manager._extra_vars = self.extra_vars
except TypeError:
variable_manager = VariableManager(loader=loader, inventory=inventory)
variable_manager.extra_vars = self.extra_vars
variable_manager.options_vars = {'ansible_version': self.version_info(ansible_version)}
return loader, inventory, variable_manager
示例3: AnsiblePlaybookExecApi29
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def AnsiblePlaybookExecApi29(task_id, playbook_path, inventory_data=None, extra_vars={}):
# playbook_path = ['playbooks/test_debug.yml']
passwords = ""
options = get_default_options()
if inventory_data:
inventory = BaseInventory(inventory_data)
else:
inventory = BaseInventory(InventoryInit().get_data())
loader = DataLoader()
variable_manager = VariableManagerVars(loader=loader, inventory=inventory)
variable_manager.extra_vars = extra_vars
executor = MyPlaybookExecutor_V2(
task_id=task_id,
playbooks=playbook_path,
inventory=inventory,
variable_manager=variable_manager,
loader=loader,
passwords={"conn_pass": passwords},
)
context.CLIARGS = ImmutableDict(options)
executor.run()
示例4: __init__
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def __init__(self, playbook_path, inventory=None, options=None):
"""
:param options: Ansible options like ansible.cfg
:param inventory: Ansible inventory
:param BaseInventory:The BaseInventory parameter hostname must be equal to the hosts in yaml
or the BaseInventory parameter groups must equal to the hosts in yaml.
"""
if options:
self.options = options
C.RETRY_FILES_ENABLED = False
self.inventory = inventory
# self.loader = self.loader_class()
self.loader = DataLoader()
self.results_callback = self.results_callback_class()
# self.playbook_path = options.playbook_path
self.playbook_path = playbook_path
self.variable_manager = self.variable_manager_class(
loader=self.loader, inventory=self.inventory
)
# self.passwords = options.passwords
self.passwords = {"passwords": ''} # 为了修改paramiko中的bug添加入,无实际意义
self.__check()
示例5: execute_playbook
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def execute_playbook():
playbook_path = "playbook_template.yml"
inventory_path = "hosts"
Options = namedtuple('Options', ['connection', 'module_path', 'forks', 'become', 'become_method', 'become_user', 'check', 'diff', 'listhosts', 'listtasks', 'listtags', 'syntax'])
loader = DataLoader()
options = Options(connection='local', module_path='', forks=100, become=None, become_method=None, become_user=None, check=False,
diff=False, listhosts=False, listtasks=False, listtags=False, syntax=False)
passwords = dict(vault_pass='secret')
inventory = InventoryManager(loader=loader, sources=['inventory'])
variable_manager = VariableManager(loader=loader, inventory=inventory)
executor = PlaybookExecutor(
playbooks=[playbook_path], inventory=inventory, variable_manager=variable_manager, loader=loader,
options=options, passwords=passwords)
results = executor.run()
print results
开发者ID:PacktPublishing,项目名称:Learning-Python-Networking-Second-Edition,代码行数:19,代码来源:execute_playbook.py
示例6: ansible_part
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def ansible_part():
playbook_path = "checktemplate.yml"
inventory_path = "hosts"
Options = namedtuple('Options', ['connection', 'module_path', 'forks', 'become', 'become_method', 'become_user', 'check', 'diff', 'listhosts', 'listtasks', 'listtags', 'syntax'])
loader = DataLoader()
options = Options(connection='local', module_path='', forks=100, become=None, become_method=None, become_user=None, check=False,
diff=False, listhosts=False, listtasks=False, listtags=False, syntax=False)
passwords = dict(vault_pass='secret')
inventory = InventoryManager(loader=loader, sources=['inventory'])
variable_manager = VariableManager(loader=loader, inventory=inventory)
executor = PlaybookExecutor(
playbooks=[playbook_path], inventory=inventory, variable_manager=variable_manager, loader=loader,
options=options, passwords=passwords)
results = executor.run()
print results
示例7: __init__
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def __init__(self, inventory_generator):
"""
:type inventory_generator: ops.inventory.generator.InventoryGenerator
"""
self.inventory_generator = inventory_generator
self.generated_path, self.ssh_config_path = inventory_generator.generate()
# clean up variables cache for tests
ansible_vars.VARIABLE_CACHE = dict()
ansible_vars.HOSTVARS_CACHE = dict()
ansible_inventory.HOSTS_PATTERNS_CACHE = dict()
loader = DataLoader()
loader.set_basedir(self.generated_path)
self.inventory = InventoryManager(
loader=loader, sources=[
self.generated_path])
self.variable_manager = VariableManager(
loader=loader, inventory=self.inventory)
示例8: get
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def get(self):
data_loader = DataLoader()
# data_loader.set_vault_password()
variable_manager = VariableManager(loader=data_loader)
extra_vars = self.console_args.extra_vars[:]
extra_vars.append(
'cluster=' +
get_cluster_name(
self.cluster_config_path))
options = collections.namedtuple('options', 'extra_vars')
variable_manager.extra_vars = load_extra_vars(
loader=data_loader, options=options(extra_vars=extra_vars))
variables = variable_manager.get_vars()
rendered = self.template.render(self.cluster_config_path, variables)
return yaml.safe_load(rendered)
示例9: __initializeData
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def __initializeData(self):
""" 初始化ansible """
Options = namedtuple('Options', ['connection','module_path', 'forks', 'timeout', 'remote_user',
'ask_pass', 'private_key_file', 'ssh_common_args', 'ssh_extra_args', 'sftp_extra_args',
'scp_extra_args', 'become', 'become_method', 'become_user', 'ask_value_pass', 'verbosity',
'check', 'listhosts', 'listtasks', 'listtags', 'syntax','diff'])
self.loader = DataLoader()
self.options = Options(connection='smart', module_path=None, forks=100, timeout=10,
remote_user='root', ask_pass=False, private_key_file=None, ssh_common_args=None, ssh_extra_args=None,
sftp_extra_args=None, scp_extra_args=None, become=None, become_method=None,
become_user='root', ask_value_pass=False, verbosity=None, check=False, listhosts=False,
listtasks=False, listtags=False, syntax=False, diff=True)
self.passwords = dict(sshpass=None, becomepass=None)
myinvent = MyInventory(self.resource, self.loader, self.variable_manager)
self.inventory = myinvent.inventory
self.variable_manager = myinvent.variable_manager
# self.variable_manager.set_inventory(self.inventory)
# self.variable_manager = VariableManager(loader=self.loader, inventory=self.inventory)
示例10: _get_inventory
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def _get_inventory(self, workspace_name=None):
"""Returns Inventory object for the provided workspace.
Uses active workspace as default.
:param workspace_name: workspace name to list nodes from.
"""
workspace = self.get(
workspace_name) if workspace_name else self.get_active_workspace()
if workspace is None:
if workspace_name is None:
raise exceptions.IRNoActiveWorkspaceFound()
else:
raise exceptions.IRWorkspaceMissing(workspace=workspace_name)
# need to have import here to avoid ansible patching
from ansible.inventory.manager import InventoryManager
from ansible.parsing.dataloader import DataLoader
return InventoryManager(DataLoader(), sources=workspace.inventory)
示例11: __init__
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def __init__(self, playbook_path, inventory=None, options=None):
"""
:param options: Ansible options like ansible.cfg
:param inventory: Ansible inventory
:param BaseInventory:The BaseInventory parameter hostname must be equal to the hosts in yaml
or the BaseInventory parameter groups must equal to the hosts in yaml.
"""
if options:
self.options = options
C.RETRY_FILES_ENABLED = False
self.inventory = inventory
# self.loader = self.loader_class()
self.loader = DataLoader()
self.results_callback = self.results_callback_class()
# self.playbook_path = options.playbook_path
self.playbook_path = playbook_path
self.variable_manager = self.variable_manager_class(
loader=self.loader, inventory=self.inventory
)
# self.passwords = options.passwords
self.passwords = {"passwords":''}#为了修改paramiko中的bug添加入,无实际意义
self.__check()
示例12: AnsibleExecApi29
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def AnsibleExecApi29(task_id, tasks=[], inventory_data=None):
options = get_default_options()
context.CLIARGS = ImmutableDict(options)
loader = DataLoader()
passwords = dict(vault_pass='secret')
results_callback = RedisCallBack(task_id)
# inventory = InventoryManager(loader=loader, sources='localhost,')
if inventory_data:
inventory = BaseInventory(inventory_data)
else:
inventory = BaseInventory(InventoryInit().get_data())
variable_manager = VariableManager(loader=loader, inventory=inventory)
play_source = dict(
name="Ansible Play",
hosts='localhost',
gather_facts='no',
tasks=tasks,
)
play = Play().load(play_source, variable_manager=variable_manager, loader=loader)
tqm = None
try:
tqm = MyTaskQueueManager(
inventory=inventory,
variable_manager=variable_manager,
loader=loader,
passwords=passwords,
stdout_callback=results_callback,
)
result = tqm.run(play)
finally:
if tqm is not None:
tqm.cleanup()
shutil.rmtree(C.DEFAULT_LOCAL_TMP, True)
# Ansible 2.9 版本的 vars/manager.py: VariableManager 未有 extra_vars.setter
示例13: load_yaml
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def load_yaml(yaml_file, vault_secret=None):
"""
Load a YAML file into a python dictionary.
The YAML file can be fully encrypted by Ansible-Vault or can contain
multiple inline Ansible-Vault encrypted values. Ansible Vault
encryption is ideal to store passwords or encrypt the entire file
with sensitive data if required.
"""
vault = VaultLib()
if vault_secret:
secret_file = get_file_vault_secret(filename=vault_secret, loader=DataLoader())
secret_file.load()
vault.secrets = [('default', secret_file)]
data = None
if os.path.isfile(yaml_file):
with open(yaml_file, 'r') as stream:
try:
if is_encrypted_file(stream):
file_data = stream.read()
data = yaml.load(vault.decrypt(file_data, None))
else:
loader = AnsibleLoader(stream, None, vault.secrets)
try:
data = loader.get_single_data()
except Exception as exc:
raise Exception(f'Error when loading YAML config at {yaml_file} {exc}')
finally:
loader.dispose()
except yaml.YAMLError as exc:
raise Exception(f'Error when loading YAML config at {yaml_file} {exc}')
else:
LOGGER.debug('No file at %s', yaml_file)
return data
示例14: vault_encrypt
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def vault_encrypt(plaintext, secret):
"""
Vault encrypt a piece of data.
"""
try:
vault = VaultLib()
secret_file = get_file_vault_secret(filename=secret, loader=DataLoader())
secret_file.load()
vault.secrets = [('default', secret_file)]
return vault.encrypt(plaintext)
except AnsibleError as exc:
LOGGER.critical('Cannot encrypt string: %s', exc)
sys.exit(1)
示例15: __init__
# 需要导入模块: from ansible.parsing import dataloader [as 别名]
# 或者: from ansible.parsing.dataloader import DataLoader [as 别名]
def __init__(self, inventory, options=None):
self.options = self.get_options(options)
self.inventory = inventory
self.loader = DataLoader()
self.variable_manager = VariableManager(
loader=self.loader, inventory=self.inventory
)
self.set_result_callback()