文章目录
一、Templates模板 模块
1.1 简介
Jinja是基于Python的模板引擎。template类是Jinja的另一个重要组件,可以看作一个编译过的模块文件,用来生产目标文本,传递Python的变量给模板去替换模板中的标记。
1.2 用法示例
通过模板配置节点设备设置
在node1,2上查看
[root@node1 ~]# rpm -q httpd
httpd-2.4.6-67.el7.centos.x86_64
[root@node1 ~]# vi /etc/httpd/conf/httpd.conf
修改添加:
Listen 80 主机变量
ServerName www.example.com:80 域名
MaxClients 300 最大连接数
在master上
1.拷贝文件到管理端当前目录下
[root@master ~]# scp root@192.168.40.12:/etc/httpd/conf/httpd.conf ./
[root@master ~]# mkdir demo #创建目录,方便管理
[root@master ~]# mv httpd.conf demo/ #移动
[root@master ~]# cd demo/
[root@master demo]# vim httpd.conf #编辑配置文件
修改添加变量
Listen {
{http_port}} 监听端口,ip
ServerName {
{server_name}} 域名
MaxClients {
{access_num}} 最大连接数
[root@master demo]# mv httpd.conf httpd.conf.j2 将文件转变为模板
jinja2 是基于python的模板引擎,功能比较类似于PHP的smarty,J2ee的Freemark和velocity。它能完全支持unicode,并具有集成的沙盒执行环境,应用广泛。jinja2使用BSD授权
2.编辑配置文件
[root@master ~]# vim /etc/ansible/hosts
添加修改变量
[mysql]
192.168.40.13 http_port=192.168.40.13:80 server_name=www.apples.com:80 access_num=500
3.设置脚本
[root@master demo]# pwd
/root/demo
[root@master demo]# cd
[root@master ~]# vim apavhe.yaml
设置添加
- hosts: webserver node1
remote_user: root
vars: 定义变量
- server: httpd
tasks: 执行的任务
- name: install new apache 标题 安装最新版本
yum: name={
{server}} state=latest 操作 最新
- name: config file 配置文件
template: src=/root/demo/httpd.conf.j2 原文件本地 dest=/etc/httpd/conf/httpd.conf 目标地址
notify: 调用,调取(关联handlers模块)
- restart httpd
- name: start httpd
service: name={
{server}} state=started
handlers:
- name: restart httpd
service: name={
{server}} state=restarted enabled=true
[root@master ~]# ansible-playbook apavhe.yaml --syntax-check 语法检查
[root@master ~]# ansible-playbook apache.yaml 执行脚本