2016-11-28 180 views
2

我正在学习理智。 如何使用aws EC2机器连接?我用Cloudformation创建了这台机器。我可以这样做(在IP存储在bash作为一个环境变量MY_DB)使用Ansible连接到AWS EC2实例

- name: Test 
    hosts: "{{ lookup('env','my_db') }}" 
    user: ec2-user 
    vars_files: 
    - vars/test.yml 
    tasks: 
    - name: install tarball 

(这里做的东西的机器上)

+0

你的问题无关,与cloudformation除了实例是使用CF创建,对吗?实例是否被标记? – helloV

+0

是的,对于混淆 – Illusionist

回答

1

您可以用示例脚本尝试一下,看看它的工作原理。

要回答你的问题:是的,你可以做到这一点如果你设置环境变量my_db到实例IP。但推荐的方法是通过IP或使用EC2动态库存脚本和实例名称,以便可以为多个主机使用相同的手册。

- name: Test 
    hosts: "{{ my_host }}" 

您可以通过IP作为命令行参数

ansible-playbook --extra-vars "my_host=<my_db_ip>" my_playbook.yml 

或通过主机名(标签:姓名)

ansible-playbook -i /etc/ansible/ec2.py --extra-vars "my_host=tag_Name_HOST_NAME" my_playbook.yml 
+0

所以主机:“{{my_host}}” - 我应该使用主机:“{{my_db}}”在我的情况?谢谢! – Illusionist

+0

使用您在'--extra-vars'中指定的相同值 – helloV

+0

我需要用--extra-vars调用它吗?如果我想跳过额外的变数,我可以设置{{my_db}},并且它会查找吗?如果没有,那么{{lookup('env','my_db')}}“工作吗? – Illusionist