Я пытаюсь настроить некоторые роли elasticsearch, используя api с ansible, и когда я запускаю свой код, я, кажется, получаю это ниже, а не ожидаемый
Неверные "индексы": [{"имена": ["докер-, logstash-, .kibana "]," привилегии ": [" читать view_index_metadata "],
ожидаемый результат, когда я просматриваю роль
"indices" : [
{
"names" : [
"docker*",
"springxd-*",
"logstash-*"
],
Я использую доступный цикл
- name: Setup Special kibana Roles for Spaces which are later mapped to LDAP
uri:
url: "https://{{ ansible_fqdn }}:9200/_xpack/security/role/{{ item.role_name }}"
method: PUT
user: '{{ vault_elastic_user }}'
password: '{{ vault_elastic_pass }}'
body: '{ "indices": [ { "names": [ "{{ item.index_names }}" ], "privileges": [ "{{ item.privileges }}" ], "field_security" : { "grant" : [ "*" ] } } ] }'
body_format: json
validate_certs: no
headers:
Content-Type: "application/json"
with_items:
- { role_name: app_components_role, index_names: 'docker-*, logstash-*, .kibana, springxd-*', privileges: 'read, view_index_metadata' }
Есть идеи, как добиться правильного результата?
заранее спасибо
Если ваше значение здесь, в вашем 'index_names' нет кавычек. Ansible не собирается волшебным образом добавлять их, по крайней мере, когда вы просто используете index_names в качестве строки.
with_items:
- { role_name: app_components_role, index_names: 'docker-*, logstash-*, .kibana, springxd-*', privileges: 'read, view_index_metadata' }
Может быть, отрегулируйте свой предмет, чтобы он выглядел так?
with_items:
- { role_name: app_components_role, index_names: '"docker-*", "logstash-*", ".kibana", "springxd-*"', privileges: '"read", "view_index_metadata"' }
Или, может быть, это, если вы тоже хотите сделать его более читабельным.
with_items:
- role_name: app_components_role
index_names: '"docker-*", "logstash-*", ".kibana", "springxd-*"'
privileges: '"read", "view_index_metadata"'
Или, если вы хотите использовать еще лучшую читаемость, возможно, настройте что-то подобное.
uri:
...
body: |
{ "indices": [
{ "names": {{ item.index_names | to_json }},
"privileges": {{ item.privileges | to_json }},
"field_security" : { "grant" : [ "*" ] }
} ]
}
...
with_items:
- role_name: app_components_role
index_names:
- docker-*
- logstash-*
- .kibana
- springxd-*
privileges:
- read
- view_index_metadata