0
아래 python 스크립트를 실행하여 호스트 컴퓨터에 ping 명령을 실행했습니다. 오류 아래Python API를 사용하여 프로그래밍 방식으로 실행하는 중에 오류가 발생했습니다.
Traceback (most recent call last):
File "ansible.py", line 2, in <module>
from ansible.parsing.dataloader import DataLoader
File "/home/tcprod/schaitanya/python_ansible/ansible.py", line 2, in <module>
from ansible.parsing.dataloader import DataLoader
ImportError: No module named parsing.dataloader
아래 얻는 것은 전체 스크립트이에 대한
from collections import namedtuple
from ansible.parsing.dataloader import DataLoader
from ansible.vars import VariableManager
from ansible.inventory import Inventory
from ansible.playbook.play import Play
from ansible.executor.task_queue_manager import TaskQueueManager
#Initialize the objects that are needed for the play.
Options = namedtuple('Options',
['connection', 'module_path', 'forks', 'become',
'become_method', 'become_user', 'check']
)
#initialize needed objects
variable_manager = VariableManager()
loader = DataLoader()
options = Options(
connection='local', module_path='', forks=100, become=True,
become_method='sudo', become_user='root', check=False)
passwords = dict(vault_pass='secret')
#create inventory and pass to variable manager
inventory = Inventory(loader=loader, variable_manager=variable_manager,
host_list='localhost')
variable_manager.set_inventory(inventory)
#create play with tasks
play_src = dict(
name="ping localhost",
hosts="localhost",
gather_facts="no",
tasks=[
# installing dependencies
dict(name="ping local host",
action=dict(module="ping"))
])
play = Play().load(play_src, variable_manager=variable_manager, loader=loader)
tqm = None
try:
tqm = TaskQueueManager(
inventory=inventory,
variable_manager=variable_manager,
loader=loader,
options=options,
passwords=passwords,
stdout_callback="default",
)
result = tqm.run(play)
finally:
if tqm is not None:
tqm.cleanup()
봤지만 약간의 도움을 얻었다. 이 종속성 문제를 해결하고 파이썬 프로그램을 작동시키는 방법을 알려주십시오.
파이썬에서 이름을 중복하지 마십시오. 스크립트의 이름을'anonym.py'에서'my_ansible.py'로 변경하십시오. –
감사합니다. 같은 것을 시도했습니다. 그러나 오류는 지속됩니다. – sntchaitu