gpt4 book ai didi

loops - 可以循环 x 次

转载 作者:行者123 更新时间:2023-12-03 20:34:42 26 4
gpt4 key购买 nike

我必须做一些基准测试并循环 10 个命令 3 次(运行所有 10x3,而不是第一个 x3 然后第二个 x3 - 所以运行所有 10x3)。我从寄存器变量中的文件中提取的 10 个命令(它不适用于 _lines: 然后是命令)并执行它们 1,2,3..,10 将输出通过管道传输到文件中,回显某些内容,然后再次执行他们......所有这一切 3 次

这就是我如何在 x3 下面的代码(nagios_check 注册变量中有 10 个命令/行):

... more code above
- name: get the date for naming purpose
shell: date +%Y%m%d-%HH%MM%SS
register: dateext
- name: grep the commands from nagios
shell: grep -R check_http_EDEN_ /etc/nagios/nrpe.cfg | cut -d= -f2-
register: nagios_check
- name: check_eden_before
shell: (printf $(echo '{{ item }}' | awk -F'country=' '{print $2}' | cut -d'&' -f1); printf ' ';{{ item }} | cut -d ' ' -f-2) >> {{ ansible_env.DATA_LOG }}/eden-{{ ansible_hostname }}-{{ dateext.stdout }}
with_items: "{{ nagios_check.stdout_lines }}"
ignore_errors: True
- name: enter simple line
shell: echo "=================" >> {{ ansible_env.DATA_LOG }}/eden-{{ ansible_hostname }}-{{ dateext.stdout }}

...上面的这部分我写了 3 次(全部),然后写了更多的代码

有没有办法让它更简单?(它已经是一个角色了,我用了 4 次这个角色——不要让我把它变成更小的角色,因为它更复杂,我最终会得到一个巨大的剧本,比如12x“这个角色”,它看起来很可怕)

最佳答案

您可以将要重复的任务放在单独的 yaml 文件中:

---
# tasks-to-repeat.yml
- name: get the date for naming purpose
shell: date +%Y%m%d-%HH%MM%SS
register: dateext
- name: grep the commands from nagios
shell: grep -R check_http_EDEN_ /etc/nagios/nrpe.cfg | cut -d= -f2-
register: nagios_check
- name: check_eden_before
shell: (printf $(echo '{{ item }}' | awk -F'country=' '{print $2}' | cut -d'&' -f1); printf ' ';{{ item }} | cut -d ' ' -f-2) >> {{ ansible_env.DATA_LOG }}/eden-{{ ansible_hostname }}-{{ dateext.stdout }}
with_items: "{{ nagios_check.stdout_lines }}"
ignore_errors: True
- name: enter simple line
shell: echo "=================" >> {{ ansible_env.DATA_LOG }}/eden-{{ ansible_hostname }}-{{ dateext.stdout }}

然后将其包含在您的剧本中 3 次:
---
# Your playbook
... more code above
- include: task-to-repeat.yml
- include: task-to-repeat.yml
- include: task-to-repeat.yml

关于loops - 可以循环 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com