首页 > 其他分享 >4、Ansible模板--用于根据每个主机的不同环境而为生成不同的文件

4、Ansible模板--用于根据每个主机的不同环境而为生成不同的文件

时间:2023-06-02 23:02:55浏览次数:42  
标签:name -- ansible server nginx Ansible conf root 模板

ansible模板
模板是一个文本文件,可以用于根据每个主机的不同环境而为生成不同的文件 
模板文件中支持嵌套jinja2语言的指令,来实现变量,条件判断,循环等功能 
需要使用template模块实现文件的复制到远程主机,但和copy模块不同,复制过去的文件每个主机可以会有所不同
jinja2语言
http://jinja.pocoo.org/

范例:根据主机内核的不同设置nginx配置文件工作进程的数量

1、创建模板文件夹,并把模板文件拷贝到此文件夹下
[root@ubuntu2004 ansible]#mkdir templates
[root@ubuntu2004 ansible]#cp files/nginx.conf templates/nginx.conf.j2
[root@ubuntu2004 ansible]#vim templates/nginx.conf.j2
...... 
worker_processes {{ ansible_processor_vcpus }}; 
......
2、更改playbook文件
[root@ubuntu2004 ansible]#vim install_nginx_handlers_notify_tags_templates.yaml
- hosts: 10.0.0.18
  remote_user: root
 
  tasks:
    - name: 安装包
      yum:
        name: nginx
        state: present
- name: 配置文件                      #不再使用copy模块,使用template模块
      template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf 
      notify: restart nginx   
    - name: 数据文件
      copy:
        src: index.html
        dest: /usr/share/nginx/html/index.html
    - name: 启动服务
      service:
        name: nginx
        state: started
        enabled: yes

  handlers:
    - name: restart nginx
      service: name=nginx state=restarted
      满足配置文件变动时执行handlers,重启nginx
template中使用流程控制for和if

范例:for循环

[root@ubuntu2004 ansible]#vim for.yaml
- hosts: webservers
  tasks:
    - name: config file
      template:
        src: test.conf.j2
        dest: /tem/test.conf
        
[root@ubuntu2004 ansible]#vim templates/test.conf.j2 
{% for i in range(1,10) %} 
 server_name web{{i}}; 
{% endfor %}

[root@ubuntu2004 ansible]#ansible-playbook for.yaml

生成结果:
 server_name web1;
 server_name web2;
 server_name web3;
 server_name web4;
 server_name web5;
 server_name web6;
 server_name web7;
 server_name web8;
 server_name web9;

范例:if条件判断

#playbook
templnginx6.yml 
- hosts: webservers 
  remote_user: root 
  vars:   
    nginx_vhosts:
      - web1:
        listen: 8080
        root: "/var/www/nginx/web1/"
      - web2:
        listen: 8080
        server_name: "web2.wang.org" 
        root: "/var/www/nginx/web2/"
      - web3:       listen: 8080
        server_name: "web3.wang.org"
        root: "/var/www/nginx/web3/" 
  tasks:
    - name: template config to
      template: src=nginx.conf5.j2 dest=/data/nginx5.conf
#模板      
templates/nginx.conf6.j2 
{% for vhost in nginx_vhosts %} 
server {
  listen {{ vhost.listen }} 
  {% if vhost.server_name is defined % }
server_name {{ vhost.server_name }}  
  {% endif %} 
root {{ vhost. Root }} 
}
{% endfor %}   

#生成的结果
server {
   listen 8080
   root /var/www/nginx/web1/ 
} 
server {
   listen 8080
   server_name web2.wang.org
   root /var/www/nginx/web2/
} server {
   listen 8080
   server_name web3.wang.org
   root /var/www/nginx/web3/
}

标签:name,--,ansible,server,nginx,Ansible,conf,root,模板
From: https://blog.51cto.com/mfc001/6405639

相关文章

  • 众惠生活:让生活更加便利和舒适
    近年来,随着社会经济的不断发展,人们对于生活品质的要求也越来越高。为了满足大众的需求,众惠生活应运而生。众惠生活是一家致力于提供便利、舒适生活的企业,通过打造一个多元化的服务平台,为用户提供全方位的生活服务。众惠生活的服务范围非常广泛,包括外卖配送、家政服务、快递代收、洗......
  • 众惠生活:致力于为用户提供便利、优质的生活服务
    随着社会不断发展,人们对于生活品质的要求也越来越高。为了满足大众的需求,众惠生活应运而生。众惠生活是一家专注于提供便利、优质生活服务的企业,通过多元化的服务平台,为用户提供全方位的生活服务。众惠生活的服务范围非常广泛,包括外卖配送、家政服务、快递代收、洗衣服务、保洁清洗......
  • m基于高斯滤波和八方向sobel边缘提取的道路检测和提取算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要点和线是做图像分析时两个最重要的特征,而线条往往反映了物体的轮廓,对图像中边缘线的检测是图像分割与特征提取的基础。边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明......
  • 浪潮信息发布G7系列SAP HANA一体机,挑战内存计算极限性能
    2023年5月30日,浪潮信息“智算开新局·创新机”全国巡展济南站正式启航。会上,浪潮信息重磅发布基于G7算力平台的新一代SAPHANA一体机,为企业提供高性能、高可靠、高稳定性和绿色节能的数据平台。该方案针对 SAPHANA应用进行了深入优化,在SAP最新发布的IntelSapphireRapids双路计......
  • 众惠生活:为用户提供优质的生活服务
    近年来,随着社会经济的不断发展,人们对于生活品质的要求也越来越高。为了满足大众的需求,众惠生活应运而生。众惠生活是一家致力于提供便利、舒适生活的企业,通过打造一个多元化的服务平台,为用户提供全方位的生活服务。众惠生活的服务范围非常广泛,包括外卖配送、家政服务、快递代收、洗......
  • 浪潮信息发布两项服务器创新技术,为用户提供超强算力
    近日,浪潮信息正式发布两项服务器新技术,为其全新上市的G7算力平台提供更优的性能、可靠性和易维护性支撑。服务器NVH(Noise噪声、Viberation振动、Harshness声振粗糙度)技术让服务器计算满负载时的磁盘读写性能翻倍,并且防止数据中心各类高频噪音对磁盘产生不可逆的损失;智能听音诊断技......
  • 众惠生活——让生活更美好!
    随着中国社会的不断发展,人们对于生活质量的要求也越来越高。现代化的城市生活节奏快,起居饮食日益单一,造成了很多健康问题和精神压力,降低了日常生活品质和幸福感。为解决这一问题,众惠生活应运而生。众惠生活是一家集休闲、娱乐、购物、健康、美容、教育等多种服务于一身的综合性生活......
  • 本地化语音转文字模型
    开源大模型,实现本地化语音转文字下载GUI  whisperdesktopWhisperDesktop下载WhisperDesktop(电脑音频转文字软件)V1.8汉化免费版下载-脚本之家(jb51.net)下载模型ggml-medium.bin·ggerganov/whisper.cppatmain(huggingface.co)......
  • Muesli: Combining Improvements in Policy Optimization
    发表时间:2021(ICML2021)文章要点:这篇文章提出一个更新policy的方式,结合regularizedpolicyoptimization以及modellearningasanauxiliaryloss。最后直接用policynet输出动作,不做搜索,就能有很好的效果。具体的,作者提出了clippedMPO(CMPO)regularizer的更新方式。Regula......
  • 5.21 面向对象案例分析三
    狗的一个类,包括名字,颜色,年龄;典型的java类的一段代码classDog{privateStringname;privateStringcolor;privateintage;publicDog(){}publicDog(Stringname,Stringcolor,intage){this.name=name;this.color=color;......