saltstack中的grains和jinja使用

2023-10-09 01:30
文章标签 使用 grains saltstack jinja

本文主要是介绍saltstack中的grains和jinja使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Grains是SaltStack的一个组件,存放在SaltStack的minion端。
当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当
minion重启时才会进行数据的更新。
由于grains是静态数据,因此不推荐经常去修改它。
应用场景:
信息查询,可用作CMDB。
在target中使用,匹配minion。
在state系统中使用,配置管理模块。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
方法1
在/etc/salt/minion中定义:
#vim /etc/salt/minion
grains:
roles:

  • apache
  • httpd
    重启salt-minion,否则数据不会更新:
    #systemctl restart salt-minion

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
方法2
在/etc/salt/grains中定义:
#vim /etc/salt/grains:

在这里插入图片描述

在这里插入图片描述
同步数据:
#salt server3 saltutil.sync_grains
查询自定义项:
#salt ‘*’ grains.item roles
在这里插入图片描述
方法3
编写grains模块
在salt-master端创建_grains目录:
#mkdir /srv/salt/_grains
#vim /srv/salt/_grains/my_grain.py
def my_grain():
grains = {}
grains[‘salt’] = ‘stack’
grains[‘hello’] = ‘world’
return grains

在这里插入图片描述
#salt ‘*’ saltutil.sync_grains
#同步grains到minion端
在这里插入图片描述
grains匹配运用
在target中匹配minion:
#salt -G roles:apache test.ping
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
server3部署nginx:
在这里插入图片描述

在这里插入图片描述
发送tar包
在这里插入图片描述

在这里插入图片描述
在top文件中匹配:
#vim /srv/salt/top.sls

在这里插入图片描述

在这里插入图片描述
高度匹配执行
在这里插入图片描述

在这里插入图片描述
结果
在这里插入图片描述
源码安装nginx
在这里插入图片描述
安装nginx
在这里插入图片描述
执行
在这里插入图片描述
在master主机的目录下生成nginx的配置文件和开启服务的文件
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
改init.sls文件,安装服务,创建文件,开启服务
在这里插入图片描述
测试
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
使用nginx用户
在这里插入图片描述

在这里插入图片描述
加入创建用户
在这里插入图片描述
执行测试
在这里插入图片描述
把安装nginx和茶开启服务分开,需要安装就apache.install,需要安装并开启就直接推apache
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
inja模板简介
Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja
通过jinja模板可以为不同服务器定义各自的变量。
模板来做一些操作。
两种分隔符: {% … %} 和 {{ … }},前者用于执行诸如 for 循环 或
赋值的语句,后者把表达式的结果打印到模板上。
调用,生成文件

Jinja最基本的用法是使用控制结构包装条件:
#vim /srv/salt/test.sls
/mnt/testfile:
file.append:
{% if grains[‘fqdn’] == ‘server2’ %}

  • text: server2
    {% elif grains[‘fqdn’] == ‘server3’ %}
  • text: server3
    {% endif %}
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
jinja的使用
Jinja在普通文件的使用:
#vim /srv/salt/apache.sls
/etc/httpd/conf/httpd.conf:
file.managed:

  • source: salt://httpd.conf

  • template: jinja

  • context:
    NAME: server2

    在这里插入图片描述
    vim /srv/salt/files/index.html
    在这里插入图片描述
    执行
    在这里插入图片描述
    master主机的文件和调用文件
    在这里插入图片描述
    检测
    在这里插入图片描述
    改master主机的http.conf文件,调用
    在这里插入图片描述
    加入jinja
    在这里插入图片描述
    执行
    在这里插入图片描述
    查看结果
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这篇关于saltstack中的grains和jinja使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169375

相关文章

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误