saltstack1

安装(实验准备两台机器,master和minion)

官方文档:https://repo.saltstack.com/#rhel

两台机器上都执行:yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

master上安装:yum -y install salt-master salt-minion

minion上安装:yum -y install salt-minion

master上:

vim /etc/salt/minion 增加:master:host1(master主机的hostname,前提要在minion上增加hosts),也可以是master: ip地址的形式,注意冒号后面有个空格!

systemctl start salt-master; systemctl start salt-minion

minion上:

vim /etc/salt/minion 增加:master:host1 也可以是master: ip地址的形式,注意冒号后面有个空格!

systemctl start salt-minion

如果启动失败错误为:no module named salt :那么是python版本的问题,需要版本是python2.7,修改/usr/bin/salt-master和/usr/bin/salt-minion 的第一行#!/usr/bin/python为#!/usr/bin/python2.7

 

 

saltstack配置认证

master端和minion端通信需要建立一个安全通道,传输过程需要加密,所以得配置认证,也是通过密钥对来加密解密的

minion在第一次启动时会在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub为公钥,它会把公钥传输给master

master第一次启动时也会在/etc/salt/pki/master下生成密钥对,当master接收到minion传过来的公钥后,通过salt-key工具接受这个公钥,一旦接受后就会在/etc/salt/pki/master/minions/目录里存放刚刚接受的公钥,同时客户端也会接受master传过去的公钥,把它放在/etc/salt/pki/minion目录下,并命名为minion_master.pub

以上过程需要借助salt-key工具来实现

执行如下命令

salt-key -a aming-01// -a后面跟主机名,可以认证指定主机

salt-key -a aming-02

salt-key 命令用法:

  • -a 后面跟主机名,认证指定主机
  • -A 认证所有主机
  • -r 跟主机名,拒绝指定主机
  • -R 拒绝所有主机
  • -d 跟主机名,删除指定主机认证
  • -D 删除全部主机认证
  • -y 省略掉交互,相当于直接按了y

 

 

saltstack远程执行命令

  • salt '*' test.ping //这里的*表示所有已经签名的minion端,也可以指定一个
  • salt 'aming-01' test.ping
  • salt '*' cmd.run "hostname"
  • 说明: 这里的*必须是在master上已经被接受过认证的客户端,可以通过salt-key查到,通常是我们已经设定的id值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端aming-01,aming-02, 那我们可以写成salt 'aming-*', salt 'aming-0[12]' salt -L 'aming-01,aming-02' salt -E 'aming-(01|02)'等形式,使用列表,即多个机器用逗号分隔,而且需要加-L,使用正则必须要带-E选项。 它还支持grains,加-G选项,pillar 加-I选项,下面会介绍到。

 

 

saltstack - grains

  • grains是在minion启动时收集到的一些信息,比如操作系统类型、网卡ip、内核版本、cpu架构等。
  • salt 'aming-02' grains.ls 列出所有的grains项目名字
  • salt 'aming-02' grains.items 列出所有grains项目以及值
  • grains的信息并不是动态的,并不会实时变更,它是在minion启动时收集到的。
  • 我们可以根据grains收集到的一些信息,做配置管理工作。
  • grains支持自定义信息。

 

saltstack – 自定义grains

minion上:

vim /etc/salt/grains //添加:

role: nginx

env: test

重启minion服务

systemctl restart salt-minion

master上:

获取grains:

salt '*' grains.item role env

可以借助grains的一些属性信息来执行

salt -G role:nginx cmd.run 'hostname'

 

 

saltstack – pillar

pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息。像一些比较重要的数据(密码)可以存在pillar里,还可以定义变量等。

配置自定义pillar

vim /etc/salt/master

找到如下配置://去掉前面的警号

pillar_roots:

  base: #此行前面有两个空格

    - /srv/pillar #此行前面有4个空格

mkdir /srv/pillar

vim /srv/pillar/test.sls //内容如下

conf: /etc/123.conf

 

vi /srv/pillar/top.sls //内容如下

base:

  'aming-02': #此行前面有两个空格

    - test #此行前面有4个空格

重启master

systemctl restart salt-master

当更改完pillar配置文件后,我们可以通过刷新pillar配置来获取新的pillar状态:

salt '*' saltutil.refresh_pillar

验证:salt '*' pillar.item conf

pillar同样可以用来作为salt的匹配对象。比如 salt -I 'conf:/etc/123.conf' test.ping

转载于:https://my.oschina.net/u/3822958/blog/1836629

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值