返回顶部
首页 > 资讯 > 数据库 >SaltStack实战之配置管理-Jinja2模板
  • 896
分享到

SaltStack实战之配置管理-Jinja2模板

2024-04-02 19:04:59 896人浏览 八月长安
摘要

SaltStack实战之配置管理-Jinja2模板学习 SaltStackSaltStack实战之配置管理-Jinja2模板1. Salt yaml配置文件使用Jinja2模板介绍1.1 File

SaltStack实战之配置管理-Jinja2模板


学习 SaltStack



  • SaltStack实战之配置管理-Jinja2模板
  • 1. Salt yaml配置文件使用Jinja2模板介绍

    • 1.1 File状态使用template参数

    • 1.2 模板文件里面变量使用{{ 名称 }}

    • 1.3 变量列表

  • 2. 实战应用


1. Salt yaml配置文件使用Jinja2模板介绍

jinja2官方网站: 
Http://jinja.pocoo.org/

1.1 File状态使用template参数

- template: jinja

1.2 模板文件里面变量使用{{ 名称 }}

` PORT `

1.3 变量列表

- defaults:
 PORT: 8080

2. 实战应用

添加监听主机和端口变量

vim /srv/salt/devfiles/httpd.conf

Listen ` HOST `:` PORT `

# ` Mac `

配置salt master配置文件、pillar配置文件、lamp.sls添加jinja模板:

[root@salt-master112 dev]# egrep -v '^$|^[#]' /etc/salt/master
state_top: top.sls
file_roots:
 base:
   - /srv/salt
 dev:
   - /srv/salt/dev
 test:
   - /srv/salt/test
 prod:
   - /srv/salt/prod
pillar_roots:
 base:
   - /srv/salt/pillar
 dev:
   - /srv/salt/dev/pillar
[root@salt-master112 dev]# cat /srv/salt/pillar/top.sls
dev:
 'node*.test.com':
   - apache
[root@salt-master112 dev]# cat /srv/salt/dev/pillar/apache.sls
apache:
 HOST: {{ grains['fqdn_ip4'][0] }}
 PORT: 8080
 MAC: {{ salt['network.hw_addr']('eth0') }}
[root@salt-master112 dev]# salt '*' saltutil.refresh_pillar
node1.test.com:
   True
master.test.com:
   True
node2.test.com:
   True
[root@salt-master112 dev]# salt '*' pillar.items            
master.test.com:
   ----------
node1.test.com:
   ----------
   apache:
       ----------
       HOST:
           10.1.0.109
       MAC:
           00:50:56:a4:44:7a
       PORT:
           8080
node2.test.com:
   ----------
   apache:
       ----------
       HOST:
           10.1.0.110
       MAC:
           00:50:56:a4:44:7a
       PORT:
           8080
[root@salt-master112 dev]# cat /srv/salt/dev/lamp.sls
lamp-pkg-install:
 pkg.installed:
   - names:
     - PHP
     - php-fpm
     - Mysql
     - php-mysql
     - php-pdo

apache-service:
 pkg.installed:
   - name: httpd
 file.managed:
   - name: /etc/httpd/conf/httpd.conf
   - source:
     - salt://files/httpd.conf
   - user: root
   - group: root
   - mode: 644
   - template: jinja
   - defaults:
     HOST: {{ pillar['apache']['HOST'] }}
     PORT: {{ pillar['apache']['PORT'] }}
     MAC: {{ pillar['apache']['MAC'] }}
   - require:
     - pkg: apache-service
 service.running:
   - name: httpd
   - enable: True
   - reload: True
   - watch:
     - file: apache-service

mysql-service:
 pkg.installed:
   - name: mysql-server
   - require_in:
     - file: mysql-service
 file.managed:
   - name: /etc/my.cnf
   - source:
     - salt://files/my.cnf
   - user: root
   - group: root
   - mode: 644
   - watch_in:
     - service: mysql-service
 service.running:
   - name: mysqld
   - enable: True

php-fpm-service:
 service.running:
   - name: php-fpm
   - enable: True
[root@salt-master112 dev]#  

执行结果:

[root@salt-master112 dev]# salt '*' state.highstate
master.test.com:
----------
         ID: /etc/resolv.conf
   Function: file.managed
     Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 17:54:00.390576
   Duration: 31.841 ms
    Changes:  

Summary for master.test.com
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:  31.841 ms
node1.test.com:
----------
         ID: /etc/resolv.conf
   Function: file.managed
     Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 09:56:43.761673
   Duration: 34.809 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-fpm
     Result: True
    Comment: Package php-fpm is already installed
    Started: 09:56:44.225287
   Duration: 630.568 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-pdo
     Result: True
    Comment: Package php-pdo is already installed
    Started: 09:56:44.856050
   Duration: 0.522 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php
     Result: True
    Comment: Package php is already installed
    Started: 09:56:44.856677
   Duration: 0.366 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-mysql
     Result: True
    Comment: Package php-mysql is already installed
    Started: 09:56:44.857143
   Duration: 0.386 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: mysql
     Result: True
    Comment: Package mysql is already installed
    Started: 09:56:44.857623
   Duration: 0.349 ms
    Changes:  
----------
         ID: apache-service
   Function: pkg.installed
       Name: httpd
     Result: True
    Comment: Package httpd is already installed
    Started: 09:56:44.858061
   Duration: 0.343 ms
    Changes:  
----------
         ID: apache-service
   Function: file.managed
       Name: /etc/httpd/conf/httpd.conf
     Result: True
    Comment: File /etc/httpd/conf/httpd.conf updated
    Started: 09:56:44.858780
   Duration: 34.022 ms
    Changes:  
             ----------
             diff:
                 ---  
                 +++  
                 @@ -133,9 +133,9 @@
                  # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
                  #
                  #Listen 12.34.56.78:80
                 -Listen 0.0.0.0:8080
                 -
                 -# 00:50:56:a4:7a:70
                 +Listen 10.1.0.109:8080
                 +
                 +# 00:50:56:a4:44:7a
                  # Dynamic Shared Object (DSO) Support
                  #
                  # To be able to use the functionality of a module which was built as a DSO you
----------
         ID: apache-service
   Function: service.running
       Name: httpd
     Result: True
    Comment: Service reloaded
    Started: 09:56:44.950689
   Duration: 87.451 ms
    Changes:  
             ----------
             httpd:
                 True
----------
         ID: mysql-service
   Function: pkg.installed
       Name: mysql-server
     Result: True
    Comment: Package mysql-server is already installed
    Started: 09:56:45.038390
   Duration: 0.739 ms
    Changes:  
----------
         ID: mysql-service
   Function: file.managed
       Name: /etc/my.cnf
     Result: True
    Comment: File /etc/my.cnf is in the correct state
    Started: 09:56:45.039596
   Duration: 17.182 ms
    Changes:  
----------
         ID: mysql-service
   Function: service.running
       Name: mysqld
     Result: True
    Comment: The service mysqld is already running
    Started: 09:56:45.057008
   Duration: 68.422 ms
    Changes:  
----------
         ID: php-fpm-service
   Function: service.running
       Name: php-fpm
     Result: True
    Comment: The service php-fpm is already running
    Started: 09:56:45.125649
   Duration: 53.97 ms
    Changes:  

Summary for node1.test.com
-------------
Succeeded: 13 (changed=2)
Failed:     0
-------------
Total states run:     13
Total run time:  929.129 ms
node2.test.com:
----------
         ID: /etc/resolv.conf
   Function: file.managed
     Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 09:56:44.357709
   Duration: 56.916 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-fpm
     Result: True
    Comment: Package php-fpm is already installed
    Started: 09:56:45.634382
   Duration: 1721.668 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-pdo
     Result: True
    Comment: Package php-pdo is already installed
    Started: 09:56:47.356467
   Duration: 1.34 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php
     Result: True
    Comment: Package php is already installed
    Started: 09:56:47.358095
   Duration: 1.359 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: php-mysql
     Result: True
    Comment: Package php-mysql is already installed
    Started: 09:56:47.359721
   Duration: 1.553 ms
    Changes:  
----------
         ID: lamp-pkg-install
   Function: pkg.installed
       Name: mysql
     Result: True
    Comment: Package mysql is already installed
    Started: 09:56:47.361541
   Duration: 1.361 ms
    Changes:  
----------
         ID: apache-service
   Function: pkg.installed
       Name: httpd
     Result: True
    Comment: Package httpd is already installed
    Started: 09:56:47.363199
   Duration: 1.377 ms
    Changes:  
----------
         ID: apache-service
   Function: file.managed
       Name: /etc/httpd/conf/httpd.conf
     Result: True
    Comment: File /etc/httpd/conf/httpd.conf updated
    Started: 09:56:47.365880
   Duration: 84.28 ms
    Changes:  
             ----------
             diff:
                 ---  
                 +++  
                 @@ -133,9 +133,9 @@
                  # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
                  #
                  #Listen 12.34.56.78:80
                 -Listen 0.0.0.0:8080
                 -
                 -# 00:50:56:a4:00:5c
                 +Listen 10.1.0.110:8080
                 +
                 +# 00:50:56:a4:44:7a
                  # Dynamic Shared Object (DSO) Support
                  #
                  # To be able to use the functionality of a module which was built as a DSO you
----------
         ID: apache-service
   Function: service.running
       Name: httpd
     Result: True
    Comment: Service reloaded
    Started: 09:56:47.617560
   Duration: 236.903 ms
    Changes:  
             ----------
             httpd:
                 True
----------
         ID: mysql-service
   Function: pkg.installed
       Name: mysql-server
     Result: True
    Comment: Package mysql-server is already installed
    Started: 09:56:47.855453
   Duration: 6.781 ms
    Changes:  
----------
         ID: mysql-service
   Function: file.managed
       Name: /etc/my.cnf
     Result: True
    Comment: File /etc/my.cnf is in the correct state
    Started: 09:56:47.865735
   Duration: 72.983 ms
    Changes:  
----------
         ID: mysql-service
   Function: service.running
       Name: mysqld
     Result: True
    Comment: The service mysqld is already running
    Started: 09:56:47.939601
   Duration: 169.518 ms
    Changes:  
----------
         ID: php-fpm-service
   Function: service.running
       Name: php-fpm
     Result: True
    Comment: The service php-fpm is already running
    Started: 09:56:48.109622
   Duration: 157.914 ms
    Changes:  

Summary for node2.test.com
-------------
Succeeded: 13 (changed=2)
Failed:     0
-------------
Total states run:     13
Total run time:    2.514 s
[root@salt-master112 dev]#

node1和node2的apache配置文件,Listen位置内容也有相应变化。

[root@im109 ~]# vim /etc/httpd/conf/httpd.conf 
Listen 10.1.0.109:8080

# 00:50:56:a4:44:7a
[root@im110 ~]# vim /etc/httpd/conf/httpd.conf 
Listen 10.1.0.110:8080

# 00:50:56:a4:44:7a

您可能感兴趣的文档:

--结束END--

本文标题: SaltStack实战之配置管理-Jinja2模板

本文链接: https://lsjlt.com/news/43969.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SaltStack实战之配置管理-Jinja2模板
    SaltStack实战之配置管理-Jinja2模板学习 SaltStackSaltStack实战之配置管理-Jinja2模板1. Salt yaml配置文件使用Jinja2模板介绍1.1 File...
    99+
    2024-04-02
  • SaltStack实战之配置管理-状态间关系
    SaltStack实战之配置管理-状态间关系学习 SaltStackSaltStack实战之配置管理-状态间关系1. 状态相关模块1.1 pkg1.2 file1.3 service1.4 req...
    99+
    2024-04-02
  • SaltStack实战之配置管理-LAMP自动化部署
    SaltStack实战之配置管理-LAMP自动化部署学习 SaltStackSaltStack实战之配置管理-LAMP自动化部署1. 部署思路2. 编写lamp.sls1. 部署思路将lamp分成...
    99+
    2024-04-02
  • SaltStack配置管理入门教程:快速上手
    SaltStack是一款开源的配置管理工具,可实现对服务器的远程控制、配置和维护,适用于各种规模的IT环境。它使用Salt语言来编写配置,并通过SaltStack Master-Minion架构来实现远程管理。 一、SaltStack的...
    99+
    2024-02-08
    SaltStack 配置管理 远程控制 IT环境
  • 为Python的Tornado框架配置使用Jinja2模板引擎的方法
    tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定使用他. 下载jinja2 还是用pip 下载(用的真是爽) ...
    99+
    2022-06-04
    框架 模板 引擎
  • C++类模板实战之vector容器的实现
    目录案例要求完成步骤1、封装数组类属性并完成有参构造以及析构函数2、提供对应的深拷贝构造函数防止调用析构时出错3、重载类内的赋值运算符防止浅拷贝问题出现4、提供尾部插入和删除的方法5...
    99+
    2024-04-02
  • nginx限流及配置管理实战记录
    目录nginx限流限制并发连接数限制相同客户端的访问频次burstnodelaylimit_rate限制带宽nginx配置管理自动索引expire缓存配置日志轮询禁止不必要的目录日志...
    99+
    2024-04-02
  • SaltStack与Ansible的对决:比较两款热门配置管理工具
    SaltStack 和 Ansible 都是开源的配置管理工具,具有强大的功能和广泛的支持。它们都能够自动化和管理 IT 基础设施,包括服务器、网络设备、容器和应用程序。但是,它们也有自己的优缺点。 SaltStack SaltStac...
    99+
    2024-02-08
    SaltStack Ansible 配置管理 自动化 IT 基础设施
  • SpringBoot开发实战之自动配置
    在介绍SpringBoot的自动配置之前,先了解下注解@Import的使用,SpringBoot的@Enable*开头的注解底层依赖于@Import注解导入一些类,使用@Import...
    99+
    2024-04-02
  • kubernetes实践之三十五:Pod配置管理ConfigMap
    一:简介很多生产环境中的应用程序配置较为复杂,可能需要多个config文件、命令行参数和环境变量的组合。使用容器部署时,把配置应该从应用程序镜像中解耦出来,以保证镜像的可移植性。ConfigMap是用来存储配置文件的kubernetes资源...
    99+
    2023-06-04
  • Java实战之实现OA办公管理系统
    目录介绍效果图核心代码用户管理控制层部门管理控制层角色管理控制层会议室管理控制层介绍 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Intel...
    99+
    2024-04-02
  • Java实战之图书管理系统的实现
    目录一、项目运行二、效果图三、核心代码登录控制层图书管理控制层读者管理控制层一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Int...
    99+
    2024-04-02
  • Java实战之医院管理系统的实现
    目录项目介绍环境需要技术栈使用说明效果图展示核心代码用户管理控制层医生管理控制层病房管理控制层项目介绍 医院管理系统,分为管理员、医生、病人三种角色; 管理员主要功能包括: 首页、系...
    99+
    2024-04-02
  • Java实战之药品管理系统的实现
    目录项目介绍环境需要技术栈使用说明效果图展示实现核心代码用户相关的controller控制层药品相关的controller供应商相关的controller项目介绍 本项目属于前后端分...
    99+
    2024-04-02
  • MYSQL数据库管理之权限管理怎么配置
    这篇“MYSQL数据库管理之权限管理怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-03-20
    mysql
  • Java实战之简单的文件管理器
    示例图 可以在指定目录下实现文件的创建、文件夹的创建、文件的复制、粘贴、删除、重命名、返回上一级目录、以及不同设备之间文件的发送 完整代码 package com.atguit...
    99+
    2024-04-02
  • Java实战之客户信息管理系统
    目录一、软件设计结构二、MVC设计模式三、Customer四、CustomerList五、CustomerView六、CMUtility一、软件设计结构 对于初学者来说,弄...
    99+
    2024-04-02
  • 10G ORACLE RAC 搭建实战之环境配置
    一.  用户创建各个节点用户名和用户组必须一样,并创建oracle安装目录以及clustercrs目录[root@rac1]#groupadd -g 500 dba  [root@rac...
    99+
    2024-04-02
  • Django项目实战之配置文件详解
    创建项目 django-admin startproject meiduo_mall 添加工程完整结构包 启动前端 python -m http.server 8080...
    99+
    2024-04-02
  • easycode配置成mybatis-plus模板的实现方法
    本文主要介绍了easycode配置成mybatis-plus模板的实现方法,分享给大家,具体如下: entity.java ##导入宏定义 $!define ##保存文件(宏定义...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作