当前位置: 首页 > news >正文

西宁市城东区住房和建设局网站南城仿做网站

西宁市城东区住房和建设局网站,南城仿做网站,网站右下角悬浮窗口js代码 兼容各浏览器,如何进入网页编辑目录 一、变量的设定 二、变量的使用方式 1、在playbook中直接定义变量 2、在文件中定义变量 3、设定主机变量和清单变量 4、目录设定变量 5、用命令覆盖变量 6、使用数组设定变量 7、注册变量 8、事实变量 9、魔法变量 三、JINJA2模板 四、加密控制 1、创建加…

目录

一、变量的设定

二、变量的使用方式

1、在playbook中直接定义变量

2、在文件中定义变量 

3、设定主机变量和清单变量

4、目录设定变量

5、用命令覆盖变量

6、使用数组设定变量

7、注册变量

 8、事实变量

9、魔法变量 

三、JINJA2模板 

四、加密控制

1、创建加密文件

2、查看加密文件 

3、编辑加密文件 

4、加密现有文件 

5、更改加密文件密码

6、解密文件

7、执行加密文件


一、变量的设定

1、变量的命名规则:
(1)只能包含数字,下划线,字母;
(2)只能用下划线或字母开头;
(3)ansible内置的关键字不能作为变量名。
2、变量的级别:

3、变量优先级:
全局 > play > 主机

全局从命令行或配置文件中设定的
playplay和相关结构中设定
主机由清单,事实收集或注册的任务

二、变量的使用方式

  • 这里使用循环定义的方式,使用loopitem实现循环执行

1、在playbook中直接定义变量

vim test.yml- name: test varhosts: allvars:TEST: hello aletasks:- name: filedebug:msg: "{{ TEST }}"ansible-playbook test.yml

2、在文件中定义变量 

vim file.ymlTEST: hello alevim test.yml- name: test varhosts: allvars_files:- ./file.ymltasks:- name: filedebug:msg: "{{ TEST }}"

3、设定主机变量和清单变量

[test1]
192.168.67.112[test2]
192.168.67.113[test1:vars]
TEST=hello yyl[test2:vars]
TEST=hello alevim test.yml- name: test varhosts: allvars:tasks:- name: filedebug:msg: "{{ TEST }}"

4、目录设定变量

group_vars清单变量,目录中的文件名称与主机清单名称一致
host_vars主机变量,目录中的文件名称与主机名称一致

 group_vars和host_vars之前注释inventory   内定义的

mkdir group_vars
cd group_vars/vim test1
TEST: hello yyl
vim test2
TEST: hello alevim test.yml- name: test varhosts: allvars:tasks:- name: filedebug:msg: "{{ TEST }}"

 host_vars:

mkdir host_vars
cd host_vars/vim 192.168.67.112
TEST: hello yyl
vim 192.168.67.113
TEST: hello ale- name: test varhosts: allvars:tasks:- name: filedebug:msg: "{{ TEST }}"

5、用命令覆盖变量

ansible-playbook test.yml -e "TEST=hahahaha"

6、使用数组设定变量

vim user_var.yml- name: test varhosts: allvars:USER1:name: user1id: 123USER2:name: user2id: 456tasks:- name:user:name: "{{USER1.name}}"uid: "{{USER1.id}}"state: present- name:user:name: "{{USER2.name}}"uid: "{{USER2.id}}"state: present

7、注册变量

register:把模块输出注册到指定字符串中    要输出单独参数时,指定输出变量

vim reg.yml- name: test registerhosts: alltasks:- name: hostname commandshell:hostnameregister: info- name: show messagesshell:echo "{{info['stdout']}}"

 

 8、事实变量

事实变量是ansible在受控主机中自动检测出的变量,事实变量中还有与主机相关的信息;
当需要使用主机相关信息时不需要采集赋值,直接调用即可;
因为变量信息为系统信息所以不能随意设定仅为采集信息,故被成为事实变量。 

vim 1.yml- name: test registerhosts: alltasks:- name: show messagesdebug:msg: "{{ansible_facts['architecture']}}"

gather_facts: no ##在playbook中关闭事实变量收集

9、魔法变量 

和事实变量类似,都是真实存在的变量,和ansible有关;直接执行以下变量即可。

 ##ansible软件的内部信息

ansible localhost -m debug -a "var=hostvars"

 

##当前受管主机所在组

ansible all -m debug -a "var=group_names" 

##列出清单中所有的组和主机

ansible localhost -m debug -a "var=groups"

##包含清单中配置的当前授管主机的名称

ansible localhost -m debug -a "var=inventory_hostname"

三、JINJA2模板 

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

j2模板书写规则

{# /etc/hosts line #}  ##注释说明文件用途
127.0.0.1 localhost  ##文件内容
{{ ansible_facts['all_ipv4_addresses'] }} {{ansible_facts['fqdn']}}  ##使用事实变量

j2模板的实现:

vim jinja.yml---
- name: testjinjahosts: server2tasks:- name: create filetemplate:src: ./test.j2  ##j2模板来源dest: /mnt/test  ##远程主机执行文件地址

for循环和 if 的用法:

for循环:

设定j2模板,变量要用{{ }}括起来

{% for NAME in users %}  ##for循环设定变量NAME,变量来源于变量文件
{{ loop.index }} {{ NAME  }}  ##变量用 {{ }} 括起来
{% endfor %}  ##for循环结束

if判断:

{% for NAME in users %}
{% if NAME in "linux"%}  ##in表示等于时
{{ loop.index0 }}  ##等于时只记数
{% endif %}
{% if NAME not in "linux"%}  ##not in表示不等于时
{{ loop.index0 }} {{ NAME }}  ##不等于时记数加变量
{% endif %}
{% endfor %}

练习:

使用j2模板 写hosts解析文件

vim hosts.yml- name: create hostshosts: alltasks:- name: create hosts filetemplate:src: ./hosts.j2dest: /mnt/hostsvim hosts.j2{% for HOST in groups['all'] %}
{{hostvars[HOST]['ansible_facts']['ens33']['ipv4']['address'] }} {{hostvars[HOST]['ansible_facts']['hostname']}}
{% endfor %}

四、加密控制

1、创建加密文件

ansible-vault create yyl
cat yyl

2、查看加密文件 

vim authyyl  123
ansible-vault view yyl
ansible-vault view --vault-password-file=authyyl  yyl

3、编辑加密文件 

ansible-vault edit --vault-password-file=authyyl yyl
ansible-vault view --vault-password-file=authyyl  yyl

4、加密现有文件 

ansible-vault encrypt yyl.yml

 5、更改加密文件密码

ansible-vault rekey yyl文件更改密码
vim authyyl  123456
ansible-vault rekey yyl --new-vault-password-file=authyyl
ansible-vault view yyl

 

6、解密文件

ansible-vault decrypt yyl
ansible-vault decrypt test.yml

7、执行加密文件

ansible-playbook test.yml --ask-vault-pass

http://www.yayakq.cn/news/977092/

相关文章:

  • php网站模板源码下载微信商城首页
  • 天津哪家公司做公司网站网站建设公司 佛山
  • 网站开发意见书内蒙古呼和浩特网站建设
  • 太原网站制作网页陕西省二级建造师官网
  • 做购物网站能否生存软件外包公司哪个好
  • 烟台h5网站制作公司西安是哪个省属于哪个市
  • 用网站做淘客怎么做郑州app制作一个需要多少钱
  • 部门网站建设整改今天招工招聘信息
  • 重庆模板做网站网站缓存优化怎么做
  • 做企业免费网站wordpress 整站语言
  • 青海军区战备建设局网站wordpress手动获取相关文章
  • 深圳龙华观澜网站建设公司广州开发网站哪家专业
  • 搜狗网站提交互联网公司薪酬体系
  • 只做健康产品的网站陵水网站建设
  • 天津企业模板建站做网站广告经营者
  • 做服装外贸网站数据中心托管
  • 网站建设的整体流程有哪些?网站必须做可信认证
  • 都匀经济开发区建设局网站如何创建自己的网站链接
  • 怎么把网站上的通栏如何网站防止采集
  • 重庆自助建站软件wordpress 花园
  • 红花岗区住房和城乡建设局网站小兽 wordpress
  • 咨询聊城做网站文件网站建设
  • 深圳网站建设相关推荐ui界面设计案例
  • 珠海网站推广谷歌关键词热度查询
  • 定制东莞网站制作公司建设银行北京招聘网站
  • 网站速成h5模板免费下载
  • dw网站根目录怎么做win7环境wordpress
  • 番禺网站制作 优帮云购物网站后台流程图
  • 男生可以做网站编辑工作吗网站建设服务费合同模板
  • 网站ie8兼容性wordpress公司