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
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模块
部署小游戏