栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Ansible中的文件加密以及for语句和if语句的写法

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ansible中的文件加密以及for语句和if语句的写法

文章目录
  • 一、JINJA2模板介绍
  • 二、书写规则
    • 1.示例
    • 2.for循环的写法
    • 三、if语句的基本使用
    • 4.文件加密控制
  • 总结


一、JINJA2模板介绍

Jinja2是Python下一个被广泛应用的模版引擎
他的设计思想来源于Django的模板引擎,
并扩展了其语法和一系列强大的功能。
其中最显著的一个是增加了沙箱执行功能和可选的自动转义功能

二、书写规则 1.示例
vim 3.yml
  1 ---
  2 - name: demo
  3   hosts: server
  4   tasks:
  5     - template:							#即模板的应用
  6         src: ./1.j2
  7         dest: /mnt/westos
vim 1.j2
  1 {# /mnt/westos #}						#表示注释写法
  2 hello word								#字符串内容会自动添加到文件中
  3 {{ ansible_facts['all_ipv4_addresses'] }} {{ ansible_facts['lvm']['lvs']}}	#事实变量将采集被控主机的事实变量

2.for循环的写法
vim demo.j2
  1 {% for westos in name %}			#name为playbook中的变量名称
  2 {{loop.index0}}-{{westos}}			#loop.index0表示从0开始进行计数迭代
  3 {% endfor %}
vim name.yml
  1 ---
  2 - name: demo
  3   hosts: server
  4   gather_facts: no
  5   vars_files:
  6     ./bianliang.yml
  7   tasks:
  8     - template:
  9         src: ./demo.j2
 10         dest: /mnt/westos

三、if语句的基本使用
vim demo.j2
  1 {% for westos in name if not name == "linux" %}
  2 {{loop.index0}} - {{westos}} {{ansible_facts['fqdn']}}
  3 {% endfor %}
vim name.yml
  1 ---
  2 - name: demo
  3   hosts: server
  4   vars:
  5     - name:
  6         - linux:
  7         - westos:
  8         - ansible:
  9   tasks:
 10     - template:
 11         src: ./demo.j2
 12         dest: /mnt/westos
vim demo.j2
  1 {% for westos in name %}
  2 {% if westos['group'] is defined %}			#is defined表示存在内容条件
  3 {{westos}}group:{{westos['group']}}
  4 {% endif %}
  5 {% if westos['password'] is defined %}
  6 {{westos}}password:{{westos['password']}}
  7 {% endif %}
  8 {% if westos['uid'] is defined %}
  9 {{wesos}}uid:{{westos['uid']}}
 10 {% endif %}
 11 {% if westos['group'] is not defined %}		#is not defined表示不存在内容
 12 {{loop.index}}-{{westos}}
 13 {% endif %}
 14 {% endfor %}
vim name.yml
  1 ---
  2 - name: demo
  3   hosts: server
  4   vars:
  5     - name:
  6         - linux:
  7             uid: 0
  8             group: westos
  9             password: linux
 10         - westos:
 11             udi: 1000
 12             group: linux
 13             password: 1000
 14         - ansible:
 15         - age:
 16         - password:
 17         - apache:
 18             uid: 20
 19             group: http
 20             password:
 21   tasks:
 22     - template:
 23         src: ./demo.j2
 24         dest: /mnt/westos

4.文件加密控制
ansible-vault view westos.yml									#查看加密文件
ansible-vault create westos.yml									#建立加密文件
ansible-vault create --vault-password-file=password westos		#指定文件的内容为密码
ansible-vault decrypt westos.yml								#进行文件的解密
ansible-vault encrypt westos.yml								#对已经存在的文件进行加密
ansible-playbook name.yml --ask-vault-pass						#将已经加密的playbook首先解密后在运行
ansible-vualt encrypt_string 'name' --name 'westos'				#将变量进行加密
ansible-vault rekey westos.yml									#重新设定密码

上面的输出表明密码已使用AES 256加密进行了加密。之后,从!vault |拷贝整个加密的代码。前往剧本文件,删除明文密码值,然后粘贴加密后的值,如下所示。



总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830627.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号