0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Ansible Playbook中的變量使用技巧

馬哥Linux運(yùn)維 ? 來源:博客園 ? 2025-04-15 10:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ansible playbook中的變量

目錄

?一、變量的優(yōu)先級(jí)

?1.1 YAML陷阱

?二、 Ansbile-playbook變量配置方法

?2.1 在inventory主機(jī)清單文件中定義變量

?2.2 通過host_vars和group_vars目錄來定義變量

?2.3 通過var_files定義變量

?2.4 通過vars_prompt交互式傳入變量

?2.5 通過ansible-playbook命令行定義變量!即參數(shù)傳入變量

?2.6 在playbook劇本中定義變量

?2.7 通過roles角色定義變量

?2.8 使用Facts獲取的信息

?2.9 register注冊(cè)變量

?2.10 hostvars 變量

?2.11 列表變量、循環(huán)變量、字典變量

一、變量的優(yōu)先級(jí)

?extra vars變量(在命令行中使用-e);優(yōu)先級(jí)最高;

? 在inventory中定義的連接變量(比如ansible_ssh_user);優(yōu)先級(jí)第二;

? 大多數(shù)的其他變量(命令行轉(zhuǎn)換,play中的變量,include的變量,role的變量等);優(yōu)先級(jí)第三;

? 在inventory定義的其他變量;優(yōu)先級(jí)第四;

? 有系統(tǒng)發(fā)現(xiàn)的facts;優(yōu)先級(jí)第五;

? "role默認(rèn)變量",這個(gè)是最默認(rèn)的值,很容易喪失優(yōu)先權(quán)。優(yōu)先級(jí)最??;

另外:在inventory清單列表里定義的變量:單個(gè)主機(jī)定義的變量?jī)?yōu)先級(jí)高于主機(jī)組定義的變量
經(jīng)過實(shí)驗(yàn),ansible使用inventory定義變量的優(yōu)先級(jí)順序從高到低為:
host_vars下定義變量 ---> inventory中單個(gè)主機(jī)定義變量 ---> group_vars下定義變量 ---> inventory中組定義變量

1.1 YAML陷阱

YAML語(yǔ)法要求如果值以{{ foo }}開頭的話,那么就需要將整行用雙引號(hào)包起來,這是為了確認(rèn)你不是想聲明一個(gè)YAML字典。
如下面配置是不行的?。。?/p>

|  |  |
|---|---|
|  |---|
|  |-hosts:app_servers|
|  |vars:|
|  |app_path:{{base_path}}/data/web|

應(yīng)該改成下面這樣:

|  |  |
|---|---|
|  |---|
|  |-hosts:app_servers|
|  |vars:|
|  |app_path:"{{ base_path }}/data/web"|

二、 Ansbile-playbook變量配置方法

2.1 在inventory主機(jī)清單文件中定義變量

可以直接定義在主機(jī)清單文件/etc/ansible/hosts中,表明該變量只對(duì)對(duì)應(yīng)的主機(jī)或者組有效,對(duì)其余的主機(jī)和組無效。

示例:

|   |   |
| --- | --- |
|   | $ egrep -v "^#|^$" /etc/ansible/hosts |
|   | 10.4.7.101 key=20180101 |
|   | 10.4.7.102 key="niubility" |
|   |   |
|   | $ vim ansi.yml |
|   | --- |
|   | - hosts: all |
|   | gather_facts: False |
|   | tasks: |
|   | - name: haha |
|   | debug: msg="the {{ inventory_hostname }} value is {{ key }}" |
|   |   |
|   | # 執(zhí)行結(jié)果(注意inventory_hostname代表inventory列表列表里被控節(jié)點(diǎn)的主機(jī)名): |
|   |   |
|   | $ ansible-playbook ansi.yml |
|   |   |
|   | PLAY [all] ************************************************************************************************************************************** |
|   |   |
|   | TASK [haha] ************************************************************************************************************************************* |
|   | ok: [10.4.7.101] => { |
|   | "msg": "the 10.4.7.101 value is 20180101" |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": "the 10.4.7.102 value is niubility" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.2 通過host_vars和group_vars目錄來定義變量

/etc/ansible/目錄是linux系統(tǒng)上ansible默認(rèn)的配置文件目錄(Mac系統(tǒng)上的話,其默認(rèn)配置目錄是在/usr/local/etc/ansible/),在該目錄下創(chuàng)建host_vars和group_vars兩個(gè)目錄用來存放定義變量的文件。

針對(duì)單個(gè)主機(jī)的變量

|   | $ cat /etc/ansible/host_vars/10.4.7.101 |
|   | --- |
|   | user: root |
|   | pass: root@123 |

針對(duì)test組的變量

|   | $ cat /etc/ansible/group_vars/test |
|   | --- |
|   | user: work |
|   | pass: work@123 |

在inventory清單列表文件里,單個(gè)主機(jī)定義的變量?jī)?yōu)先級(jí)高于主機(jī)組定義的變量

2.3 通過var_files定義變量

|   | $ cat vars.yml |
|   | --- |
|   | key: jiayou |
|   |   |
|   | $ cat bo.yml |
|   | --- |
|   | - hosts: all |
|   | gather_facts: False |
|   | vars_files: |
|   | - vars.yml |
|   | tasks: |
|   | - name: display |
|   | debug: msg="the {{ inventory_hostname }} valus is {{ key }}" |
|   |   |
|   | $ ansible-playbook bo.yml |
|   |   |
|   | PLAY [all] ************************************************************************************************************************************** |
|   |   |
|   | TASK [display] ********************************************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "the 10.4.7.101 valus is jiayou" |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": "the 10.4.7.102 valus is jiayou" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.4 通過vars_prompt交互式傳入變量

在playbook中定義vars_prompt的變量名和交互式提示信息,就可以實(shí)現(xiàn)在運(yùn)行playbook時(shí),通過交互的傳入變量值。
private字段:用來定義交互時(shí)是否回顯輸入的值,默認(rèn)private為yes;
default字段:用來定義變量的默認(rèn)值。

|   | $ cat prom.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | vars_prompt: |
|   | - name: "var1" |
|   | prompt: "please input you name" |
|   | private: no |
|   | - name: "var2" |
|   | prompt: "please input you age" |
|   | private: yes |
|   | default: 18 |
|   | tasks: |
|   | - name: display var1 |
|   | debug: msg="your name of var1 is {{ var1 }}" |
|   | - name: display var2 |
|   | debug: msg="you age of var2 is {{ var2 }}" |
|   |   |
|   | $ ansible-playbook prom.yml |
|   | please input you name: lvzhenjiang  # 把輸入的內(nèi)容傳遞給變量var1。輸入的值顯示出來! |
|   | please input you age [18]:      # playbook中定義默認(rèn)值是18,如果不輸入便是18,但是輸入的值不顯示出來!比如這里輸入的23 |
|   |   |
|   | PLAY [test] ************************************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   |   |
|   | TASK [display var1] ***************************************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "your name of var1 is lvzhenjiang" |
|   | }  |
|   |   |
|   | TASK [display var2] ***************************************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "you age of var2 is 23" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=3  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.5 通過ansible-playbook命令行定義變量!即參數(shù)傳入變量

除了vars_prompt和vars_files,也可以通過Ansible命令行發(fā)送變量。如果想要編寫一個(gè)通用的發(fā)布playbook時(shí)則特別有用!你可以傳遞應(yīng)用的版本以便部署。例如下面命令(注意:--extra-vars相等于 -e)

|   | $ cat exap.yml |
|   | --- |
|   | - hosts: '{{hosts}}' |
|   | remote_user: '{{user}}' |
|   | tasks: |
|   | - name: "一個(gè)測(cè)試" |
|   | debug: msg="your hosts is {{hosts}}, user is {{user}}" |
|   |   |
|   | $ ansible-playbook exap.yml -e "hosts=test user=root" |
|   | [WARNING]: Found variable using reserved name: hosts |
|   |   |
|   | PLAY [test] ************************************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   |   |
|   | TASK [一個(gè)測(cè)試] ************************************************************************************************************************************* |
|   | ok: [10.4.7.101] => { |
|   | "msg": "your hosts is test, user is root" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=2  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

也可以將參數(shù)放在文件里面進(jìn)行傳遞(注意命令行里要是用"@文件名"):

|   |   |
| --- | --- |
|   | # 同樣使用上面的例子 |
|   | $ cat anhui.yml |
|   | --- |
|   | hosts: test |
|   | user: root |
|   |   |
|   | $ ansible-playbook exap.yml -e "@anhui.yml" |
|   | [WARNING]: Found variable using reserved name: hosts |
|   |   |
|   | PLAY [test] ************************************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   |   |
|   | TASK [一個(gè)測(cè)試] ************************************************************************************************************************************* |
|   | ok: [10.4.7.101] => { |
|   | "msg": "your hosts is test, user is root" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=2  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.6 在playbook劇本中定義變量

在playbook中定義變量需要用到Ansible的vars模塊,可以將所有需要用到的變量統(tǒng)一在vars模塊下定義,定義格式需要遵循YAML語(yǔ)言格式:

語(yǔ)法格式:

|   |   |
| --- | --- |
|   | vars: |
|   | - var1: value1 |
|   | - var2: value2 |
|   | - var3: value3 |
|   | - ....: ..... |

示例如下:

|   | $ cat playbook.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | vars: |
|   | - dir1: /root/Ansible |
|   | - dir2: /root/Ansible/test1 |
|   | - dir3: /root/Ansible/test2 |
|   | tasks: |
|   | - name: Create New Folder |
|   | file: name={{ dir1 }} state=directory |
|   | - name: Create New Folder |
|   | file: name={{ dir2 }} state=directory |
|   | - name: Create New Folder |
|   | file: name={{ dir3 }} state=directory |
|   |   |
|   | $ ansible-playbook playbook.yml |
|   |   |
|   | PLAY [test] ************************************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   |   |
|   | TASK [Create New Folder] ************************************************************************************************************************ |
|   | changed: [10.4.7.101] |
|   |   |
|   | TASK [Create New Folder] ************************************************************************************************************************ |
|   | changed: [10.4.7.101] |
|   |   |
|   | TASK [Create New Folder] ************************************************************************************************************************ |
|   | changed: [10.4.7.101] |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=4  changed=3  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.7 通過roles角色定義變量

在Ansible的roles中定義變量,需要將變量及值的鍵值對(duì)形式寫到roles的vars目錄下的main.yml文件中,同樣適用YAML語(yǔ)言格式,格式如下:

|   |   |
| --- | --- |
|   | var1: value1 |
|   | var2: value2 |
|   | var3: value3 |

但是請(qǐng)注意:通過Roles定義的變量只適用于當(dāng)前roles。

|   |   |
| --- | --- |
|   | # roles目錄結(jié)構(gòu) |
|   | $ tree . |
|   | .  |
|   | ├── hosts |
|   | ├── playbook.yml |
|   | └── test |
|   | ├── files |
|   | ├── tasks |
|   | │  └── main.yml |
|   | ├── templates |
|   | └── vars |
|   | └── main.yml |
|   |   |
|   | 5 directories, 4 files |
|   |   |
|   | $ cat test/tasks/main.yml |
|   | - name: create directory |
|   | file: name={{ dir }} state=directory |
|   | - name: Get IP Address |
|   | shell: echo `{{ cmd }}` >> {{ dir }}/{{ file }} |
|   |   |
|   | $ cat test/vars/main.yml |
|   | cmd: hostname -I |
|   |   |
|   | $ cat playbook.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | roles: |
|   | - test |
|   |   |
|   | $ cat hosts |
|   | [test] |
|   | 10.4.7.101 dir=/root/node2 |
|   | 10.4.7.102 dir=/root/node1 |
|   |   |
|   | [node1] |
|   | 10.4.7.100 |
|   |   |
|   | [test:vars] |
|   | file=hostname.txt |
|   |   |
|   | $ ansible-playbook -i hosts playbook.yml |
|   |   |
|   | PLAY [test] ************************************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   | ok: [10.4.7.102] |
|   |   |
|   | TASK [test : create directory] ****************************************************************************************************************** |
|   | ok: [10.4.7.101] |
|   | ok: [10.4.7.102] |
|   |   |
|   | TASK [test : Get IP Address] ******************************************************************************************************************** |
|   | changed: [10.4.7.102] |
|   | changed: [10.4.7.101] |
|   |   |
|   | PLAY RECAP ************************************************************************************************************************************** |
|   | 10.4.7.101         : ok=3  changed=1  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=3  changed=1  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.8 使用Facts獲取的信息

還有其它地方可以獲取變量, 這些變量是自動(dòng)發(fā)現(xiàn)的,而不是用戶自己設(shè)置的。Facts通過訪問遠(yuǎn)程系統(tǒng)獲取相應(yīng)的信息,一個(gè)很好的例子就是遠(yuǎn)程主機(jī)的IP地址或者操作系統(tǒng)是什么。

|   |   |
| --- | --- |
|   | $ ansible test -m setup |
|   | # 使用以下命令可以查看哪些信息是可用的(test是上面在/etc/ansible/hosts列表文件中配置的主機(jī)群組) |
|   |   |
|   | $ ansible test -m setup|grep "ansible_python_version" |
|   | "ansible_python_version": "2.7.5", |
|   | # 在playbook中這樣引用上面被控制主機(jī)的python版本: {{ ansible_python_version }} |
|   |   |
|   | $ ansible test -m setup|grep "ansible_nodename" |
|   | "ansible_nodename": "template", |
|   | # 可以在playbook中這樣引用上面被控制主機(jī)的主機(jī)名: {{ ansible_nodename }} |
|   |   |
|   | $ ansible test -m setup | grep "ansible_hostname" |
|   | "ansible_hostname": "template", |
|   | # 被控制主機(jī)的主機(jī)名變量還可以是: {{ ansible_hostname }} |

如果關(guān)閉Facts,可以大大提高ansible的執(zhí)行速度 ,關(guān)閉方法如下:

|   | $ cat anhui.yml |
|   | --- |
|   | - hosts: test |
|   | gather_facts: no |

2.9 register注冊(cè)變量

變量的另一個(gè)主要用途是在運(yùn)行命令時(shí),把命令結(jié)果存儲(chǔ)到一個(gè)變量中,不同模塊的執(zhí)行結(jié)果是不同的。運(yùn)行playbook時(shí)使用-v選項(xiàng)可以看到可能的結(jié)果值,ansible執(zhí)行任務(wù)的結(jié)果值可以保存在變量中,以便稍后使用它。register方式主要用于在task之間傳遞變量。

|   |   |
| --- | --- |
|   | $ cat /etc/ansible/hosts |
|   | [test] |
|   | 10.4.7.101 |
|   | 10.4.7.102 |
|   |   |
|   | $ cat register.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | tasks: |
|   | - name: register bo_test |
|   | shell: hostname -I |
|   | register: info |
|   | - name: display info |
|   | debug: msg="this host ip is {{ info['stdout'] }}" |
|   |   |
|   | $ ansible-playbook register.yml |
|   |   |
|   | PLAY [test] ************************************************************************************************************* |
|   |   |
|   | TASK [Gathering Facts] ************************************************************************************************** |
|   | ok: [10.4.7.102] |
|   | ok: [10.4.7.101] |
|   |   |
|   | TASK [register bo_test] ************************************************************************************************* |
|   | changed: [10.4.7.102] |
|   | changed: [10.4.7.101] |
|   |   |
|   | TASK [display info] ***************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "this host ip is 10.4.7.101 " |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": "this host ip is 10.4.7.102 " |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************** |
|   | 10.4.7.101         : ok=3  changed=1  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=3  changed=1  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.10 hostvars 變量

該變量用于引用其他主機(jī)上收集的facts中的數(shù)據(jù),或者引用其他主機(jī)的主機(jī)變量、主機(jī)組變量。即從一臺(tái)遠(yuǎn)程主機(jī)獲取另一臺(tái)遠(yuǎn)程主機(jī)的變量。

|   |   |
| --- | --- |
|   | $ cat /etc/ansible/hosts |
|   | [test] |
|   | 10.4.7.101 addr=beijing |
|   | 10.4.7.102 user=shibo age=39 |
|   |   |
|   | $ cat test.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | gather_facts: False |
|   | tasks: |
|   | - name: this is test1 |
|   | debug: msg="She is come from {{ hostvars['10.4.7.101']['addr'] }}" |
|   | - name: this is test2 |
|   | debug: msg="I am {{ hostvars['10.4.7.102']['user'] }}, and age is {{ hostvars['10.4.7.102']['age'] }}" |
|   |   |
|   | $ ansible-playbook test.yml |
|   |   |
|   | PLAY [test] ************************************************************************************************************* |
|   |   |
|   | TASK [this is test1] **************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "She is come from beijing" |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": "She is come from beijing" |
|   | }  |
|   |   |
|   | TASK [this is test2] **************************************************************************************************** |
|   | ok: [10.4.7.101] => { |
|   | "msg": "I am shibo, and age is 39" |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": "I am shibo, and age is 39" |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************** |
|   | 10.4.7.101         : ok=2  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=2  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

2.11 列表變量、循環(huán)變量、字典變量

1)ansible的變量不僅可以是單個(gè)的值,也可以為列表,即ansible傳列表作為變量

|   | $ cat test.yml |
|   | --- |
|   | - hosts: test |
|   | remote_user: root |
|   | gather_facts: False |
|   | vars: |
|   | - list: [1,2,3] |
|   | tasks: |
|   | - name: echo |
|   | debug: msg="{{ list }}" |
|   |   |
|   | $ ansible-playbook test.yml |
|   |   |
|   | PLAY [test] ************************************************************************************************************* |
|   |   |
|   | TASK [echo] ************************************************************************************************************* |
|   | ok: [10.4.7.101] => { |
|   | "msg": [ |
|   | 1, |
|   | 2, |
|   | 3  |
|   | ]  |
|   | }  |
|   | ok: [10.4.7.102] => { |
|   | "msg": [ |
|   | 1, |
|   | 2, |
|   | 3  |
|   | ]  |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************** |
|   | 10.4.7.101         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |
|   | 10.4.7.102         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored= |

2)循環(huán)列表

結(jié)合循環(huán),這個(gè)特性就變得很有用;以參數(shù)傳遞列表給playbook,不用在playbook中固定循環(huán)的次數(shù)與內(nèi)容。

|   | $ cat test.yml |
|   | --- |
|   | - hosts: 10.4.7.101 |
|   | remote_user: root |
|   | gather_facts: False |
|   | vars: |
|   | - list: [1,2,3] |
|   | tasks: |
|   | - name: this is loop |
|   | debug: msg="{{ item }}" |
|   | with_items: '{{list}}' |
|   |   |
|   | $ ansible-playbook test.yml |
|   |   |
|   | PLAY [10.4.7.101] ******************************************************************************************************* |
|   |   |
|   | TASK [this is loop] ***************************************************************************************************** |
|   | ok: [10.4.7.101] => (item=1) => { |
|   | "msg": 1 |
|   | }  |
|   | ok: [10.4.7.101] => (item=2) => { |
|   | "msg": 2 |
|   | }  |
|   | ok: [10.4.7.101] => (item=3) => { |
|   | "msg": 3 |
|   | }  |
|   |   |
|   | PLAY RECAP ************************************************************************************************************** |
|   | 10.4.7.101         : ok=1  changed=0  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0 |

****** 當(dāng)你發(fā)現(xiàn)自己的才華撐不起野心時(shí),就請(qǐng)安靜下來學(xué)習(xí)吧!******

鏈接:https://www.cnblogs.com/lvzhenjiang/p/14385777.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 主機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    1036

    瀏覽量

    35929
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28907
  • PlayBook
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    12036

原文標(biāo)題:Ansible Playbook中的變量使用技巧:提高自動(dòng)化效率的必備利器

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RIM本周二發(fā)布黑莓PlayBook OS 2.0 現(xiàn)提供更新下載

    RIM今日宣布,新的黑莓PlayBook OS 2.0將于今日提供下載。PlayBook OS 2.0將為用戶提供增強(qiáng)的平板電腦體驗(yàn),允許用戶在工作和娛樂以全新的方式使用PlayBook
    發(fā)表于 02-22 11:12 ?819次閱讀

    黑莓Playbook拆解全過程

    Playbook 是TechInsights所拆解的系統(tǒng),首次看到配備TI新型連結(jié)晶片的;該機(jī)構(gòu)分析師表示,RIM在第一款平板電腦中采用該新型元件,是一個(gè)“大膽的決定”。
    發(fā)表于 04-21 12:00 ?5989次閱讀
    黑莓<b class='flag-5'>Playbook</b>拆解全過程

    Ansible軟件平臺(tái)

    Ansible 是一個(gè)免費(fèi)的用于配置和管理計(jì)算機(jī)的的軟件平臺(tái)。它集成了軟件部署,ad hoc任務(wù)執(zhí)行,和管理配置的功能。它依賴Python2.4之后的版本和通過SSH或者PowerShell管理節(jié)點(diǎn)
    發(fā)表于 07-18 08:24

    遠(yuǎn)端機(jī)器的臨時(shí)執(zhí)行命令

    例行化的工作,像復(fù)雜的配置管理、機(jī)械化的環(huán)境部署,可以用Ansibleplaybook(劇本)功能。臨時(shí)需要在遠(yuǎn)端機(jī)器執(zhí)行命令時(shí),可以使用Ansible的ad-hoc command(臨時(shí)執(zhí)行命令
    發(fā)表于 07-19 06:42

    ansible核心程序批量部署

    ansible批量部署
    發(fā)表于 07-26 15:30

    ansible調(diào)用playbook遠(yuǎn)程mvn顯示找不到JAVA_HOME

    ansible 】關(guān)于ansible遠(yuǎn)程執(zhí)行的環(huán)境變量問題
    發(fā)表于 11-06 09:26

    ansible的工作原理和安裝

    ansible安裝(一)
    發(fā)表于 03-25 11:19

    ansible playbook+jenkins如何實(shí)現(xiàn)自動(dòng)新增域名

    ansible-playbook+jenkins實(shí)現(xiàn)自動(dòng)新增域名
    發(fā)表于 06-03 11:58

    RIM公司PlayBook平板電腦曝光

    RIM PlayBook平板電腦之前已經(jīng)有過介紹,在CES 2011展會(huì)上,RIM公司公布了支持4G技術(shù)的PlayBook平板。
    發(fā)表于 02-15 18:32 ?1019次閱讀

    使用用Ansible重復(fù)部署ELK STACK

    本文介紹如何使用Ansible 劇本在遠(yuǎn)程服務(wù)器上設(shè)置ELK(5.x版本)進(jìn)行開發(fā)。它將帶你完成安裝Ansible的步驟,連接到目標(biāo)服務(wù)器,執(zhí)行該劇本,并建立初始的日志流水線。 讓我們開始吧! 1.
    發(fā)表于 09-28 14:50 ?0次下載
    使用用<b class='flag-5'>Ansible</b>重復(fù)部署ELK STACK

    Ansible入門教程如何快速了解Ansible

    頂級(jí)大牛帶你20分鐘玩轉(zhuǎn)Ansible
    的頭像 發(fā)表于 05-12 11:49 ?5365次閱讀

    利用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化

    方法行之有效。 簡(jiǎn)介本文介紹為何Ansible Tower是使用playbook,在OpenStack創(chuàng)建、部署和配置虛擬機(jī)最簡(jiǎn)單的方法之一。系統(tǒng)性能、IT自動(dòng)化、復(fù)雜系統(tǒng)的部署和快速生產(chǎn)力
    的頭像 發(fā)表于 12-03 17:29 ?3194次閱讀
    利用<b class='flag-5'>Ansible</b>實(shí)現(xiàn)OpenStack自動(dòng)化

    利用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化

    本文介紹為何Ansible Tower是使用playbook,在OpenStack創(chuàng)建、部署和配置虛擬機(jī)最簡(jiǎn)單的方法之一。系統(tǒng)性能、IT自動(dòng)化、復(fù)雜系統(tǒng)的部署和快速生產(chǎn)力是軟件開發(fā)
    的頭像 發(fā)表于 12-02 19:02 ?3545次閱讀

    一文詳解Ansible的自動(dòng)化運(yùn)維

    CMDB:CMDB 存儲(chǔ)和管理者企業(yè)IT架構(gòu)的各項(xiàng)配置信息,是構(gòu)建 ITIL 項(xiàng)目的核心工具,運(yùn)維人員可以組合 CMDB 和 Ansible,通過 CMDB 直接下發(fā)指令調(diào)用Ansible 工具集完成操作者所希望達(dá)到的目標(biāo);
    的頭像 發(fā)表于 05-19 17:06 ?4740次閱讀
    一文詳解<b class='flag-5'>Ansible</b>的自動(dòng)化運(yùn)維

    什么是Ansible

    Ansible是一種運(yùn)維自動(dòng)化工具軟件,用來批量配置服務(wù)器或網(wǎng)絡(luò)設(shè)備(目標(biāo)主機(jī))。
    的頭像 發(fā)表于 02-15 14:06 ?1905次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品