Что я пытаюсь сделать
Все, что касается HTTP-запросов.
- Создать что-то с помощью POST API, если я его создаю, я могу получить идентификатор ресурса
- Если ресурс уже создан, он возвращает код состояния 422
- Если код состояния 422, получить ресурс по имени, чтобы я мог получить доступ к его идентификатору
- Создать другой ресурс с указанным идентификаторомвнутри тела запроса
код, который у меня есть
- name: Create cluster
uri:
url: '{{ rancher_url }}/v3/cluster'
method: POST
body: {"type":"cluster","nodes":[],"rancherKubernetesEngineConfig":{"ignoreDockerVersion":true, "network":{"type":"networkConfig","plugin":"{{ rancher_network_provider }}"}},"name":"{{ rancher_cluster_name }}"}
status_code: 201, 422
body_format: json
headers:
Authorization: "Bearer {{ api_key_result.json.token }}"
validate_certs: "{{ validate_certs }}"
register: cluster_created
- name: Cluster already exists, retrieving id
uri:
url: '{{ rancher_url }}/v3/cluster?name={{ rancher_cluster_name }}'
method: GET
status_code: 200
headers:
Authorization: "Bearer {{ api_key_result.json.token }}"
body_format: json
validate_certs: "{{ validate_certs }}"
register: cluster_found
when: cluster_created.status == 422
- name: Get command to launch for nodes
uri:
url: '{{ rancher_url }}/v3/clusterregistrationtoken'
method: POST
body: {"type":"clusterRegistrationToken","clusterId":"{{cluster_created.json.id | cluster_found.json.data[0].id}}"}
status_code: 201
body_format: json
headers:
Authorization: "Bearer {{ api_key_result.json.token }}"
validate_certs: "{{ validate_certs }}"
register: node_command_result
Так что в основном я хочу, чтобы эта строка работала: {{cluster_created.json.id | cluster_found.json.data[0].id}}
Я получаю ошибку
TASK [rancher_worker : Get command to launch for nodes] ***************************************************************************************************************************************************************************************
fatal: [51.15.25.38]: FAILED! => {"msg": "template error while templating string: expected token 'end of print statement', got '['. String: {{cluster_created.json.id | cluster_found.json.data[0].id}}"}
Как вы думаете?
Спасибо за вашу помощь:)