簡體   English   中英

Ansible 如何將新值分配給額外的變量值

[英]Ansible how to assign new value to extra vars value

塔:3.2.3 Ansible 2.4.2

我有一個塔式手冊,其中分配了一個值,可以說build_cl: latest 這是在 Ansible Tower 的調查中定義的,我認為這被視為額外變量。 我有一個執行檢查的任務,如果條件正確,我需要修改build_cl的值。

所以讓我們說當 Tower 劇本被啟動時,var 是:

build_cl: latest

然后:

- name: "Get latest installed CL on groups['Healthcheck_Host'][0]"
  shell: |
    grep -oP '(?<=\:)(.*?)(?=\-)' {{ latest_deployed_build_dir.stdout }}/buildinfo.txt
  register: latest_deployed_cl

- debug:
    var: latest_deployed_cl

- set_fact:
    build_cl: "{{ latest_deployed_cl.stdout }}"
    cacheable: yes

- debug:
    var: build_cl

我已經測試過,這里第一個任務的調試返回讓我們說123456

但是我嘗試使用 set_fact 模塊,但是第二次調試 output 仍然給出: latest

我嘗試的任何事情似乎都不會影響原始價值。 幫助將不勝感激。 謝謝

額外的變量(即使用-e選項在命令行上傳遞的變量)具有最高優先級,並且在劇本生命周期內無法更改。 set_fact不會拋出任何錯誤,但該值將保持啟動時傳遞的值。

這是一個簡單的例子來說明:

---
- name: Immutable extra var demo
  hosts: localhost
  gather_facts: false

  vars:
    test_var: value set in playbook var

  tasks:
    - name: debug var value at playbook start
      debug:
        var: test_var

    - name: change var value
      set_fact:
        test_var: value set in set_fact

    - name: debug var value at playbook end
      debug:
        var: test_var

沒有額外的變量:

$ ansible-playbook test.yml 

PLAY [Immutable extra var demo] ********************************************************************************************************************************************************************************************************

TASK [debug var value at playbook start] ***********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "test_var": "value set in playbook var"
}

TASK [change var value] ****************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [debug var value at playbook end] *************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "test_var": "value set in set_fact"
}

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

帶有額外的變量:

$ ansible-playbook test.yml -e "test_var='value set in extra vars'"

PLAY [Immutable extra var demo] ********************************************************************************************************************************************************************************************************

TASK [debug var value at playbook start] ***********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "test_var": "value set in extra vars"
}

TASK [change var value] ****************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [debug var value at playbook end] *************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "test_var": "value set in extra vars"
}

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