2017-04-06 74 views
1

塞纳里奥:两部剧有两个不同的主机在同一剧本与依赖

1. I need to run two plays in a single playbook. 
2. The second play should run after the first play. 
3. The first play create few instance and update the inventory file by making new group. 
4. Second play uses the updated group and install few packages. 

问题:如果我同时运行起着分别是成功的。 但是,我需要他们在相同的脚本。

我认为这个问题是两个游戏并行执行。

并提前致谢。

--- 
- name: ec2 
    hosts: localhost 
    connection: local 
    roles: 
    - launchEc2 
- hosts: ansible 
    gather_facts: Fasle 
    become: yes 
    roles: 
    - python 

OUTPUT:

PLAY [ec2] ********************************************************************* 

TASK [setup] ******************************************************************* 
ok: [127.0.0.1] 

TASK [launchEc2 : include_vars] ************************************************ 
ok: [127.0.0.1] 

TASK [launchEc2 : Launch new ec2 instance] ************************************* 
changed: [127.0.0.1] 

TASK [launchEc2 : Add ec2 ip to the hostgroup] ********************************* 
changed: [127.0.0.1] => (item={.....}) 

TASK [launchEc2 : wait for SSh to come up] ************************************* 
ok: [127.0.0.1] => (item={.....}) 

PLAY [ansible] ***************************************************************** 

TASK [python : install python] ************************************************* 
skipping: [34.203.228.19] 

PLAY RECAP ********************************************************************* 
127.0.0.1     : ok=5 changed=2 unreachable=0 failed=0 
34.203.228.19    : ok=0 changed=0 unreachable=0 failed=0 
+0

我认为问题在于您手动更新主机文件而不是使用'add_host'。 –

+0

我正在使用lineinfile来更新主机....可以有任何问题吗? –

回答

1

Ansible处理剧本之前负载库存。

在你的情况下,第二个游戏具有与第一个游戏中修改之前相同的库存。

通常,当您配置云主机时,您可能希望使用add_host动态地将新主机添加到内存清单中,以便它们可用于后续播放。

您也可以尝试在库存修改后致电meta: refresh_inventory,但我不确定它是否可以更新静态库存。

+0

我试着用'add_host'现在第二个游戏能够执行,但它显示**跳过** –

+0

添加剧本片段和日志输出到您的_original_问题。 –

+0

应该在第二次玩之前添加'meta:refresh_inventory'吗? –

相关问题