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.组件介绍
-
SaltStack Master
中央管理系统\服务端,这个系统是用来发送命令和配置到SaltStack Minion上运行。 -
SaltStack Minion
接受受管理系统\客户端,该系统接收来自SaltStack Master命令和配置。 -
规则(States)
声明或命令式表示一个系统的配置。 -
Grains
系统变量, Grains是静态信息基础管理系统,包括操作系统、内存和许多其他的系统属性,您还可以定义定制的Grains为任何系统。 -
Pillar
用户定义的变量,这些安全变量定义和存储在Salt Master
,然后“分配”到一个或多个下属,Pillar
数据存储值,文件路径,配置参数,和密码。 -
Top File
数据匹配公式 -
Runners
模块执行SaltStack Master
执行支持任务,Runners
报告的工作状态、连接状态读取数据从外部api
,查询连接Salt Minions
,和更多。
例如,安排Runners
在许多系统之间协调配置部署。 -
Returners
SaltStack Minion
返回的数据发送到另一个系统,如数据库,Returners
可以运行在Salt Minion
或Salt Minion
。 -
Reactor
SaltStack
环境中触发事件发生时的反应。 -
Salt Cloud
/Salt Virt
云提供商提供系统/管理程序并立即把他们管理下。 -
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.测试master
和minion
通信是否正常
$ 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]
解决报错
在报错的id
为TLBS01
这台主机上删除minion
的key
值
$ rm -rf /etc/salt/pki/minion/
重启salt-minion
重新请求验证即可
Over ~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1300 0 2017-02-22
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-01-18
今日天气
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:14条
- 本站总访问量 365610 次
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...