ansible中的变量
目錄
一.變量
?二.變量使用和設定方式
劇本直接定義變量
?在文件中使用變量編輯user_list.yml
?清單中的變量
?注冊變量
?事實變量
?
gather_facts:yes/no?? 事實變量收集,默認打開
魔法變量內嵌變量
?三.JINJA2模板Jinja2
書寫規則
?1.for循環
?2.if判定
?四.ansible的加密控制
一.變量
只能包含數字 下劃線 字母,并以字母和下劃線開頭
全局變量:? 從命令行或配置文件中設定的
play:? 在Play和相關結構中設定的
主機變量: 由清單事實收集或注冊的業務
?二.變量使用和設定方式
劇本直接定義變量
- name:hosts: westosvars:USER: linuxtasks:- name: debugdebug:msg: "{{USER}}"?在文件中使用變量編輯user_list.yml
?編輯yml
?
?清單中的變量
?
?注冊變量
將結果注入out中 在將outd的rc輸出,就知道文件是否存在
?事實變量
ansible westos -m setup | less?
gather_facts:yes/no?? 事實變量收集,默認打開
魔法變量內嵌變量
?
| hostvars | ansible軟件的內部信息 |
| group_names | 當前授管主機所在組 |
| groups | 列出清單中所有組和主機 |
| inventory_hostname | 包含清單中配置的當前授官主機的名稱 |
?三.JINJA2模板Jinja2
??????? 是Python下一個被廣泛應用的模版引擎,設計思想來源于Django的模板引擎,并擴展了其語法和一系列強大的功能。其中最顯著的一個是增加了沙箱執行功能和可選的自動轉義功能 。
??????? Sandboxie(又叫沙箱、沙盤)即是一個虛擬系統程序,允許你在沙盤環境中運行瀏覽器或其他程序,因此運行所產生的變化可以隨后刪除。它創造了一個類似沙盒的獨立作業環境,在其內部運行的程序并不能對硬盤產生永久性的影響。 在網絡安全中,沙箱指在隔離環境中,用以測試不受信任的文件或應用程序等行為的工具
? ? ?? 可以 啟用?自動轉義擴展?并為自動轉義配置一個合適的默認值。
書寫規則
vim westos.j2
編輯yml
?
?1.for循環
編輯文件數組變量,在編輯j2循環文件,最后編輯yml文件
運行檢測
?2.if判定
編輯j2文件和數組變量文件
運行檢測?
?四.ansible的加密控制
加密并且生成文件
ansible-vault create westos?已有文件加密
ansible-vault encrypt user.yml密碼指定進文件
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?
劇本加密后運行
ansible-vault encrypt test.yml ansible-playbook test.yml --ask-vault-pass?練習
利用J2模板還有loop循環
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
先寫文件數組變量
?在寫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運行劇本
?
?最后測試,有瀏覽器主機寫本地解析
vim /etc/hosts
172.25.254.200 www.westos.com linux.westos.com new.westos.com?
?
?
?
總結
以上是生活随笔為你收集整理的ansible中的变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RouterOS v7 策略路由配置实例
- 下一篇: unity 字体width_unity制