Ansible TypeError: must be string or buffer, not list
Ansible TypeError: must be string or buffer, not list
以下任务失败,必须是字符串或缓冲区,而不是列表,当我在 shell 上使用相同的循环并且输出打印字符串时,所以不确定哪里出错了。我也用过 loop
,它也给出相同的输出
- name: Provide Ambari cluster user role to users in file {{ cluster_user_group_file }}
uri:
url: "http://{{ ansible_fqdn }}:8080/api/v1/clusters/{{ cluster_name }}/privileges"
method: POST
force_basic_auth: yes
user: "{{ ambari_admin_user }}"
password: "{{ ambari_admin_password }}"
headers: '{"X-Requested-By":"ambari"}'
body: "[{\"PrivilegeInfo\":{\"permission_name\":\"CLUSTER.USER\",\"principal_name\":\"{{ item }}\",\"principal_type\":\"GROUP\"}}]"
status_code: 200,201,202,409
timeout: 60
return_content: no
with_items: "{{ lookup('file', '{{ cluster_user_group_file }}').split(',') }}"
这可以通过添加 to_json
和设置 body_format: raw
来解决
- name: Provide Ambari cluster user role to users in file {{ cluster_user_group_file }}
uri:
url: "http://{{ ansible_fqdn }}:8080/api/v1/clusters/{{ cluster_name }}/privileges"
method: POST
force_basic_auth: yes
user: "{{ ambari_admin_user }}"
password: "{{ ambari_admin_password }}"
headers: '{"X-Requested-By":"ambari"}'
body: "[{\"PrivilegeInfo\":{\"permission_name\":\"CLUSTER.USER\",\"principal_name\":\"{{ item }}\",\"principal_type\":\"GROUP\"}}]|to_json"
body_format: raw
status_code: 200,201,202,409
timeout: 60
return_content: no
with_items: "{{ lookup('file', '{{ cluster_user_group_file }}').split(',') }}"
以下任务失败,必须是字符串或缓冲区,而不是列表,当我在 shell 上使用相同的循环并且输出打印字符串时,所以不确定哪里出错了。我也用过 loop
,它也给出相同的输出
- name: Provide Ambari cluster user role to users in file {{ cluster_user_group_file }}
uri:
url: "http://{{ ansible_fqdn }}:8080/api/v1/clusters/{{ cluster_name }}/privileges"
method: POST
force_basic_auth: yes
user: "{{ ambari_admin_user }}"
password: "{{ ambari_admin_password }}"
headers: '{"X-Requested-By":"ambari"}'
body: "[{\"PrivilegeInfo\":{\"permission_name\":\"CLUSTER.USER\",\"principal_name\":\"{{ item }}\",\"principal_type\":\"GROUP\"}}]"
status_code: 200,201,202,409
timeout: 60
return_content: no
with_items: "{{ lookup('file', '{{ cluster_user_group_file }}').split(',') }}"
这可以通过添加 to_json
和设置 body_format: raw
- name: Provide Ambari cluster user role to users in file {{ cluster_user_group_file }}
uri:
url: "http://{{ ansible_fqdn }}:8080/api/v1/clusters/{{ cluster_name }}/privileges"
method: POST
force_basic_auth: yes
user: "{{ ambari_admin_user }}"
password: "{{ ambari_admin_password }}"
headers: '{"X-Requested-By":"ambari"}'
body: "[{\"PrivilegeInfo\":{\"permission_name\":\"CLUSTER.USER\",\"principal_name\":\"{{ item }}\",\"principal_type\":\"GROUP\"}}]|to_json"
body_format: raw
status_code: 200,201,202,409
timeout: 60
return_content: no
with_items: "{{ lookup('file', '{{ cluster_user_group_file }}').split(',') }}"