簡體   English   中英

通過ansible使用args解析執行python腳本

[英]executing python script with args pars via ansible

我正在嘗試通過 ansible 使用 args 解析器執行 python 腳本,我想將所有參數放在一個extra_var但我遺漏了一些東西

假設我的 python 腳本可以獲得用戶名-u和密碼-p並且我的 ansible 腳本有一個 var my_args

script: /tmp/args.py "{{ my_args }}"

當我像這樣運行我的劇本時:

ansible-playbook my_ansible_playbook.yml -e "my_args='-u my_username -p my_password'"

我得到的結果是:

用戶名 = my_username -p my_password

密碼 = default_password

我錯過了什么?

我如何使用單個 extra_var 將每個值發送到正確的值?

如果您不引用整個腳本值,yaml 會將其視為包含雙引號的字符串,其中包含一個值(稍后由 jinja2 解釋)。 最后,您的腳本被調用,其中一個參數是您的完整模板化字符串。

要在嘗試時傳遞所有參數,您需要引用整個字符串。

請參閱以下示例作為說明:

---
- hosts: localhost
  gather_facts: false

  tasks:
    - name: Show the extra var itself
      debug:
        var: myvar

    - name: Quotes in command (wrong)
      debug:
        msg: myscript.py "{{ myvar }}"

    - name: No quotes (good) - simple command with params
      debug:
        msg: "myscript.py {{ myvar }}"

結果:

$ ansible-playbook tmp.yml -e "myvar='-u toto -p bingo'"

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

TASK [Show the extra var itself] **********************************************************************************************************************************************************************************
ok: [localhost] => {
    "myvar": "-u toto -p bingo"
}

TASK [Quotes in command (wrong)] **********************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "myscript.py \"-u toto -p bingo\""
}

TASK [No quotes (good) - simple command with params] **************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "myscript.py -u toto -p bingo"
}

PLAY RECAP ********************************************************************************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

暫無
暫無

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

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