[英]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.