我原来的剧本和任务是为了在本地主机上运行:
- name: Fetch file
fetch:
src: \\10.14.2.130\shared\folder\Data\{{ filename }}
dest: /var/lib/awx/projects/Windows/
flat: yes
delegate_to: 10.12.201.60
become: yes
become_method: runas
become_user: SYSTEM
- name: Initialise data list
set_fact:
data_list: []
delegate_to: localhost
- name: Read input file
read_csv:
path: "{{ filename }}"
key: FirstName
fieldnames: FirstName,LastName,EmailAddress
delimiter: ','
register: userdata
delegate_to: localhost
- name: Extract the list
set_fact:
data_list: "{{ data_list + [{ 'FirstName': item.FirstName, 'LastName': item.LastName, 'EmailAddress': item.EmailAddress }] }}"
loop: "{{ userdata | community.general.json_query('dict.[*][0]') }}"
- name: Set fact for data_list
set_fact:
data_list: "{{ data_list[1:] }}"
由于第一个任务失败,我无法将csv文件“{{ filename }}”提取到ansible机器中,我修改了剧本的一些细节,即C驱动器中CSV文件的“delegate_to”和路径,然后在Windows主机上运行剧本:
- name: copy file
win_copy:
src: \\10.14.2.130\shared\folder\Data\{{ filename }}
dest: C:/
remote_src: true
delegate_to: 10.12.201.60
become: yes
become_method: runas
become_user: SYSTEM
- name: Initialise data list
set_fact:
data_list: []
- name: Read input file
read_csv:
path: C:\{{ filename }}
key: FirstName
fieldnames: FirstName,LastName,EmailAddress
delimiter: ','
register: userdata
delegate_to: 10.12.201.60
- name: Extract the list
set_fact:
data_list: "{{ data_list + [{ 'FirstName': item.FirstName, 'LastName': item.LastName, 'EmailAddress': item.EmailAddress }] }}"
loop: "{{ userdata | community.general.json_query('dict.[*][0]') }}"
- name: Set fact for data_list
set_fact:
data_list: "{{ data_list[1:] }}"
这是我运行Playbook后得到的错误:
fatal: [10.12.201.60]: FAILED! => {
"msg": "The module read_csv was redirected to community.general.read_csv, which could not be loaded."
如何在另一个远程服务器而不是本地主机上成功运行这些任务集?
1条答案
按热度按时间6ioyuze21#
简而言之: