qui*_*ver 9 static-analysis ansible ansible-lint
这是我的 Ansible 任务
- name: no need to import it.
ansible.builtin.uri:
url: >
https://{{ vertex_region }}-aiplatform.googleapis.com/v1/projects/{{ project }}/locations/{{ vertex_region }}/datasets/{{ dataset_id }}/dataItems
method: GET
headers:
Content-Type: "application/json"
Authorization: Bearer "{{ gcloud_auth }}"
register: images
Run Code Online (Sandbox Code Playgroud)
在检查 Ansible lint 时,它会溢出:
行太长(151 > 120 个字符)(行长度)
该错误是针对url任务的参数的。我已经习惯>了分解url,不知道如何进一步减少它以适应 Ansible lint 给出的行约束?
Zei*_*tor 12
如果你想遵守 lint 行长度规则,你需要将你的 url 分成几行。
>是 yaml 折叠标量块指示器:新行将被空格替换。这不是你想要的。
这里最好的解决方案是使用双引号流标量,您可以在其中转义新行,以便它们不会转换为空格,例如:
url: "https://{{ vertex_region }}-aiplatform.googleapis.com/v1/projects/\
{{ project }}/locations/{{ vertex_region }}/datasets/{{ dataset_id }}/dataItems"
Run Code Online (Sandbox Code Playgroud)
如果这仍然太长,您可以根据需要添加任意数量的转义新行。
https://yaml-multiline.info/是一个很好的资源,可以了解 yaml 中多行字符串的所有可能性。
由于它是一个 URL 并且空格应该已经经过 URL 编码,因此您可以使用 YAML折叠样式\xe2\x80\x94 >\xe2\x80\x94 与剪辑块 chomping 指示符\xe2\x80\x94 -\xe2的组合\x80\x94 以及 Jinja空白控制\xe2\x80\x94 {{- ... -}}。
所有这些都可以分成多行,例如:
\n- ansible.builtin.uri:\n url: >-\n https://\n {{- vertex_region -}}\n -aiplatform.googleapis.com/v1/projects/\n {{- project -}}\n /locations/\n {{- vertex_region -}}\n /datasets/\n {{- dataset_id -}}\n /dataItems\nRun Code Online (Sandbox Code Playgroud)\n对于不包含任何 Jinja 语句或表达式的长行,请参阅@Zeitounator\'s 答案,或者使用 Jinja 注释块和空格控制:
\n- ansible.builtin.uri:\n url: >-\n https://this_is_a_super_long_url_\n {#- -#}\n that_looks_like_it_cannot_be_split_\n {#- -#}\n into_multiples_lines_is_it_\n {#- -#}\n question_mark.example.com\nRun Code Online (Sandbox Code Playgroud)\n鉴于任务:
\n- name: Demo debug with variable\n ansible.builtin.debug:\n msg: >-\n https://\n {{- vertex_region -}}\n -aiplatform.googleapis.com/v1/projects/\n {{- project -}}\n /locations/\n {{- vertex_region -}}\n /datasets/\n {{- dataset_id -}}\n /dataItems\n vars:\n vertex_region: foo_region\n dataset_id: bar_id\n project: bar_project\n\n- name: Demo debug without variable\n ansible.builtin.debug:\n msg: >-\n https://this_is_a_super_long_url_\n {#- -#}\n that_looks_like_it_cannot_be_split_\n {#- -#}\n into_multiples_lines_is_it_\n {#- -#}\n question_mark.example.com\nRun Code Online (Sandbox Code Playgroud)\n这给出:
\nTASK [Demo debug with variable] ******************************************************************\nok: [localhost] => \n msg: https://foo_region-aiplatform.googleapis.com/v1/projects/bar_project/locations/foo_region/datasets/bar_id/dataItems\n\nTASK [Demo debug without variable] ***************************************************************\nok: [localhost] => \n msg: https://this_is_a_super_long_url_that_looks_like_it_cannot_be_split_into_multiples_lines_is_it_question_mark.example.com\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
13612 次 |
| 最近记录: |