簡體   English   中英

在構建期間如何通過Ansible訪問打包機(IP /主機)

[英]How to access packer machine (IP/host) through ansible during build

我正在嘗試使用包裝器和Ansible集成供應器使用GCP構建我的應用程序。 但是在構建過程中,我需要執行一些curl命令,而我卻找不到執行該操作的方法。

我已經嘗試過“ localhost”,然后嘗試了一些Ansible變量,例如“ {{ansible_host}}”(返回不起作用的127.0.0.1)和“ {{ansible_default_ipv4.address}}”(找不到變量)

我在yml.j2文件中使用它們。 這可能是問題的原因嗎?

錯誤->使用“ ansible_host”進行測試

[0;32m    googlecompute: TASK [deploy-XXXXX : Create the XXXXX collection] ***************************[0m
[0;32m    googlecompute: fatal: [localhost]: FAILED! => {"changed": false, "content": "", "msg": "Status code was -1 and not [200]: Request failed: <urlopen error [Errno 111] Connection refused>", "redirected": false, "status": -1, "url": "http://127.0.0.1:8765/api/v1/collections/XXXXX"}[0m
[0;32m    googlecompute:    to retry, use: --limit @/deploy-XXXXX.retry[0m
[0;32m    googlecompute:[0m
[0;32m    googlecompute: PLAY RECAP *********************************************************************[0m
[0;32m    googlecompute: localhost                  : ok=2    changed=1    unreachable=0    failed=1[0m

用“ ansible_default_ipv4.address”測試

[0;32m    googlecompute: TASK [deploy-XXXXX : copy environment specific variables] *********************[0m
[0;32m    googlecompute: fatal: [localhost]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible_default_ipv4' is undefined"}[0m
[0;32m    googlecompute:    to retry, use: --limit @/deploy-XXXXX.retry[0m
[0;32m    googlecompute:[0m
[0;32m    googlecompute: PLAY RECAP *********************************************************************[0m
[0;32m    googlecompute: localhost                  : ok=0    changed=0    unreachable=0    failed=1[0m
[0;32m    googlecompute:[0m

這是劇本片段

- name: Validate server runing
  uri:
    url: "http://{{ ansible_default_ipv4.address }}:{{ port }}/validate"
    method: PUT
    body_format: json
    body: "{\"test\":\"validate\"}"
    status_code: 200
    headers:
      Content-Type: "application/json"

我可以通過在任務中添加proxy_to:default來克服這個問題。 例如

- name: Validate server runing
  uri:
    url: "http://{{ ansible_default_ipv4.address }}:{{ port }}/validate"
    method: PUT
    body_format: json
    body: "{\"test\":\"validate\"}"
    status_code: 200
    headers:
      Content-Type: "application/json"
  delegate_to: default

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM