2016-11-28 181 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