SaltStack

SaltStack简介

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块构建。通过部署SaltStack,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

环境:
server1:master 节点
server2:minion 被管理的主机
server3:minion被管理的主机 

部署服务
真机(一定要关闭selinux,就是因为selinux开着,把我坑惨了)

cd 2019/ --> ls 
mv 2019/ /var/www/html/ 
cd /var/www/html/ --> ls 
cd 2019/
createrepo .
ll

SaltStack_第1张图片
【server1】

虚拟机:
1:配置好yum,因为会有依赖性

vim /etc/yum.repos.d/salt.repo

[salt]
name=saltstack 
baseurl=http://172.25.20.250/2019 
gpgcheck=0

SaltStack_第2张图片
yum clean all
yum repolist
SaltStack_第3张图片

2:将本地yum文件scp给server2和server3

cd /etc/yum.repos.d
scp salt.repo server2:/etc/yum.repos.d
scp salt.repo server3:/etc/yum.repos.d

SaltStack_第4张图片
3:在Master节点上安装salt-master,并开启

yum install -y salt-master
在这里插入图片描述
systemctl start salt-master
salt-master默认的配置文件是/etc/salt/master在这里插入图片描述

yum install -y lsof ##查看网络连接数
在这里插入图片描述
salt-master端口:4505,4506
4505:为salt的消息发布专用端口
4506:为客户端与服务端通信的端口

lsof -i :4505 ##消息队列,服务端的数据推送
lsof -i :4506 ##用来接受返回的信息
SaltStack_第5张图片

【serve2,server3】在Minion节点上安装salt-minion

cd /etc/yum.repos.d/
cat salt.repo

SaltStack_第6张图片
1:安装salt-minion
yum install salt-minion -y
在这里插入图片描述

2:编辑文件,并启动
salt-master默认的配置文件是/etc/salt/minion,需要指定Master的地址
vim /etc/salt/minion

16 master: 172.25.78.1 ##172.25.78.1成为本机的master,冒号后有一个空格

SaltStack_第7张图片
systemctl start salt-minion
在这里插入图片描述

【server1】
Salt命令

在安装完SaltStackMaster和Minion后,SaltStack提供了许多命令
salt:用来瞄准Minion才能运行即执行模块。用于远程执行的主要工具

1:

salt-key -L ##查看所有的key(包括已授权和未授权)
salt-key -A ###添加所有未授权的key, 一旦授权就会交换公钥,通过授权进行key认证
SaltStack_第8张图片

lsof -i :4505 ##有两个连接数
SaltStack_第9张图片

2:测试连通

匹配拥有的minion:
salt server2 test.ping
salt server3 test.ping
salt server? test.ping
salt server* test.ping
salt '*' test.ping
salt server[23] test.ping

'*'表示所有目标机器 test.ping 只是模块里的一个功能,用来测试连通性
test是python中的模块

SaltStack_第10张图片
SaltStack_第11张图片
3:执行命令hostname获取主机名

对主机server2使用hostname命令
salt server2 cmd.run hostname
在这里插入图片描述

4:查看结构:

cd /etc/salt/pki/
tree .

.
├── master
│   ├── master.pem  私钥
│   ├── master.pub  公钥
│   ├── minions
│   │   ├── server2
│   │   └── server3
│   ├── minions_autosign
│   ├── minions_denied
│   ├── minions_pre
│   └── minions_rejected
└── minion

SaltStack_第12张图片

查看是否完整
md5sum server2
md5sum server3
SaltStack_第13张图片
cd …
md5sum master.pub
在这里插入图片描述
再到server2和server3查看
cd /etc/salt/pki/minion/ --> ls
md5sum minion_master.pub ##和server1是一样的
SaltStack_第14张图片
SaltStack_第15张图片

【server1】
yum install -y python-setproctitle.x86_64
SaltStack_第16张图片
systemctl restart salt-master
在这里插入图片描述
ps ax
SaltStack_第17张图片

YAML

文件以sls结尾,sls采用YAML的格式编写
在YAML中不要使用Tab
有出现下划线要用 " " 括起来
SLS(代表SaLt State文件)是Salt State系统的核心。
SLS描述了系统的目标状态,由格式简单的数据构成。这经常被称作配置管理。
首先,在master上面定义salt的主目录,默认是在/srv/salt/下面。

1:mkdir /srv/salt ##默认路径,以此目录为根

cd /srv/salt/
在这里插入图片描述
2:安装一个包,使用pkg
vim apache.sls

apache-install:  ## 定义安装包的名 
  pkg.installed:  ##使用pkg模块,调用函数
    - name: httpd

SaltStack_第18张图片
salt server3 state.sls apache
state.sls ##状态模块
SaltStack_第19张图片
server3查看:
cd /var/cache/salt/minion/
tree .
SaltStack_第20张图片
3:安装多个包pkgs
vim apache.sls

apache-install:  
 pkg.installed:
    - pkgs:
      - httpd
      - httpd-tools

SaltStack_第21张图片
salt server3 state.sls apache
SaltStack_第22张图片
server3 查看:
cd files/
cat base/apache.sls
SaltStack_第23张图片
4:也可以用这种方法安装

server1:
vim apache.sls

net-tools:  
pkg.installed

SaltStack_第24张图片
salt server3 state.sls apache
SaltStack_第25张图片
server3查看任务
cat base/apache.sls
SaltStack_第26张图片

你可能感兴趣的:(SaltStack)