ansible05

jinjia2模板语法

jinja2是Python的全功能模板引擎。

1、变量的使用

{{ 变量名 }}

{{ 变量名 计算公式 }}

2、判断语句的使用

{% if 1 == 1 %}

{% elif 条件 %}

{% else %}

{% endif %}

3、循环语句的使用
{% for i in EXPR %}
{% endfor %}

jinjia2模板使用 --- 将test.j2里面的内容写入到web01 /root/1.txt中

[root@m01 ansible]# cat test.j2 
{% if ansible_distribution == "CentOS" %}
Welcome to {{ ansible_distribution }} - {{ ansible_distribution_major_version }}
{% else %}
Welcome to China
{% endif %}

{% for i in ansible_eth1 %}
{{ i }}
{% endfor %}

[root@m01 ansible]# cat j2.yml 
---
- name: j2测试
  hosts: web01
  tasks: 
    - name: 使用j2魔板里面的内容
      template: 
        src: /ansible/test.j2
        dest: /root/2.txt

ansible05
ansible05
ansible05

Ansible Roles

解决了剧本的问题?
	1、解决了剧本的耦合性
	2、还可以利用剧本的便利性

创建Roles

[root@localhost ansible]# ansible-galaxy init nginx  --- 初始化角色
- Role nginx was created successfully

[root@localhost ansible]# tree nginx/
nginx/
├── defaults			# 变量(优先级低)
│   └── main.yml
├── files				# 存放文件
├── handlers			# 存放handlers
│   └── main.yml
├── meta				# 存放依赖roles
│   └── main.yml
├── README.md
├── tasks				# 存放具体任务的目录
│   └── main.yml
├── templates			# 存放jinjia2模板的
├── tests				# 存放测试文件
│   ├── inventory
│   └── test.yml
└── vars				# 存放变量
    └── main.yml

8 directories, 8 files

调用Roles

1、创建一个yaml文件
2、使用roles模块

部署小游戏


上一篇:linux su: Authentication failure


下一篇:kubeadm修改证书时间为99年