SaltStack的数据系统

一.SaltStack数据系统的分类

1.Grains(收集的是静态数据)

官方使用文档:https://www.unixhot.com/docs/saltstack/topics/targeting/grains.html

Grains是Minion在启动时候,收集的系统的信息,收集的这些信息是静态的数据,如果系统在启动之后一些参数发生了变化,Minion是收集不到的,除非将Minion重启,才会重新对系统信息做收集。

应用场景:

1.Grains可以在state(状态)系统中使用,用于配置管理模块。
2.Grains可以target(匹配目标)中使用,在用来匹配Minion,比如匹配操作系统,使用-G选项。
3.Grains可以用于信息查询,Grains保存这收集到的客户端的详细信息。

使用案例:

salt 'linux-node2' grains.ls               #列出所有收集系统的信息项
salt 'linux-node2' grains.items            #将收集的系统的所有项和内容都列出来
salt -G 'os:CentOS' cmd.run 'uptime'       #对所有minion中系统是CentOS操作系统的,执行uptime命令
salt 'linux-node2' grains.item fqdn_ip4    #查看通过主机名解析出来的ip地址,这个ip地址是唯一的

实际使用场景:

想让本地的apache监听本地的IP地址和端口

使用到的技术:static的Graiins数据系统、jinja模版语言

(jinja语言使用方法,可参考我的博客:https://www.cnblogs.com/Jackie-Chen/articles/10763484.html )

lamp-install:
  pkg.installed:
    - pkgs:
      - httpd
      - php
      - php-pdo
      - php-mysql

apache-config:
  file.managed:
    - name: /etc/httpd/conf/httpd.conf       #这个文件中要使用到Jinja模板中的变量
    - source: salt://web/files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja                        #使用template参数,指定使用的模板,用Jinja模板
    - defaults:                              #通过defaults指定变量
      PORT: 80                               #定义一个PORT变量,值为80
      IPADDR: {{ grains['fqdn_ip4'][0] }}    #定义一个IP地址,值为minion本地的IP地址
    - require:
      - pkg: lamp-install

对于apache中使用Jinja模板配置如下,监听的端口和地址使用Jinja中的变量:

vim /etc/httpd/conf/httpd.conf

Listen {{ IPADDR }}:{{ PORT }}

 

 

2.Pillar

 

 

 

未完待续。。。。。 

posted @ 2019-04-24 16:50  *年少轻狂*  阅读(141)  评论(0编辑  收藏  举报