我的编程空间,编程开发者的网络收藏夹
学习永远不晚

saltstack (3) grains

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

saltstack (3) grains

1、使用自定义grains 

    grans的一些基本用法:

    salt object grains.ls   查看某台设备当前可用grains的key

    salt object  grains.items   查看某台设备当前可用 grains 的值 

    salt -G 'os:CentOS' test.ping   &&  salt -G 'os:Amazon' test.ping

    salt -G 'cpuarch:x86_64' grains.item num_cpus

    salt -G 'mem_total:32232'  test.ping  

    salt 'linux-node1*' grains.get fqdn   查询某个的信息

    salt -G os:CentOS cmd.run 'uptime'   使用granis来匹配主机 -G 参数

[root@redis01-jp base]# pwd
/srv/salt/base
[root@redis01-jp base]# ls
apache  dns.sls  files  nginx.sls  top.sls
[root@redis01-jp base]# cat dns.sls
local_resolv:
  file.managed:
    - source: salt://files/resolv.conf
    - name: /etc/resolv.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
      DNS_SERVER: 8.8.8.8       # 为变量传值 
[root@redis01-jp base]# cat files/resolv.conf
options timeout:2 attempts:5
search ap-northeast-1.compute.internal
nameserver 172.31.0.2
nameserver {{ DNS_SERVER }}     # 调用变量
[root@redis01-jp base]# salt 'redis02-jp' state.sls dns  #手工调用dns模块(首先加载dns.sls文件,如果没有此文件加载base/dns/init.sls 文件)
redis02-jp:
----------
          ID: local_resolv
    Function: file.managed
        Name: /etc/resolv.conf
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 06:08:55.301324
    Duration: 59.928 ms
     Changes:
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,4 @@
                   options timeout:2 attempts:5
                  -; generated by /sbin/dhclient-script
                   search ap-northeast-1.compute.internal
                   nameserver 172.31.0.2
                  +nameserver 8.8.8.8
Summary for redis02-jp
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  59.928 ms
[root@redis01-jp base]# salt -G 'roles:cacheserver' cmd.run 'w'
redis02-jp:
     06:43:19 up  3:24,  1 user,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    ec2-user pts/0    static-ip-218-20 03:25    1:42m  0.01s  0.00s sshd: ec2-user
[root@redis01-jp base]#
[root@redis01-jp base]# vim /etc/salt/master
[root@redis01-jp base]# sed -n '680,682p' /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
[root@redis01-jp base]#

  

2、使用pillar 调用变量

[root@redis01-jp ~]# vim /etc/salt/master
[root@redis01-jp ~]# sed -n '527,529p' /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
[root@redis01-jp ~]# mkdir /srv/pillar
[root@redis01-jp ~]# service salt-master restart
Stopping salt-master daemon:                               [  OK  ]
Starting salt-master daemon:                               [  OK  ]
[root@redis01-jp pillar]# tree /srv/pillar/
/srv/pillar/
|-- pkg
|   `-- init.sls
`-- top.sls
1 directory, 2 files
[root@redis01-jp pillar]# cat /srv/pillar/pkg/init.sls
pkgs:
  {% if grains['os_family'] == 'RedHat' %}
  apache: httpd
  vim: vim-enhanced
  {% elif grains['os_family'] == 'Debian' %}
  apache: apache2
  vim: vim
  {% elif grains['os'] == 'Arch' %}
  apache: apache
  vim: vim
  {% endif %}
[root@redis01-jp pillar]# cat /srv/pillar/top.sls
base:
  '*':
    - pkg        #调用pkg目录(模块),系统会自动到该目录(模块)下加载init.sls
[root@redis01-jp pillar]# salt '*' pillar.items   #查看各minion获得到的 pillar变量值 
redis02-jp:
    ----------
    pkgs:
        ----------
        apache:
            httpd
        vim:
            vim-enhanced

[root@redis01-jp base]# pwd
/srv/salt/base
[root@redis01-jp base]# tree apache/
apache/
`-- init.sls
0 directories, 1 file
[root@redis01-jp base]# cat apache/init.sls
apache:
  pkg.installed:
    - name: {{ pillar['pkgs']['apache'] }}    #调用pillar变量
[root@redis01-jp base]# cat top.sls
base:
  '*':
    - apache                   #调用apache模块,自动加载apache/init.sls
[root@redis01-jp ~]# salt 'redis02-jp' state.highstate
[root@redis01-jp ~]# salt '*' saltutil.refresh_pillar     刷新pillar,grains是需要重启minion端,pillar是需要刷新
redis02-jp:
    True
[root@redis01-jp ~]# salt -I 'apache:httpd' test.ping
redis02-jp:
    True
[root@redis01-jp ~]#


3、Grains与pillar 的区别总结:

    Grains        静态         minion启动时收集      目标选择、配置管理、数据查询              minion

    pillar           动态         master定义                   目标选择、配置管理、敏感数据              maste


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

saltstack (3) grains

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

saltstack (3) grains

1、使用自定义grains     grans的一些基本用法:    salt object grains.ls   查看某台设备当前可用grains的key    salt object  grains.items   查看某台设备当前可
2023-01-31

Saltstack系列4:Saltstack之Grains组件

grains说明grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU、内核、操作系统、虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些
2023-06-05

Saltstack远程执行命令(3)

Saltstack的一个比较突出的优势是具备执行远程命令的功能,可以帮助运维人员完成集中化的操作平台(批量执行服务器命令)命令格式:salt '<操作目标>' <方法>[参数]实例:查看minion主机的内存使用情况salt 'SN2013
2023-01-31

saltstack python api

一、Python安装saltstackpip install salt二、接口调用实例1、test.pingimport salt.clientclient = salt.client.LocalClient()ret = client.c
2023-01-31

Saltstack系列5:Saltstack之pillar组件

pillar组件pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板、state、API等。在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主
2023-06-05

Saltstack 报错 python-

执行saltstack 报错一下信息根据报错信息修改python文件#若遇报错1#Starting salt-master daemon: /usr/lib64/python2.6/site-packages/Crypto/Util/num
2023-01-31

saltstack的深入-管理pytho

saltstack的深入-管理python-pip操作内容:一、基础环境1、使用tvm-saltmaster操作2、网络:eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm)eth1:NAT(用于上
2023-01-31

如何快速上手SaltStack

这篇文章给大家分享的是有关如何快速上手SaltStack的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言
2023-06-27

saltstack的使用方法是什么

SaltStack是一个基于Python的开源自动化和配置管理工具,它使用一个称为Salt的远程执行框架来执行命令和配置任务。要使用SaltStack,您需要在系统上安装Salt Master和Salt Minion。Master负责管理
saltstack的使用方法是什么
2024-03-06

Saltstack快速入门简单汇总

saltstack是使用python编写的开源自动化部署与管理工具,拥有良好的扩展性以及优秀的执行效率,配置简单,可以工作在多平台上,经常被描述为 Func加强版+Puppet精简版。saltsatck优点:首先,速度快,基于消息队列+线程
2022-06-04

Saltstack远程执行命令怎么用

这篇文章给大家分享的是有关Saltstack远程执行命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。命令命令格式:salt <操作目标> <方法>[参数]例:salt wx cmd.run free -m
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录