功能
归档
199
2017 年 02 月 14 日
SaltStack的安装及配置(一)

实验平台:CentOS6.8
SaltStack版本:Salt:2016.11
实验IP:
salt-master: 10.113.128.171
salt-minion:10.113.128.171/10.113.128.28/10.113.128.34


操作步骤:

[TOC]


一、SaltStack介绍


1.简介

Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.

Salt 是:

一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行)

一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据

2.组件介绍

1) SaltStack Master
中央管理系统\服务端,这个系统是用来发送命令和配置到SaltStack Minion上运行。

2) SaltStack Minion
接受受管理系统\客户端,该系统接收来自SaltStack Master命令和配置。

3) 规则(States)
声明或命令式表示一个系统的配置。

4) Grains
系统变量, Grains是静态信息基础管理系统,包括操作系统、内存和许多其他的系统属性,您还可以定义定制的Grains为任何系统。

5) Pillar
用户定义的变量,这些安全变量定义和存储在Salt Master,然后“分配”到一个或多个下属,Pillar数据存储值,文件路径,配置参数,和密码。

6) Top File
数据匹配公式

7) Runners
模块执行SaltStack Master执行支持任务,Runners报告的工作状态、连接状态读取数据从外部api,查询连接Salt Minions,和更多。
例如,安排Runners在许多系统之间协调配置部署。

8) Returners
SaltStack Minion返回的数据发送到另一个系统,如数据库,Returners可以运行在Salt Minion或Salt Minion。

9) Reactor
SaltStack环境中触发事件发生时的反应。

10) Salt Cloud / Salt Virt
云提供商提供系统/管理程序并立即把他们管理下。

11) SaltStack SSH
SaltStack使用ssh运行命令,在没有Salt Minion的情况下。


二、安装配置


1.官网安装

http://repo.saltstack.com/index.html#rhel

2.安装指定源

$ yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
会在/etc/yum.repos.d/下生成salt-latest.repo

3.安装master

$ yum -y install salt-master
#默认配置文件在/etc/salt/master

4.启动salt-master

$ service salt-master start
Starting salt-master daemon:                               [  OK  ]
#会占用两个端口
4505(publish_port):salt 的消息发布系统
4506(ret_port):salt 客户端与服务端通信的端口

5.安装minion客户端

$ yum -y install salt-minion
#客户端的配置文件为/etc/salt/minion

6.编辑minion

$ vim /etc/salt/minion

# resolved, then the minion will fail to start.
#master: salt
master: 10.113.128.171
#配置master的ip或主机名

# clusters.
#id:
id: TLSITJKS
#这里是指定当前主机的id号,这在后面master认证和master调用命令执行时显示的名称,可以根据实际识别需要填写。

注意:以上两处配置冒号后面都需要有一个空格,不然会报如下错误:

Starting salt-minion daemon: [ERROR   ] Error parsing configuration file: /etc/salt/minion - while scanning a simple key
  in "<string>", line 44, column 1:
    id:host172
    ^
could not found expected ':'
  in "<string>", line 46, column 1:
    # Append a domain to a hostname  ...
    ^

7.启动minion

$ service salt-minion start
Starting salt-minion:root:TLSITJKS daemon: OK

三、配置认证


1.SaltStack是通过证书通信的

$ salt-key -L

Accepted Keys:      #已经建立连接的客户端
Denied Keys:        #拒绝连接的客户端
Unaccepted Keys:    #发送请求过来,但未同意的客户端
TLSITJKS            #客户端ID
Rejected Keys:
#查看当前需要接受的keys,若报错查看master和minion服务是否启动

2.认证主机

$ salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
TLSITJKS
Proceed? [n/Y] y
Key for minion TLSITJKS accepted.

参数:

salt-key -L #检测当前server端所有minion端key的情况,三种:接收、等待接收和拒绝
salt-key -a hostname #指定接收某台minion的key
salt-key -A #接收Unaccepted Keys下所有的minion
salt-key -d hostname #删除已经接收的机器中指定机器minion key (Accepted Keys:)
salt-key -D #删除已经接收的所有机器(Accepted Keys:)

查看结果

$ salt-key -L
Accepted Keys:
TLSITJKS
Denied Keys:
Unaccepted Keys:
Rejected Keys:
#认证完成后会在/etc/salt/pki/master/minions目录找到以ID名命令的文件,里面存放的是密钥文件。

如果要默认接收请求

$ vim /etc/salt/master

auto_accept: True

3.新增主机
10.113.128.28及34上安装salt-minion

$ yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
$ yum -y install salt-minion

编辑配置文件

$ vim /etc/salt/minion
master: 10.113.128.171      #填写salt-master
id: TLCDR01                 #随意

重启服务

service salt-minion restart

salt-master认证主机

$ salt-key -L

Accepted Keys:
TLSITJKS
Denied Keys:
Unaccepted Keys:
TLCDR01
Rejected Keys:
#会发现在Unaccepted Keys:栏会多出一台主机

接收请求

$ salt-key -a TLCDR01 -y

The following keys are going to be accepted:
Unaccepted Keys:
TLCDR01
Key for minion TLCDR01 accepted.

验证

$ salt-key -L

Accepted Keys:
TLCDR01
TLSITJKS
Denied Keys:
Unaccepted Keys:
Rejected Keys:

四、测试


1.测试masterminion通信是否正常

$ salt '*' test.ping

TLCDR01:
    True
TLSITJKS:
    True
#True代表正常,*代表所有主机

2.使用命令

$ salt '*' cmd.run "ls -l /ane/script/"

TLCDR01:
    total 16
    -rwxr-xr-x 1 root root  612 Jul 24  2017 cleanlog.sh
    -rwxr-xr-x 1 root root  121 Oct 11 14:08 logstash.sh
    -rwxr-xr-x 1 root root 4211 Jul  7  2017 startup.sh
TLCBS01:
    total 16
    -rwxr-xr-x. 1 ane ane  557 Jul 24  2017 cleanlog.sh
    -rwxr-xr-x  1 ane ane   87 Oct 11 14:13 logstash.sh
    -rwxr-xr-x  1 ane ane 4312 Jan 12 12:39 startup.sh
TLSITJKS:
    ls: cannot access /ane/script/: No such file or directory

五、错误汇总


1.key值不一致

$ salt '*' test.ping

TLCDR01:
    True
TLSITJKS:
    True
TLCBS01:
    Minion did not return. [No response]
#报错Minion did not return. [No response]

解决报错
在报错的idTLBS01这台主机上删除minionkey

$ rm -rf /etc/salt/pki/minion/

重启salt-minion重新请求验证即可


Over ~

留言
Loading...

发表评论

电子邮件地址不会被公开。 必填项已用*标注