将增量变量分配给具有ansible的主机列表

时间:2015-09-18 06:04:41

标签: ansible ansible-playbook

我想要的应该是死的简单,但我似乎无法找到答案。我想用不同的输入运行数学模拟。我可以访问40个服务器的列表(我没有root权限)所以我的想法是同时测试40个不同的系数集。目前尚不清楚如何在ansible中使用for loop类似语句设置变量,并将每个变量分配给不同的服务器。理想情况下,我希望变量列表是浮动数字,类似于a = numpy.arange(.0,1.,.1)给我的数字。有什么想法吗?

服务器组的设置如下: [computingCluster] cic[1:40]

1 个答案:

答案 0 :(得分:1)


    me@pc:~/Ansible/playbooks/test_iterate$ ansible-playbook test0.yml 

    PLAY ***************************************************************************

    TASK [setup] *******************************************************************
    ok: [srv-db1]
    ok: [srv-db-temp]

    TASK [debug] *******************************************************************
    ok: [srv-db-temp] => {
        "msg": "101"
    }
    ok: [srv-db1] => {
        "msg": "102"
    }

    PLAY RECAP *********************************************************************
    srv-db-temp          : ok=2    changed=0    unreachable=0    failed=0   
    srv-db1              : ok=2    changed=0    unreachable=0    failed=0  


test0.yml:

     hosts: srv-dbs
      vars: 
        - priority_start: 100
      tasks:
       - debug: msg="{% for thishost in play_hosts %}{% if inventory_hostname==thishost %}{{ priority_start + loop.index }}{% endif %}{% endfor %}"