本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Ansible
  • 自动化运维工具Ansible入门教程(八)使用template模块实现可变配置

自动化运维工具Ansible入门教程(八)使用template模块实现可变配置

发布:TangLu2017-11-14 15:33分类: Ansible 标签: 自动化运维 ansible jinja2

由于每台服务器的配置可能不相同,统一使用同样的设置可能会不太妥善。比如想根据每台服务器自身cpu的数量来对Nginx配置文件中最大进程做不同设置。这个时候就需要用到Ansible的template模块。该模块和copy模块作用基本一样,都是把某个文件复制到远端主机上,但是区别在于template模块可以获取变量的值,而copy则是原封不动的把文件内容复制过去

Ansible template模块使用方法:

1、首先创建一个存放模板文件的目录,并建立模板文件

mkdir templates && cp /etc/conf/httpd.conf templates/httpd.conf.jinja2


2、修改配置文件,这里针对端口做不同设置,所以只需要找到Listen一项,做以下修改

# Listen 80  #注释掉默认的内容
Listen {{ http_port }}  #这里的端口用变量给替代了


3、上一步调用了http_port这个变量,所以我们需要在主机列表文件中给每个主机定义这样一个变量(也可以将变量写在playbook中):

vi /etc/ansible/hosts
192.168.100.110 http_port=80
192.168.100.120 http_port=8080
192.168.100.130 http_port=808
192.168.100.140 http_port=8000

 

4、把服务端的配置源文件做以下设置,注意这里用template取代了copy

vi httpd.yml
- host: webservers
  remote_user: root
  vars:
  - package: httpd
  tasks:
  - name: install httpd
    yum: name {{ package }} state=latest
  - name: install configure file
    #copy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
    template: src=/templates/httpd.conf.jinja2 dest=/etc/httpd/conf/httpd.conf
    notify:
      restart httpd
    name: start httpd service
    service: enabled=true name=httpd  state=started
  handlers:
  - name: restart httpd
    service: name=httpf state=restarted

 

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

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《自动化运维工具Ansible入门教程(八)使用template模块实现可变配置
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-280.html  [生成短网址]

已有 0/4511 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~