Saltstack-Pillar

1. 简介

  • pillar和grains一样时一个数据系统,但是应用场景不同
  • grains在存放在minion端,pillar放在master端,自动生效,主要存放敏感私密信息(如密码)等,指定的minion端才能看到对应信息
  • 所以更适合在配置管理中使用

2. 声明pillar

pillar官方文档:link
1.定义pillar基础目录
配置目录:/etc/salt/master
新建声明文件夹

mkdir /srv/pillar

2.若更改默认路径,需重启salt-master服务:
# /etc/init.d/salt-master restart

3.自定义pillar项(变量引入方法)

3.1 通过sls程序

在这里插入图片描述

cat top.sls package.sls

base:
  '*':
    - package
    
{% if grains['fqdn'] == 'server3' %}
package: nginx
{% elif grains['fqdn'] == 'server2' %}
port: 80
bind: 172.25.0.2
{% endif %}
salt '*' pillar.items

在这里插入图片描述
刷新pillar:salt '*' saltutil.refresh_pillar
在这里插入图片描述

vim /srv/salt/apache/files/httpd.conf

Listen {{ bind }}:{{ port }}
vim /srv/salt/apache/init.sls

apache:
  pkg.installed:
    - pkgs:
      - httpd
      - php
      - php-mysql


    file.managed:
    - source: salt://apache/files/httpd.conf
    - name: /etc/httpd/conf/httpd.conf
    - template: jinja
    - context:
      port: {{ pillar['port'] }}
      bind: {{ grains['ipv4'][-1] }} name: httpd
    - enable: true
    - watch:
      - file: apache

#/etc/httpd/conf/httpd.conf:
#  file.managed:
#    - source: salt://apache/files/httpd.conf

3.2 通过外部文件导入参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注:自定义文件和pillar的优先级以最后写入先后为准

4.keepalived

1.在server2上装keepalived
2.在/srv/salt/keeplived/files下拷贝server2上的配置文件:

scp server2:/etc/keepalived/keepalived.conf .

编辑配置文件:

! Configuration File for keepalived

global_defs {
   notification_email {
	root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state {{ STATE }}
    interface eth0
    virtual_router_id {{ VRID }}
    priority {{ PRI }}
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
	172.25.0.100
    }
}

编辑主推文件:

vim keepalived/init.sls

kp-install:
  pkg.installed:
    - name: keepalived
  file.managed:
    - name: /etc/keepalived/keepalived.conf
    - source: salt://keepalived/files/keepalived.conf
    - template: jinja
    - context:
      STATE: {{ pillar['state'] }}
      VRID: {{ pillar['vrid'] }}
      PRI: {{ pillar['pri'] }}
  service.running:
    - name: keepalived
    - enable: true
    - reload: true
    - watch:
      - file: kp-install
cat top.sls
base:
  'roles:apache':
    - match: grain
    - apache
    - keepalived
  'roles:nginx':
    - match: grain
    - nginx
    - keepalived 

salt '*' state.highstate

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装SaltStack 3004,你需要在一台主机上安装一个master和多个minion。首先,使用以下命令安装master: sudo yum install salt-master 接下来,使用以下命令安装minion: sudo yum install salt-minion 然后,启动master和minion。使用以下命令启动master: sudo systemctl enable salt-master && sudo systemctl start salt-master 使用以下命令启动minion: sudo systemctl enable salt-minion && sudo systemctl start salt-minion SaltStack有四种运行方式: 1. local本地运行:在Master上向Minion发送命令和配置,适用于实时监控、状态和库存。 2. Master/Minion传统方式:Master向Minion发送命令和配置,Minion从Master接收命令和配置,适用于一次性命令和脚本、部署关键更新等。 3. Syndic分布式:用于将命令和配置转发到其他Master,适用于跨多个区域或数据中心的环境。 4. Salt SSH:通过SSH在没有Minion的系统上运行Salt命令。 SaltStack的组件包括: - Salt Master:将命令和配置发送到受管系统上运行的Salt Minion。 - Salt Minion:从Salt Master接收命令和配置。 - Execution Modules:在命令行针对一个或多个受管系统执行的临时命令。 - Formulas (States):系统配置的声明性或命令式表示。 - Grains:有关底层受管系统的静态信息,包括操作系统、内存等系统属性。 - Pillar:用户定义的变量,在Salt Master中定义并存储,然后分配给一个或多个Minion。 - Top File:将Formulas (States)和Salt Pillar数据与Salt Minions匹配。 - Runners:在Salt Master上执行的模块,用于执行支持任务。 - Returners:将Salt Minions返回的数据发送到另一个系统,例如数据库。 - Reactor:在SaltStack环境中发生事件时触发反应。 - Salt Cloud / Salt Virt:在云提供商/虚拟机管理程序上提供系统,并立即将其置于管理之下。 这些是SaltStack的核心组件和运行方式。你可以根据具体需求选择适合的方式来安装和配置SaltStack
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值