ansible中的变量
目錄
一.變量
?二.變量使用和設(shè)定方式
劇本直接定義變量
?在文件中使用變量編輯user_list.yml
?清單中的變量
?注冊(cè)變量
?事實(shí)變量
?
gather_facts:yes/no?? 事實(shí)變量收集,默認(rèn)打開
魔法變量?jī)?nèi)嵌變量
?三.JINJA2模板Jinja2
書寫規(guī)則
?1.for循環(huán)
?2.if判定
?四.ansible的加密控制
一.變量
只能包含數(shù)字 下劃線 字母,并以字母和下劃線開頭
全局變量:? 從命令行或配置文件中設(shè)定的
play:? 在Play和相關(guān)結(jié)構(gòu)中設(shè)定的
主機(jī)變量: 由清單事實(shí)收集或注冊(cè)的業(yè)務(wù)
?二.變量使用和設(shè)定方式
劇本直接定義變量
- name:hosts: westosvars:USER: linuxtasks:- name: debugdebug:msg: "{{USER}}"?在文件中使用變量編輯user_list.yml
?編輯yml
?
?清單中的變量
?
?注冊(cè)變量
將結(jié)果注入out中 在將outd的rc輸出,就知道文件是否存在
?事實(shí)變量
ansible westos -m setup | less?
gather_facts:yes/no?? 事實(shí)變量收集,默認(rèn)打開
魔法變量?jī)?nèi)嵌變量
?
| hostvars | ansible軟件的內(nèi)部信息 |
| group_names | 當(dāng)前授管主機(jī)所在組 |
| groups | 列出清單中所有組和主機(jī) |
| inventory_hostname | 包含清單中配置的當(dāng)前授官主機(jī)的名稱 |
?三.JINJA2模板Jinja2
??????? 是Python下一個(gè)被廣泛應(yīng)用的模版引擎,設(shè)計(jì)思想來(lái)源于Django的模板引擎,并擴(kuò)展了其語(yǔ)法和一系列強(qiáng)大的功能。其中最顯著的一個(gè)是增加了沙箱執(zhí)行功能和可選的自動(dòng)轉(zhuǎn)義功能 。
??????? Sandboxie(又叫沙箱、沙盤)即是一個(gè)虛擬系統(tǒng)程序,允許你在沙盤環(huán)境中運(yùn)行瀏覽器或其他程序,因此運(yùn)行所產(chǎn)生的變化可以隨后刪除。它創(chuàng)造了一個(gè)類似沙盒的獨(dú)立作業(yè)環(huán)境,在其內(nèi)部運(yùn)行的程序并不能對(duì)硬盤產(chǎn)生永久性的影響。 在網(wǎng)絡(luò)安全中,沙箱指在隔離環(huán)境中,用以測(cè)試不受信任的文件或應(yīng)用程序等行為的工具
? ? ?? 可以 啟用?自動(dòng)轉(zhuǎn)義擴(kuò)展?并為自動(dòng)轉(zhuǎn)義配置一個(gè)合適的默認(rèn)值。
書寫規(guī)則
vim westos.j2
編輯yml
?
?1.for循環(huán)
編輯文件數(shù)組變量,在編輯j2循環(huán)文件,最后編輯yml文件
運(yùn)行檢測(cè)
?2.if判定
編輯j2文件和數(shù)組變量文件
運(yùn)行檢測(cè)?
?四.ansible的加密控制
加密并且生成文件
ansible-vault create westos?已有文件加密
ansible-vault encrypt user.yml密碼指定進(jìn)文件
vim pass??
ansible-vault view westos ansible-vault view --vault-password-file=pass westos 非交互式查看加密文件 編輯
ansible-vault edit --vault-password-file=pass westos ansible-vault edit westos文件解密
ansible-vault decrypt westos ansible-vault decrypt westos --output=westos1 解密到目的文件,源文件依舊加密修改密碼
ansible-vault rekey westos?
劇本加密后運(yùn)行
ansible-vault encrypt test.yml ansible-playbook test.yml --ask-vault-pass?練習(xí)
利用J2模板還有l(wèi)oop循環(huán)
creat web vhost
www.westos.com 80?? --------> /var/www/html ------> www.westos.com
linux.westos.com 80 ---------> /var/www/virtual/westos.com/linux?? ------->? linux.westos.com
new.westos.com 80 ---------> /var/www/virtual/westos.com/new ? ------->? new.westos.com
先寫文件數(shù)組變量
?在寫j2文件
{% for vhost in webs %} {% if vhost.name is not defined %} <VirtualHost _default_:80> {%endif%} {% if vhost.name is defined %} <VirtualHost *:80> {%endif%} {% if vhost.name is defined %}ServerName {{vhost.name}} {%endif%} DocumentRoot {{vhost.doc}} </VirtualHost>{%endfor%}最后寫yml運(yùn)行劇本
?
?最后測(cè)試,有瀏覽器主機(jī)寫本地解析
vim /etc/hosts
172.25.254.200 www.westos.com linux.westos.com new.westos.com?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的ansible中的变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RouterOS v7 策略路由配置实例
- 下一篇: unity 字体width_unity制