2016-09-28 62 views
0

下一個我有一個劇本,從中我想打電話給兩個角色:如何從一個角色參數傳遞給在ansible

  1. 啓動和提供我的分貝EC2實例
  2. 開始我的網站EC2實例,並設置了「DB-IP」的一審

的IP地址以便在第一劇本我用的是「EC2」模塊,它會返回大量的信息,包括其IP地址。

我可以以某種方式將此IP傳遞給下一個角色嗎?

回答

1

是的,你可以存儲在IP a variable

┌─[[email protected]] - [~/temp/ansible] - [Wed Sep 28, 12:28] 
└─[$]> cat provision.yaml 
- hosts: localhost 
    tasks: 
    - shell: echo 'so cool' 
     register: message 

- hosts: localhost 
    roles: 
    - example 
┌─[[email protected]] - [~/temp/ansible] - [Wed Sep 28, 12:28] 
└─[$]> tree roles 
roles 
└── example 
    └── tasks 
     └── main.yaml 

2 directories, 1 file 
┌─[[email protected]] - [~/temp/ansible] - [Wed Sep 28, 12:28] 
└─[$]> cat roles/example/tasks/main.yaml 
- debug: 
    msg: "got message: {{ message }}" 
┌─[[email protected]] - [~/temp/ansible] - [Wed Sep 28, 12:28] 
└─[$]> ansible-playbook provision.yaml 
[WARNING]: Host file not found: /etc/ansible/hosts 

[WARNING]: provided hosts list is empty, only localhost is available 


PLAY [localhost] *************************************************************** 

TASK [setup] ******************************************************************* 
ok: [localhost] 

TASK [command] ***************************************************************** 
changed: [localhost] 

PLAY [localhost] *************************************************************** 

TASK [setup] ******************************************************************* 
ok: [localhost] 

TASK [example : debug] ********************************************************* 
ok: [localhost] => { 
    "msg": "got message: {u'changed': True, u'end': u'2016-09-28 12:28:51.493133', u'stdout': u'so cool', u'cmd': u\"echo 'so cool'\", u'start': u'2016-09-28 12:28:51.489753', u'delta': u'0:00:00.003380', u'stderr': u'', u'rc': 0, 'stdout_lines': [u'so cool'], u'warnings': []}" 
} 

PLAY RECAP ********************************************************************* 
localhost     : ok=4 changed=1 unreachable=0 failed=0 

AWS detailed guide提供註冊ec2模塊的結果,並使用它以後的任務的示例。

相關問題