最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
template如何实现灵活配置
linuxe发表于 2020-10-15 15:31 次浏览
这篇文章主要介绍了使用template实现灵活配置的相关资料,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

一、Ansible template作用

在实际的工作中由于每台服务器的环境配置都可能不同,但是往往很多服务的配置文件都需要根据服务器环境进行不同的配置,比如Nginx最大进程数、Redis最大内存等。为了解决这个问题可以使用Ansible的template模块,该模块和copy模块作用基本一样,都是把管理端的文件复制到客户端主机上,但是区别在于template模块可以通过变量来获取配置值,支持多种判断、循环、逻辑运算等,而copy只能原封不动的把文件内容复制过去。需要注意的是template只能在playbook中运行,不能使用命令行方式。

 

二、Ansible template使用方法

1、多数情况下都会建立一个templates目录并和playbook同级,这样playbook可以直接引用和寻找这个模板文件,如果在别的路径需要单独指定。模板文件后缀名为.j2

1 mkdir templates
2 cp /etc/conf/httpd.conf templates/httpd.conf.jinja2  #复制一个原始配置文件进行修改

 

 

2、创建playbook并使用template模板

01 cat test.yml
02 ---
03 - hosts: all
04   remote_user: root
05   vars:
06     - listen_port: 88    #定义变量
07  
08   tasks:
09     - name: Install Httpd
10       yum: name=httpd state=installed
11     - name: Config Httpd
12       template: src=httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf    #使用模板
13       notify: Restart Httpd
14     - name: Start Httpd
15       service: name=httpd state=started
16       
17   handlers:
18     - name: Restart Httpd
19       service: name=httpd state=restarted

 

3、修改模板文件,配置文件中需要针对端口做不同设置,找到Listen一项做以下修改

1 vi templates/httpd.conf.jinja2
2 Listen {{ listen_port }}  #这里的端口用变量替代

 

4、由于调用了listen_port这个变量,所以需要在主机列表文件中给每个主机定义这样一个变量(也可以将变量写在playbook中):

1 vi /etc/ansible/hosts
2 192.168.100.110 listen_port=80
3 192.168.100.120 listen_port=8080
4 192.168.100.130 listen_port=808
5 192.168.100.140 listen_port=8000

 

5、运行ansible-playbook test.yml即可

标签:template模板
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐