Dataloader-Fehler beim Ausführen von ansible.windows.win_powershellLinux

Linux verstehen
Anonymous
 Dataloader-Fehler beim Ausführen von ansible.windows.win_powershell

Post by Anonymous »

Ich habe Ansible 2.17 auf einer Debian-Distribution installiert. Ich habe dieses sehr einfache Ansible-Playbook, das ein Powershell-Skript auf einem Ziel-Windows-Computer ausführen soll (das Skript selbst befindet sich auf dem Ansible-Host).

Code: Select all

---
- name: Configures AD for a new server
hosts: "{{ host }}"
fact_path: c:\Ansible\Facts
become_method: runas

vars:
scripts_folder: "/home/xxx/AnsiblePlaybooks/MyServerConfig/Scripts"
#extra-vars: ServerName

tasks:
- name: Add new server to Active Directory
ansible.windows.win_powershell:
path: "{{scripts_folder}}/ActiveDirectoryNewServer.ps1"
parameters:
ServerName: "{{ServerName}}"
Hier ist der Befehl, den ich zum Ausführen dieses Playbooks verwende:

Code: Select all

ansible-playbook AD_config.yml --ask-pass --user xxx -e "force=true" --extra-vars "ServerName=MyServer" -vvvv
Allerdings erhalte ich eine Fehlermeldung, die ich nicht verstehe. Hier ist das vollständige Ergebnis:

Code: Select all

ansible-playbook [core 2.17.14]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/xxx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /home/xxx/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible-playbook
python version = 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
Loading collection ansible.builtin from
host_list declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
script declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
auto declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
Parsed /etc/ansible/hosts inventory source with ini plugin
Loading collection ansible.windows from /home/xxx/.ansible/collections/ansible_collections/ansible/windows
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python3/dist-packages/ansible/plugins/callback/default.py
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: AD_config.yml ********************************************************
Positional arguments: AD_config.yml
verbosity: 4
remote_user: xxxx
connection: ssh
ask_pass: True
become_method: sudo
tags: ('all',)
inventory: ('/etc/ansible/hosts',)
extra_vars: ('force=true', 'ServerName=MyServer')
forks: 10
1 plays in AD_config.yml

PLAY [Configures AD for a new server] ******************************************

TASK [Gathering Facts] *********************************************************
task path: /home/xxx/AnsiblePlaybooks.git/Playbooks/MyServerConfig/AD_config.yml:2
redirecting (type: modules) ansible.builtin.setup to ansible.windows.setup
Using module file /home/xxx/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Pipelining is enabled.
 ESTABLISH WINRM CONNECTION FOR USER: xxx on PORT 5985 TO 192.168.10.110
EXEC (via pipeline wrapper)
ok: [xxxDC1]

TASK [Add new server to Active Directory] **************************************
task path: /home/xxx/AnsiblePlaybooks.git/Playbooks/MyServerConfig/AD_config.yml:12
The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ansible/executor/task_executor.py", line 165, in run
res = self._execute()
^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/ansible/executor/task_executor.py", line 644, in _execute
result = self._handler.run(task_vars=vars_copy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxx/.ansible/collections/ansible_collections/ansible/windows/plugins/action/win_powershell.py", line 38, in run
module_args['script'] = self._loader.get_text_file_contents(full_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataLoader' object has no attribute 'get_text_file_contents'
fatal: [xxxDC1]: FAILED! => {
"msg": "Unexpected failure during module execution: 'DataLoader' object has no attribute 'get_text_file_contents'",
"stdout": ""
}

PLAY RECAP *********************************************************************
xxxDC1                     : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
Der Hauptfehler hier ist:

Code: Select all

AttributeError: 'DataLoader' object has no attribute 'get_text_file_contents'
Es ist, als ob der Code hier nichts über das DataLoader-Objekt weiß, das in ansible.parsing vorhanden ist (obwohl die Python-Dateien auf meinem System vorhanden sind).
Ich habe die neuesten Versionen meiner Sammlungen installiert:

Code: Select all

# /home/xxx/.ansible/collections/ansible_collections
Collection                               Version
---------------------------------------- -------
ansible.netcommon                        8.1.0
ansible.posix                            2.1.0
ansible.utils                            6.0.0
ansible.windows                          3.2.0
community.general                        11.4.0
Ich habe nach diesem speziellen Fehler gesucht, aber nichts gefunden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post