SaltStack的安装及配置(一)

文章
林里克斯

Linux下搭建自动化运维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


操作步骤:


一、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 MinionSalt 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 ~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

749 0 2017-02-22


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-04-27

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 216212 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!