我需要:
vars_prompt:
- name: loopvar
prompt: Enter the loop variable
private: False
default: 16
- hosts: epcs
serial:1
gather_facts: no
tasks:
- name: Do some mathematics divide multiply
#insert logic here
register: my_content # save logic in register
with_sequence: count={{loopvar}} #I need a loop sequence here
when: inventory_hostname == "vm1"
ignore_errors: yes
c ++中的一个简单循环就像:
int x=0;
for (int i=1; i<loopvar; i+=pow(2,x)) //pow is a math function with pow(2,x)= 2^x
{
cout<<hi;
x++;
}
还有一件事,我怎样才能将每次迭代的结果存储在一个寄存器中,这样当剧本连续第二次,第三次或第四次连续运行时,我就可以使用它。
更新: Jinja2允许以下内容: 将左操作数提升到右操作数的幂。
{{ 2**3 }} would return 8.
现在记住这些新信息,我们可以做2循环的力量吗?
答案 0 :(得分:1)
在Ansible中无法实现所需的循环类型。该工具仅限于循环列表,字典或序列,但无法修改计数器。请参阅ansible docs on loops。
对于类似的内容,您可能需要考虑编写custom module。
还有一件事,我怎样才能将每次迭代的结果存储在一个寄存器中,这样我就可以在剧本连续第二次,第三次或第四次等时运行。
请参阅Ansible docs on how to use register in a loop中的部分。
如果您注册名为my_content
的var,则可以访问my_content.results
中的各个结果。